diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..bf7eae69 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "pip" + directory: "/scrape" + schedule: + interval: "weekly" diff --git a/README.rst b/README.rst index 508ef4fc..a4b43efc 100644 --- a/README.rst +++ b/README.rst @@ -115,18 +115,13 @@ welcome! Contributing new actions ======================== -To update actions there is a generator tool which will pull policies from -an AWS resource and auto-generate new files. -The following commands can be run to update the repo: +To update actions there is a generator tool which will scrape policies from +AWS's documentation resource and auto-generate new files. +The following commands can be run (with Python 3.7+) to update the repo: .. code-block:: sh - $ pip install -r tools/requirements.txt - $ rm -rf generated/ - $ python tools/gen.py - $ diff -u awacs generated - $ mv generated/*.py awacs + $ python3 -m pip install -r scrape/requirements.txt + $ python3 -m pip install . + $ python3 ./scrape/scrape.py $ git diff - -Since not all of the actions appear in the AWS policy file it is sometimes -required to add these extra actions to the tools/gen.py file. diff --git a/scrape/requirements.in b/scrape/requirements.in new file mode 100644 index 00000000..b5507eb4 --- /dev/null +++ b/scrape/requirements.in @@ -0,0 +1,5 @@ +aiofiles>=0.5.0 +beautifulsoup4>=4.9.3 +httpx[http2]>=0.15.5 +lxml>=4.5.2 +wheel>=0.35.1 diff --git a/scrape/requirements.txt b/scrape/requirements.txt new file mode 100644 index 00000000..dc86c42f --- /dev/null +++ b/scrape/requirements.txt @@ -0,0 +1,96 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --generate-hashes requirements.in +# +aiofiles==0.5.0 \ + --hash=sha256:377fdf7815cc611870c59cbd07b68b180841d2a2b79812d8c218be02448c2acb \ + --hash=sha256:98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af \ + # via -r requirements.in +beautifulsoup4==4.9.3 \ + --hash=sha256:4c98143716ef1cb40bf7f39a8e3eec8f8b009509e74904ba3a7b315431577e35 \ + --hash=sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25 \ + --hash=sha256:fff47e031e34ec82bf17e00da8f592fe7de69aeea38be00523c04623c04fb666 \ + # via -r requirements.in +certifi==2020.6.20 \ + --hash=sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3 \ + --hash=sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41 \ + # via httpx +h11==0.9.0 \ + --hash=sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1 \ + --hash=sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1 \ + # via httpcore +h2==3.2.0 \ + --hash=sha256:61e0f6601fa709f35cdb730863b4e5ec7ad449792add80d1410d4174ed139af5 \ + --hash=sha256:875f41ebd6f2c44781259005b157faed1a5031df3ae5aa7bcb4628a6c0782f14 \ + # via httpx +hpack==3.0.0 \ + --hash=sha256:0edd79eda27a53ba5be2dfabf3b15780928a0dff6eb0c60a3d6767720e970c89 \ + --hash=sha256:8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2 \ + # via h2 +httpcore==0.11.1 \ + --hash=sha256:72cfaa461dbdc262943ff4c9abf5b195391a03cdcc152e636adb4239b15e77e1 \ + --hash=sha256:a35dddd1f4cc34ff37788337ef507c0ad0276241ece6daf663ac9e77c0b87232 \ + # via httpx +httpx[http2]==0.15.5 \ + --hash=sha256:02326f2d3c61133db31e4b88dd3432479b434e52a68d813eab6db930f13611ea \ + --hash=sha256:254b371e3880a8e2387bf9ead6949bac797bd557fda26eba19a6153a0c06bd2b \ + # via -r requirements.in +hyperframe==5.2.0 \ + --hash=sha256:5187962cb16dcc078f23cb5a4b110098d546c3f41ff2d4038a9896893bbd0b40 \ + --hash=sha256:a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f \ + # via h2 +idna==2.10 \ + --hash=sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6 \ + --hash=sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0 \ + # via rfc3986 +lxml==4.5.2 \ + --hash=sha256:05a444b207901a68a6526948c7cc8f9fe6d6f24c70781488e32fd74ff5996e3f \ + --hash=sha256:08fc93257dcfe9542c0a6883a25ba4971d78297f63d7a5a26ffa34861ca78730 \ + --hash=sha256:107781b213cf7201ec3806555657ccda67b1fccc4261fb889ef7fc56976db81f \ + --hash=sha256:121b665b04083a1e85ff1f5243d4a93aa1aaba281bc12ea334d5a187278ceaf1 \ + --hash=sha256:1fa21263c3aba2b76fd7c45713d4428dbcc7644d73dcf0650e9d344e433741b3 \ + --hash=sha256:2b30aa2bcff8e958cd85d907d5109820b01ac511eae5b460803430a7404e34d7 \ + --hash=sha256:4b4a111bcf4b9c948e020fd207f915c24a6de3f1adc7682a2d92660eb4e84f1a \ + --hash=sha256:5591c4164755778e29e69b86e425880f852464a21c7bb53c7ea453bbe2633bbe \ + --hash=sha256:59daa84aef650b11bccd18f99f64bfe44b9f14a08a28259959d33676554065a1 \ + --hash=sha256:5a9c8d11aa2c8f8b6043d845927a51eb9102eb558e3f936df494e96393f5fd3e \ + --hash=sha256:5dd20538a60c4cc9a077d3b715bb42307239fcd25ef1ca7286775f95e9e9a46d \ + --hash=sha256:74f48ec98430e06c1fa8949b49ebdd8d27ceb9df8d3d1c92e1fdc2773f003f20 \ + --hash=sha256:786aad2aa20de3dbff21aab86b2fb6a7be68064cbbc0219bde414d3a30aa47ae \ + --hash=sha256:7ad7906e098ccd30d8f7068030a0b16668ab8aa5cda6fcd5146d8d20cbaa71b5 \ + --hash=sha256:80a38b188d20c0524fe8959c8ce770a8fdf0e617c6912d23fc97c68301bb9aba \ + --hash=sha256:8f0ec6b9b3832e0bd1d57af41f9238ea7709bbd7271f639024f2fc9d3bb01293 \ + --hash=sha256:92282c83547a9add85ad658143c76a64a8d339028926d7dc1998ca029c88ea6a \ + --hash=sha256:94150231f1e90c9595ccc80d7d2006c61f90a5995db82bccbca7944fd457f0f6 \ + --hash=sha256:9dc9006dcc47e00a8a6a029eb035c8f696ad38e40a27d073a003d7d1443f5d88 \ + --hash=sha256:a76979f728dd845655026ab991df25d26379a1a8fc1e9e68e25c7eda43004bed \ + --hash=sha256:aa8eba3db3d8761db161003e2d0586608092e217151d7458206e243be5a43843 \ + --hash=sha256:bea760a63ce9bba566c23f726d72b3c0250e2fa2569909e2d83cda1534c79443 \ + --hash=sha256:c3f511a3c58676147c277eff0224c061dd5a6a8e1373572ac817ac6324f1b1e0 \ + --hash=sha256:c9d317efde4bafbc1561509bfa8a23c5cab66c44d49ab5b63ff690f5159b2304 \ + --hash=sha256:cc411ad324a4486b142c41d9b2b6a722c534096963688d879ea6fa8a35028258 \ + --hash=sha256:cdc13a1682b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6 \ + --hash=sha256:cfd7c5dd3c35c19cec59c63df9571c67c6d6e5c92e0fe63517920e97f61106d1 \ + --hash=sha256:e1cacf4796b20865789083252186ce9dc6cc59eca0c2e79cca332bdff24ac481 \ + --hash=sha256:e70d4e467e243455492f5de463b72151cc400710ac03a0678206a5f27e79ddef \ + --hash=sha256:ecc930ae559ea8a43377e8b60ca6f8d61ac532fc57efb915d899de4a67928efd \ + --hash=sha256:f161af26f596131b63b236372e4ce40f3167c1b5b5d459b29d2514bd8c9dc9ee \ + # via -r requirements.in +rfc3986[idna2008]==1.4.0 \ + --hash=sha256:112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d \ + --hash=sha256:af9147e9aceda37c91a05f4deb128d4b4b49d6b199775fd2d2927768abdc8f50 \ + # via httpx +sniffio==1.1.0 \ + --hash=sha256:20ed6d5b46f8ae136d00b9dcb807615d83ed82ceea6b2058cecb696765246da5 \ + --hash=sha256:8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21 \ + # via httpcore, httpx +soupsieve==2.0.1 \ + --hash=sha256:1634eea42ab371d3d346309b93df7870a88610f0725d47528be902a0d95ecc55 \ + --hash=sha256:a59dc181727e95d25f781f0eb4fd1825ff45590ec8ff49eadfd7f1a537cc0232 \ + # via beautifulsoup4 +wheel==0.35.1 \ + --hash=sha256:497add53525d16c173c2c1c733b8f655510e909ea78cc0e29d374243544b77a2 \ + --hash=sha256:99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f \ + # via -r requirements.in diff --git a/scrape/scrape.py b/scrape/scrape.py new file mode 100755 index 00000000..09d272ea --- /dev/null +++ b/scrape/scrape.py @@ -0,0 +1,282 @@ +#!/usr/bin/env python3 +import asyncio +import importlib +import sys +import urllib.parse +from pathlib import Path +from typing import DefaultDict, Dict, List, Set, Tuple + +import aiofiles +import httpx +from bs4 import BeautifulSoup + +BASE_URL = "https://docs.aws.amazon.com/IAM/latest/UserGuide/" + +HEADER = """\ +# Copyright (c) 2012-2013, Mark Peek +# All rights reserved. +# +# See LICENSE file for full license. + +from aws import Action as BaseAction +from aws import BaseARN +""" + +CLASSES = """\ +class Action(BaseAction): + def __init__(self, action=None): + sup = super(Action, self) + sup.__init__(prefix, action) + + +class ARN(BaseARN): + def __init__(self, resource='', region='', account=''): + sup = super(ARN, self) + sup.__init__(service=prefix, resource=resource, region=region, + account=account) +""" + +CLASSES_S3 = """\ +class Action(BaseAction): + def __init__(self, action=None): + sup = super(Action, self) + sup.__init__(prefix, action) + + +class ARN(BaseARN): + def __init__(self, resource='', region='', account=''): + sup = super(ARN, self) + # account is empty for S3 + account = '' + sup.__init__(service=prefix, resource=resource, region=region, + account=account) +""" + +LEGACY_ARN_CLASS = """\ +class {upper}_ARN(ARN): + def __init__(self, *args, **kwargs): + super({upper}_ARN, self).__init__(*args, **kwargs) + warnings.warn("This class is going away. Use {lower}.ARN instead.", + FutureWarning) +""" + +LEGACY_ARNS = ["iam", "s3", "sdb", "sns", "sqs"] + +BASEDIR = "awacs" + +IGNORED_SERVICE_ALIASES = { + "Amazon Kinesis Analytics V2": "kinesisanalytics", + "Amazon Pinpoint Email Service": "ses", + "AWS Marketplace Catalog": "aws-marketplace", + "AWS Marketplace Entitlement Service": "aws-marketplace", + "AWS Marketplace Image Building Service": "aws-marketplace", + "AWS Marketplace Metering Service": "aws-marketplace", + "AWS Marketplace Procurement Systems Integration": "aws-marketplace", + "AWS Private Marketplace": "aws-marketplace", + "Elastic Load Balancing V2": "elasticloadbalancing", +} + + +async def main() -> None: + services_with_actions: DefaultDict[str, Set[str]] = DefaultDict(set) + service_names: Dict[str, str] = {} + service_page_responses = await collect_service_info() + + for r in service_page_responses: + service_name, service_prefix, actions = await extract_actions( + html=r.text + ) + services_with_actions[service_prefix].update(actions) + + if IGNORED_SERVICE_ALIASES.get(service_name) != service_prefix: + if ( + service_prefix in service_names + and service_names[service_prefix] != service_name + ): + raise ValueError( + "Found two different service names for service prefix" + f" {service_prefix!r}: {service_names[service_prefix]!r}" + f" and {service_name!r}." + ) + service_names[service_prefix] = service_name + + original_services_with_actions = await collect_existing_actions() + for service_prefix, actions in services_with_actions.items(): + actions.update( + original_services_with_actions.get(service_prefix) or set() + ) + + await asyncio.gather( + *( + write_service( + service_prefix, service_names[service_prefix], actions + ) + for service_prefix, actions in services_with_actions.items() + ) + ) + + +async def collect_existing_actions() -> Dict[str, Set[str]]: + # pylint: disable=import-outside-toplevel + if "" in sys.path: + sys.path.remove( + "" + ) # Import the installed awacs (that was processed by 2to3) + + import awacs + from awacs.aws import Action as BaseAction + + services_with_actions: DefaultDict[str, Set[str]] = DefaultDict(set) + + for path in ( + path.stem for path in Path(awacs.__file__).parent.glob("*.py") + ): + if path.startswith("__"): + continue + module = importlib.import_module(f"awacs.{path}") + for action in vars(module).values(): + if not isinstance(action, BaseAction): + continue + services_with_actions[action.prefix].add(action.action) + + return dict(services_with_actions) + + +async def collect_service_info() -> List[httpx.Response]: + max_connections = 5 + async with httpx.AsyncClient( + http2=True, + limits=httpx.Limits(max_connections=max_connections), + timeout=10.0, + ) as client: + r = await client.get( + urllib.parse.urljoin( + BASE_URL, + "reference_policies_actions-resources-contextkeys.html", + ) + ) + parsed_html = BeautifulSoup(r.text, features="lxml") + + service_links: List[str] = [] + for link in parsed_html.body.find_all("a"): + href = link.attrs["href"] + if href.startswith("./list_") and href.endswith(".html"): + service_links.append(href) + + # This doesn't work at the moment, + # see https://github.com/encode/httpx/issues/1171 + # + # return await asyncio.gather( + # *[ + # client.get(urllib.parse.urljoin(BASE_URL, link)) + # for link in service_links + # ] + # ) + # + # workaround + service_page_responses = [] + for start in range(0, len(service_links), max_connections): + service_page_responses += await asyncio.gather( + *[ + client.get(urllib.parse.urljoin(BASE_URL, link)) + for link in service_links[start:start + max_connections] + ] + ) + return service_page_responses + + +async def extract_actions(html: str) -> Tuple[str, str, Set[str]]: + parsed_html = BeautifulSoup(html, features="lxml") + service_prefixes = parsed_html.body.find_all(is_service_prefix) + if len(service_prefixes) < 1: + raise ValueError("Found no service prefix.") + if len(service_prefixes) > 1: + raise ValueError("Found more than one service prefix.") + + service_prefix_tag = service_prefixes[0] + service_name = service_prefix_tag.previous[: -len(" (service prefix: ")] + service_prefix = service_prefix_tag.text + actions = set() + + for table in parsed_html.body.find_all("table"): + header = table.find("th") + if not header or header.text != "Actions": + continue + actions |= await _actions_from_table(table) + + return service_name, service_prefix, actions + + +async def write_service( + service_prefix: str, service_name: str, actions: Set[str] +) -> None: + content: List[str] = [] + if service_prefix in LEGACY_ARNS: + content.append("import warnings") + content.append(HEADER) + + content.append(f"service_name = '{service_name}'") + content.append(f"prefix = '{service_prefix}'") + content.append("") + content.append("") + content.append(CLASSES_S3 if service_prefix == "s3" else CLASSES) + content.append("") + if service_prefix in LEGACY_ARNS: + content.append( + LEGACY_ARN_CLASS.format( + lower=service_prefix, upper=service_prefix.upper() + ) + ) + content.append("") + + for action in sorted(actions): + action = action.strip() + # Handle action such as "ReEncrypt*" + if action[-1] == "*": + action = action[:-1] + # Wrap lines for pep8 + if len(action) > 30: + action_string = "{action} = \\\n Action('{action}')" + else: + action_string = "{action} = Action('{action}')" + content.append(action_string.format(action=action)) + + if content[-1] != "": + # Add a final newline + content.append("") + + awacs_service = service_prefix.replace("-", "_") + filename = "".join([BASEDIR, "/", awacs_service, ".py"]) + async with aiofiles.open(filename, "w") as fp: + await fp.write("\n".join(content)) + + +async def _actions_from_table(table) -> Set[str]: + actions = set() + skip_next_lines = 0 + for table_row in table.find_all("tr"): + if skip_next_lines: + skip_next_lines -= 1 + continue + table_cell = table_row.find("td") + if not table_cell: + continue + skip_next_lines = int(table_cell.attrs.get("rowspan") or 1) - 1 + action: str = (table_cell.text.strip().split() or [""])[0] + if not action: + continue + actions.add(action) + return actions + + +def is_service_prefix(tag): + return ( + tag + and tag.name == "code" + and tag.previous_element + and tag.previous_element.endswith("(service prefix: ") + ) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/tools/gen.py b/tools/gen.py deleted file mode 100644 index a4ecafba..00000000 --- a/tools/gen.py +++ /dev/null @@ -1,4054 +0,0 @@ -#!/usr/bin/env python -# -# Generate Actions from AWS static configuration -# -import json -import os -try: - from urllib2 import urlopen -except ImportError: - from urllib.request import urlopen -from slimit.parser import Parser -from slimit.visitors import nodevisitor -from slimit.visitors.ecmavisitor import ECMAVisitor -from slimit import ast - - -header = """\ -# Copyright (c) 2012-2013, Mark Peek -# All rights reserved. -# -# See LICENSE file for full license. - -from aws import Action as BaseAction -from aws import BaseARN -""" - -extra_classes = """\ -class Action(BaseAction): - def __init__(self, action=None): - sup = super(Action, self) - sup.__init__(prefix, action) - - -class ARN(BaseARN): - def __init__(self, resource='', region='', account=''): - sup = super(ARN, self) - sup.__init__(service=prefix, resource=resource, region=region, - account=account) -""" - -extra_classes_s3 = """\ -class Action(BaseAction): - def __init__(self, action=None): - sup = super(Action, self) - sup.__init__(prefix, action) - - -class ARN(BaseARN): - def __init__(self, resource='', region='', account=''): - sup = super(ARN, self) - # account is empty for S3 - account = '' - sup.__init__(service=prefix, resource=resource, region=region, - account=account) -""" - -arn = """\ -class %(upper)s_ARN(ARN): - def __init__(self, *args, **kwargs): - super(%(upper)s_ARN, self).__init__(*args, **kwargs) - warnings.warn("This class is going away. Use %(lower)s.ARN instead.", - FutureWarning) -""" - -legacy_arns = ['iam', 's3', 'sdb', 'sns', 'sqs'] - -aws_url = \ - "https://awsiamconsole.s3.amazonaws.com/iam/assets/js/bundles/policies.js" - -basedir = 'generated' - -response = urlopen(aws_url) -config = response.read() - - -class JSONVisitor(ECMAVisitor): - def visit_Identifier(self, node): - return '"%s"' % node.value - - def visit_Number(self, node): - return '"%s"' % node.value - - def visit_UnaryOp(self, node): - s = self.visit(node.value) - if node.op == '!' and s == 0: - return '"true"' - else: - return s - - -visitor = JSONVisitor() -parser = Parser() -tree = parser.parse(config.decode('utf-8')) - -flag = False -policy_editor_config = "" -for node in nodevisitor.visit(tree): - if (isinstance(node, ast.Identifier) and - node.value == 'PolicyEditorConfig'): - flag = True - elif flag: - policy_editor_config = visitor.visit(node) - break - -d = json.loads(policy_editor_config) - -try: - os.mkdir(basedir) -except OSError: - pass - - -# Extra services are for those not advertised in policies.js, -# but are available to be called via AWS apis. If/When these -# services are added to policies.js, the entry in extra_services -# will be ignored. IE, policies.js takes priority over -# extra_services entries. - -extra_services = { - 'AWS Accounts': { - 'StringPrefix': 'account', - 'Actions': [ - 'DisableRegion', - 'EnableRegion', - 'ListRegions', - ], - }, - 'AWS Certificate Manager Private Certificate Authority': { - 'StringPrefix': 'acm-pca', - 'Actions': [ - 'CreateCertificateAuthority', - 'CreateCertificateAuthorityAuditReport', - 'CreatePermission', - 'DeleteCertificateAuthority', - 'DeletePermission', - 'DeletePolicy', - 'DescribeCertificateAuthority', - 'DescribeCertificateAuthorityAuditReport', - 'GetCertificate', - 'GetCertificateAuthorityCertificate', - 'GetCertificateAuthorityCsr', - 'GetPolicy', - 'ImportCertificateAuthorityCertificate', - 'IssueCertificate', - 'ListCertificateAuthorities', - 'ListPermissions', - 'ListTags', - 'PutPolicy', - 'RestoreCertificateAuthority', - 'RevokeCertificate', - 'TagCertificateAuthority', - 'UntagCertificateAuthority', - 'UpdateCertificateAuthority', - ], - }, - 'AWS Amplify': { - 'StringPrefix': 'amplify', - 'Actions': [ - 'CreateApp', - 'CreateBackendEnvironment', - 'CreateBranch', - 'CreateDeployment', - 'CreateDomainAssociation', - 'CreateWebHook', - 'DeleteApp', - 'DeleteBackendEnvironment', - 'DeleteBranch', - 'DeleteDomainAssociation', - 'DeleteJob', - 'DeleteWebHook', - 'GenerateAccessLogs', - 'GetApp', - 'GetArtifactUrl', - 'GetBackendEnvironment', - 'GetBranch', - 'GetDomainAssociation', - 'GetJob', - 'GetWebHook', - 'ListApps', - 'ListArtifacts', - 'ListBackendEnvironments', - 'ListBranches', - 'ListDomainAssociations', - 'ListJobs', - 'ListWebHooks', - 'StartDeployment', - 'StartJob', - 'StopJob', - 'TagResource', - 'UntagResource', - 'UpdateApp', - 'UpdateBranch', - 'UpdateDomainAssociation', - 'UpdateWebHook', - ], - }, - 'AWS App Mesh': { - 'StringPrefix': 'appmesh', - 'Actions': [ - 'CreateGatewayRoute', - 'CreateMesh', - 'CreateRoute', - 'CreateVirtualGateway', - 'CreateVirtualNode', - 'CreateVirtualRouter', - 'CreateVirtualService', - 'DeleteGatewayRoute', - 'DeleteMesh', - 'DeleteRoute', - 'DeleteVirtualGateway', - 'DeleteVirtualNode', - 'DeleteVirtualRouter', - 'DeleteVirtualService', - 'DescribeGatewayRoute', - 'DescribeMesh', - 'DescribeRoute', - 'DescribeVirtualGateway', - 'DescribeVirtualNode', - 'DescribeVirtualRouter', - 'DescribeVirtualService', - 'ListGatewayRoutes', - 'ListMeshes', - 'ListRoutes', - 'ListTagsForResource', - 'ListVirtualGateways', - 'ListVirtualNodes', - 'ListVirtualRouters', - 'ListVirtualServices', - 'StreamAggregatedResources', - 'TagResource', - 'UntagResource', - 'UpdateGatewayRoute', - 'UpdateMesh', - 'UpdateRoute', - 'UpdateVirtualGateway', - 'UpdateVirtualNode', - 'UpdateVirtualRouter', - 'UpdateVirtualService', - ], - }, - 'AWS Backup': { - 'StringPrefix': 'backup', - 'Actions': [ - 'CopyIntoBackupVault', - 'CreateBackupPlan', - 'CreateBackupSelection', - 'CreateBackupVault', - 'DeleteBackupPlan', - 'DeleteBackupSelection', - 'DeleteBackupVault', - 'DeleteBackupVaultAccessPolicy', - 'DeleteBackupVaultNotifications', - 'DeleteRecoveryPoint', - 'DescribeBackupJob', - 'DescribeBackupVault', - 'DescribeCopyJob', - 'DescribeProtectedResource', - 'DescribeRecoveryPoint', - 'DescribeRegionSettings', - 'DescribeRestoreJob', - 'ExportBackupPlanTemplate', - 'GetBackupPlan', - 'GetBackupPlanFromJSON', - 'GetBackupPlanFromTemplate', - 'GetBackupSelection', - 'GetBackupVaultAccessPolicy', - 'GetBackupVaultNotifications', - 'GetRecoveryPointRestoreMetadata', - 'GetSupportedResourceTypes', - 'ListBackupJobs', - 'ListBackupPlanTemplates', - 'ListBackupPlanVersions', - 'ListBackupPlans', - 'ListBackupSelections', - 'ListBackupVaults', - 'ListCopyJobs', - 'ListProtectedResources', - 'ListRecoveryPointsByBackupVault', - 'ListRecoveryPointsByResource', - 'ListRestoreJobs', - 'ListTags', - 'PutBackupVaultAccessPolicy', - 'PutBackupVaultNotifications', - 'StartBackupJob', - 'StartCopyJob', - 'StartRestoreJob', - 'StopBackupJob', - 'TagResource', - 'UntagResource', - 'UpdateBackupPlan', - 'UpdateRecoveryPointLifecycle', - 'UpdateRegionSettings', - ], - }, - 'AWS CodeArtifact': { - 'StringPrefix': 'codeartifact', - 'Actions': [ - 'AssociateExternalConnection', - 'AssociateWithDownstreamRepository', - 'CopyPackageVersions', - 'CreateDomain', - 'CreateRepository', - 'DeleteDomain', - 'DeleteDomainPermissionsPolicy', - 'DeletePackageVersions', - 'DeleteRepository', - 'DeleteRepositoryPermissionsPolicy', - 'DescribeDomain', - 'DescribePackageVersion', - 'DescribeRepository', - 'DisassociateExternalConnection', - 'DisposePackageVersions', - 'GetAuthorizationToken', - 'GetDomainPermissionsPolicy', - 'GetPackageVersionAsset', - 'GetPackageVersionReadme', - 'GetRepositoryEndpoint', - 'GetRepositoryPermissionsPolicy', - 'ListDomains', - 'ListPackageVersionAssets', - 'ListPackageVersionDependencies', - 'ListPackageVersions', - 'ListPackages', - 'ListRepositories', - 'ListRepositoriesInDomain', - 'PublishPackageVersion', - 'PutDomainPermissionsPolicy', - 'PutPackageMetadata', - 'PutRepositoryPermissionsPolicy', - 'ReadFromRepository', - 'UpdatePackageVersionsStatus', - 'UpdateRepository' - ], - }, - 'Comprehend Medical': { - 'StringPrefix': 'comprehendmedical', - 'Actions': [ - 'DetectEntities', - 'DetectPHI', - ], - }, - 'DataSync': { - 'StringPrefix': 'datasync', - 'Actions': [ - 'CancelTaskExecution', - 'CreateAgent', - 'CreateLocationEfs', - 'CreateLocationFsxWindows', - 'CreateLocationNfs', - 'CreateLocationObjectStorage', - 'CreateLocationS3', - 'CreateLocationSmb', - 'CreateTask', - 'DeleteAgent', - 'DeleteLocation', - 'DeleteTask', - 'DescribeAgent', - 'DescribeLocationEfs', - 'DescribeLocationFsxWindows', - 'DescribeLocationNfs', - 'DescribeLocationObjectStorage', - 'DescribeLocationS3', - 'DescribeLocationSmb', - 'DescribeTask', - 'DescribeTaskExecution', - 'ListAgents', - 'ListLocations', - 'ListTagsForResource', - 'ListTaskExecutions', - 'ListTasks', - 'StartTaskExecution', - 'TagResource', - 'UntagResource', - 'UpdateAgent', - 'UpdateTask', - ], - }, - 'AWS DeepLens': { - 'StringPrefix': 'deeplens', - 'Actions': [ - 'AssociateServiceRoleToAccount', - 'BatchGetDevice', - 'BatchGetModel', - 'BatchGetProject', - 'CreateDeviceCertificates', - 'CreateModel', - 'CreateProject', - 'DeleteModel', - 'DeleteProject', - 'DeployProject', - 'DeregisterDevice', - 'GetAssociatedResources', - 'GetDeploymentStatus', - 'GetDevice', - 'GetModel', - 'GetProject', - 'ImportProjectFromTemplate', - 'ListDeployments', - 'ListDevices', - 'ListModels', - 'ListProjects', - 'RegisterDevice', - 'RemoveProject', - 'UpdateProject', - ], - }, - 'Amazon Data Lifecycle Manager': { - 'StringPrefix': 'dlm', - 'Actions': [ - 'CreateLifecyclePolicy', - 'DeleteLifecyclePolicy', - 'GetLifecyclePolicies', - 'GetLifecyclePolicy', - 'UpdateLifecyclePolicy', - ], - }, - 'Amazon Elastic Container Service for Kubernetes': { - 'StringPrefix': 'eks', - 'Actions': [ - 'CreateCluster', - 'DeleteCluster', - 'DescribeCluster', - 'DescribeUpdate', - 'ListClusters', - 'ListTagsForResource', - 'ListUpdates', - 'TagResource', - 'UntagResource', - 'UpdateClusterConfig', - 'UpdateClusterVersion', - ], - }, - 'Amazon Elastic Inference': { - 'StringPrefix': 'elastic-inference', - 'Actions': [ - 'Connect', - ], - }, - 'AWS Firewall Manager': { - 'StringPrefix': 'fms', - 'Actions': [ - 'AssociateAdminAccount', - 'DeleteNotificationChannel', - 'DeletePolicy', - 'DisassociateAdminAccount', - 'GetAdminAccount', - 'GetComplianceDetail', - 'GetNotificationChannel', - 'GetPolicy', - 'GetProtectionStatus', - 'ListComplianceStatus', - 'ListMemberAccounts', - 'ListPolicies', - 'PutNotificationChannel', - 'PutPolicy', - ], - }, - 'Amazon FSx': { - 'StringPrefix': 'fsx', - 'Actions': [ - 'CreateBackup', - 'CreateFileSystem', - 'CreateFileSystemFromBackup', - 'DeleteBackup', - 'DeleteFileSystem', - 'DescribeBackups', - 'DescribeFileSystems', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateFileSystem', - ], - }, - 'Global Accelerator': { - 'StringPrefix': 'globalaccelerator', - 'Actions': [ - 'AdvertiseByoipCidr', - 'CreateAccelerator', - 'CreateEndpointGroup', - 'CreateListener', - 'DeleteAccelerator', - 'DeleteEndpointGroup', - 'DeleteListener', - 'DeprovisionByoipCidr', - 'DescribeAccelerator', - 'DescribeAcceleratorAttributes', - 'DescribeEndpointGroup', - 'DescribeListener', - 'ListAccelerators', - 'ListByoipCidrs', - 'ListEndpointGroups', - 'ListListeners', - 'ListTagsForResource', - 'ProvisionByoipCidr', - 'TagResource', - 'UntagResource', - 'UpdateAccelerator', - 'UpdateAcceleratorAttributes', - 'UpdateEndpointGroup', - 'UpdateListener', - 'WithdrawByoipCidr', - ], - }, - 'Amazon GroundTruth Labeling': { - 'StringPrefix': 'groundtruthlabeling', - 'Actions': [ - 'DescribeConsoleJob', - 'ListDatasetObjects', - 'RunFilterOrSampleDatasetJob', - 'RunGenerateManifestByCrawlingJob', - ], - }, - 'AWS IoT 1-Click': { - 'StringPrefix': 'iot1click', - 'Actions': [ - 'AssociateDeviceWithPlacement', - 'ClaimDevicesByClaimCode', - 'CreatePlacement', - 'CreateProject', - 'DeletePlacement', - 'DeleteProject', - 'DescribeDevice', - 'DescribePlacement', - 'DescribeProject', - 'DisassociateDeviceFromPlacement', - 'FinalizeDeviceClaim', - 'GetDeviceMethods', - 'GetDevicesInPlacement', - 'InitializeDeviceClaim', - 'InitiateDeviceClaim', - 'InvokeDeviceMethod', - 'ListDeviceEvents', - 'ListDevices', - 'ListPlacements', - 'ListProjects', - 'ListTagsForResource', - 'TagResource', - 'UnclaimDevice', - 'UntagResource', - 'UpdateDeviceState', - 'UpdatePlacement', - 'UpdateProject', - ], - }, - 'AWS IoT Events': { - 'StringPrefix': 'iotevents', - 'Actions': [ - 'BatchPutMessage', - 'BatchUpdateDetector', - 'CreateDetectorModel', - 'CreateInput', - 'DeleteDetectorModel', - 'DeleteInput', - 'DescribeDetector', - 'DescribeDetectorModel', - 'DescribeInput', - 'DescribeLoggingOptions', - 'ListDetectorModelVersions', - 'ListDetectorModels', - 'ListDetectors', - 'ListInputs', - 'ListTagsForResource', - 'PutLoggingOptions', - 'TagResource', - 'UntagResource', - 'UpdateDetectorModel', - 'UpdateInput', - 'UpdateInputRouting', - ], - }, - 'AWS IoT SiteWise': { - 'StringPrefix': 'iotsitewise', - 'Actions': [ - 'AssociateAssets', - 'AssociateGatewaySink', - 'AssociateGatewaySource', - 'AssociateViewEntities', - 'BatchAssociateProjectAssets', - 'BatchDisassociateProjectAssets', - 'BatchPutAssetPropertyValue', - 'CreateAccessPolicy', - 'CreateAsset', - 'CreateAssetModel', - 'CreateAssetTemplate', - 'CreateDashboard', - 'CreateGateway', - 'CreateGroup', - 'CreateMeasurementDataStore', - 'CreateMetricType', - 'CreatePortal', - 'CreateProject', - 'CreateView', - 'DeleteAccessPolicy', - 'DeleteAsset', - 'DeleteAssetModel', - 'DeleteAssetTemplate', - 'DeleteDashboard', - 'DeleteGateway', - 'DeleteGroup', - 'DeleteMeasurementDataStore', - 'DeleteMetricType', - 'DeletePortal', - 'DeleteProject', - 'DeleteView', - 'DeregisterViewEntities', - 'DescribeAccessPolicy', - 'DescribeAsset', - 'DescribeAssetModel', - 'DescribeAssetProperty', - 'DescribeAssetTemplates', - 'DescribeAssets', - 'DescribeDashboard', - 'DescribeGateway', - 'DescribeGatewayCapabilityConfiguration', - 'DescribeGateways', - 'DescribeGroups', - 'DescribeLoggingOptions', - 'DescribeMeasurementDataStores', - 'DescribeMetricTypes', - 'DescribePortal', - 'DescribeProject', - 'DescribeViews', - 'DisassociateAssets', - 'DisassociateGatewaySink', - 'DisassociateGatewaySource', - 'DisassociateViewEntities', - 'GetAssetPropertyAggregates', - 'GetAssetPropertyValue', - 'GetAssetPropertyValueHistory', - 'GetMeasurementData', - 'GetMetricData', - 'ListAccessPolicies', - 'ListAssetModels', - 'ListAssetTemplates', - 'ListAssets', - 'ListAssociatedAssets', - 'ListDashboards', - 'ListGateways', - 'ListGroups', - 'ListMeasurementDataStores', - 'ListMeasurementDataStreams', - 'ListMetricTypes', - 'ListPortals', - 'ListProjectAssets', - 'ListProjects', - 'ListTagsForResource', - 'ListViewEntities', - 'ListViews', - 'PutLoggingOptions', - 'RegisterViewEntities', - 'TagResource', - 'UntagResource', - 'UpdateAccessPolicy', - 'UpdateAsset', - 'UpdateAssetModel', - 'UpdateAssetProperty', - 'UpdateAssetTemplate', - 'UpdateDashboard', - 'UpdateGateway', - 'UpdateGatewayCapabilityConfiguration', - 'UpdateGroup', - 'UpdateMeasurementDataStore', - 'UpdatePortal', - 'UpdateProject', - 'UpdateView', - ], - }, - 'Amazon Managed Streaming for Kafka': { - 'StringPrefix': 'kafka', - 'Actions': [ - 'CreateCluster', - 'CreateConfiguration', - 'DeleteCluster', - 'DescribeCluster', - 'DescribeClusterOperation', - 'DescribeConfiguration', - 'DescribeConfigurationRevision', - 'GetBootstrapBrokers', - 'ListClusterOperations', - 'ListClusters', - 'ListConfigurations', - 'ListNodes', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateBrokerCount', - 'UpdateBrokerStorage', - 'UpdateClusterConfiguration', - 'UpdateMonitoring', - ], - }, - 'Amazon Kinesis Analytics V2': { - 'StringPrefix': 'kinesisanalytics', - 'Actions': [ - # V1 and V2 share the same prefix. To avoid duplicates in - # kinesisanalytics.py, actions that are available in both - # versions are commented out in this list. - 'AddApplicationCloudWatchLoggingOption', - # 'AddApplicationInput', - 'AddApplicationInputProcessingConfiguration', - # 'AddApplicationOutput', - # 'AddApplicationReferenceDataSource', - # 'CreateApplication', - 'CreateApplicationSnapshot', - # 'DeleteApplication', - 'DeleteApplicationCloudWatchLoggingOption', - 'DeleteApplicationInputProcessingConfiguration', - # 'DeleteApplicationOutput', - # 'DeleteApplicationReferenceDataSource', - 'DeleteApplicationSnapshot', - # 'DescribeApplication', - 'DescribeApplicationSnapshot', - # 'DiscoverInputSchema', - 'ListApplicationSnapshots', - # 'ListApplications', - # 'StartApplication', - # 'StopApplication', - # 'UpdateApplication', - ], - }, - 'AWS License Manager': { - 'StringPrefix': 'license-manager', - 'Actions': [ - 'CreateLicenseConfiguration', - 'DeleteLicenseConfiguration', - 'GetLicenseConfiguration', - 'GetServiceSettings', - 'ListAssociationsForLicenseConfiguration', - 'ListLicenseConfigurations', - 'ListLicenseSpecificationsForResource', - 'ListResourceInventory', - 'ListTagsForResource', - 'ListUsageForLicenseConfiguration', - 'TagResource', - 'UntagResource', - 'UpdateLicenseConfiguration', - 'UpdateLicenseSpecificationsForResource', - 'UpdateServiceSettings', - ], - }, - 'Amazon Macie': { - 'StringPrefix': 'macie', - 'Actions': [ - 'AcceptInvitation', - 'ArchiveFindings', - 'AssociateMemberAccount', - 'AssociateS3Resources', - 'BatchGetCustomDataIdentifiers', - 'CreateClassificationJob', - 'CreateCustomDataIdentifier', - 'CreateFindingsFilter', - 'CreateInvitations', - 'CreateMember', - 'CreateSampleFindings', - 'DeclineInvitations', - 'DeleteCustomDataIdentifier', - 'DeleteFindingsFilter', - 'DeleteInvitations', - 'DeleteMember', - 'DescribeBuckets', - 'DescribeClassificationJob', - 'DescribeOrganizationConfiguration', - 'DisableMacie', - 'DisableOrganizationAdminAccount', - 'DisassociateFromMasterAccount', - 'DisassociateMember', - 'DisassociateMemberAccount', - 'DisassociateS3Resources', - 'EnableMacie', - 'EnableOrganizationAdminAccount', - 'GetBucketStatistics', - 'GetClassificationExportConfiguration', - 'GetCustomDataIdentifier', - 'GetFindingStatistics', - 'GetFindings', - 'GetFindingsFilter', - 'GetInvitationsCount', - 'GetMacieSession', - 'GetMasterAccount', - 'GetMember', - 'GetUsageStatistics', - 'GetUsageTotals', - 'ListClassificationJobs', - 'ListCustomDataIdentifiers', - 'ListFindings', - 'ListFindingsFilters', - 'ListInvitations', - 'ListMemberAccounts', - 'ListMembers', - 'ListOrganizationAdminAccounts', - 'ListS3Resources', - 'ListTagsForResources', - 'PutClassificationExportConfiguration', - 'TagResource', - 'TestCustomDataIdentifier', - 'UnarchiveFindings', - 'UntagResource', - 'UpdateClassificationJob', - 'UpdateFindingsFilter', - 'UpdateSession', - 'UpdateMemberSession', - 'UpdateOrganizationConfiguration', - 'UpdateS3Resources', - ], - }, - 'Amazon Managed Blockchain': { - 'StringPrefix': 'managedblockchain', - 'Actions': [ - 'CreateMember', - 'CreateNetwork', - 'CreateNode', - 'CreateProposal', - 'DeleteMember', - 'DeleteNode', - 'GetMember', - 'GetNetwork', - 'GetNode', - 'GetProposal', - 'ListInvitations', - 'ListMembers', - 'ListNetworks', - 'ListNodes', - 'ListProposalVotes', - 'ListProposals', - 'RejectInvitation', - 'UpdateMember', - 'UpdateNode', - 'VoteOnProposal', - ], - }, - 'AWS Elemental MediaConnect': { - 'StringPrefix': 'mediaconnect', - 'Actions': [ - 'AddFlowOutputs', - 'CreateFlow', - 'DeleteFlow', - 'DescribeFlow', - 'GrantFlowEntitlements', - 'ListEntitlements', - 'ListFlows', - 'RemoveFlowOutput', - 'RevokeFlowEntitlement', - 'StartFlow', - 'StopFlow', - 'UpdateFlowEntitlement', - 'UpdateFlowOutput', - 'UpdateFlowSource', - ], - }, - 'AWS Elemental MediaTailor': { - 'StringPrefix': 'mediatailor', - 'Actions': [ - 'DeletePlaybackConfiguration', - 'GetPlaybackConfiguration', - 'ListPlaybackConfigurations', - 'ListTagsForResource', - 'PutPlaybackConfiguration', - 'TagResource', - 'UntagResource', - ], - }, - 'Amazon Neptune': { - 'StringPrefix': 'neptune-db', - 'Actions': [ - 'connect', - ], - }, - 'AWS Performance Insights': { - 'StringPrefix': 'pi', - 'Actions': [ - 'DescribeDimensionKeys', - 'GetResourceMetrics', - ], - }, - 'QuickSight': { - 'StringPrefix': 'quicksight', - 'Actions': [ - 'CreateAdmin', - 'CreateDashboard', - 'CreateGroup', - 'CreateGroupMembership', - 'CreateIAMPolicyAssignment', - 'CreateReader', - 'CreateTemplate', - 'CreateTemplateAlias', - 'CreateTheme', - 'CreateThemeAlias', - 'CreateUser', - 'DeleteDashboard', - 'DeleteGroup', - 'DeleteGroupMembership', - 'DeleteIAMPolicyAssignment', - 'DeleteTemplate', - 'DeleteTemplateAlias', - 'DeleteTheme', - 'DeleteThemeAlias', - 'DeleteUser', - 'DeleteUserByPrincipalId', - 'DescribeDashboard', - 'DescribeDashboardPermissions', - 'DescribeGroup', - 'DescribeIAMPolicyAssignment', - 'DescribeTemplate', - 'DescribeTemplateAlias', - 'DescribeTemplatePermissions', - 'DescribeTheme', - 'DescribeThemeAlias', - 'DescribeThemePermissions', - 'DescribeUser', - 'GetAuthCode', - 'GetDashboardEmbedUrl', - 'GetGroupMapping', - 'ListDashboardVersions', - 'ListDashboards', - 'ListGroupMemberships', - 'ListGroups', - 'ListIAMPolicyAssignments', - 'ListIAMPolicyAssignmentsForUser', - 'ListTagsForResource', - 'ListTemplateAliases', - 'ListTemplateVersions', - 'ListTemplates', - 'ListThemeAliases', - 'ListThemes', - 'ListThemeVersions', - 'ListUserGroups', - 'ListUsers', - 'RegisterUser', - 'SearchDirectoryGroups', - 'SetGroupMapping', - 'Subscribe', - 'TagResource', - 'Unsubscribe', - 'UntagResource', - 'UpdateDashboard', - 'UpdateDashboardPermissions', - 'UpdateDashboardPublishedVersion', - 'UpdateGroup', - 'UpdateIAMPolicyAssignment', - 'UpdateTemplate', - 'UpdateTemplateAlias', - 'UpdateTemplatePermissions', - 'UpdateTheme', - 'UpdateThemeAlias', - 'UpdateThemePermissions', - 'UpdateUser', - ] - }, - 'AWS Resource Access Manager': { - 'StringPrefix': 'ram', - 'Actions': [ - 'AcceptResourceShareInvitation', - 'AssociateResourceShare', - 'AssociateResourceSharePermission', - 'CreateResourceShare', - 'DeleteResourceShare', - 'DisassociateResourceShare', - 'DisassociateResourceSharePermission', - 'EnableSharingWithAwsOrganization', - 'GetPermission', - 'GetResourcePolicies', - 'GetResourceShareAssociations', - 'GetResourceShareInvitations', - 'GetResourceShares', - 'ListPendingInvitationResources', - 'ListPermissions', - 'ListPrincipals', - 'ListResources', - 'ListResourceSharePermissions', - 'RejectResourceShareInvitation', - 'TagResource', - 'UntagResource', - 'UpdateResourceShare', - ], - }, - 'AWS RoboMaker': { - 'StringPrefix': 'robomaker', - 'Actions': [ - 'BatchDescribeSimulationJob', - 'CancelDeploymentJob', - 'CancelSimulationJob', - 'CancelSimulationJobBatch', - 'CreateDeploymentJob', - 'CreateFleet', - 'CreateRobot', - 'CreateRobotApplication', - 'CreateRobotApplicationVersion', - 'CreateSimulationApplication', - 'CreateSimulationApplicationVersion', - 'CreateSimulationJob', - 'DeleteFleet', - 'DeleteRobot', - 'DeleteRobotApplication', - 'DeleteSimulationApplication', - 'DeregisterRobot', - 'DescribeDeploymentJob', - 'DescribeFleet', - 'DescribeRobot', - 'DescribeRobotApplication', - 'DescribeSimulationApplication', - 'DescribeSimulationJob', - 'DescribeSimulationJobBatch', - 'ListDeploymentJobs', - 'ListFleets', - 'ListRobotApplications', - 'ListRobots', - 'ListSimulationApplications', - 'ListSimulationJobBatches', - 'ListSimulationJobs', - 'ListTagsForResource', - 'RegisterRobot', - 'RestartSimulationJob', - 'StartSimulationJobBatch', - 'SyncDeploymentJob', - 'TagResource', - 'UntagResource', - 'UpdateRobotApplication', - 'UpdateSimulationApplication', - ], - }, - 'Amazon Route 53 Resolver': { - 'StringPrefix': 'route53resolver', - 'Actions': [ - 'AssociateResolverEndpointIpAddress', - 'AssociateResolverQueryLogConfig', - 'AssociateResolverRule', - 'CreateResolverEndpoint', - 'CreateResolverQueryLogConfig', - 'CreateResolverRule', - 'DeleteResolverEndpoint', - 'DeleteResolverQueryLogConfig', - 'DeleteResolverRule', - 'DisassociateResolverEndpointIpAddress', - 'DisassociateResolverQueryLogConfig', - 'DisassociateResolverRule', - 'GetResolverEndpoint', - 'GetResolverQueryLogConfig', - 'GetResolverQueryLogConfigAssociation', - 'GetResolverQueryLogConfigPolicy', - 'GetResolverRule', - 'GetResolverRuleAssociation', - 'GetResolverRulePolicy', - 'ListResolverEndpointIpAddresses', - 'ListResolverEndpoints', - 'ListResolverQueryLogConfigAssociations', - 'ListResolverQueryLogConfigs', - 'ListResolverRuleAssociations', - 'ListResolverRules', - 'ListTagsForResource', - 'PutResolverQueryLogConfigPolicy', - 'PutResolverRulePolicy', - 'TagResource', - 'UntagResource', - 'UpdateResolverEndpoint', - 'UpdateResolverRule', - ], - }, - 'AWS Secrets Manager': { - 'ARNFormat': 'arn:aws:secretsmanager:' - ':' - ':secret:/', - 'ARNRegex': '^arn:aws:secretsmanager:.+', - 'Actions': [ - 'CancelRotateSecret', - 'CreateSecret', - 'DeleteResourcePolicy', - 'DeleteSecret', - 'DescribeSecret', - 'GetRandomPassword', - 'GetResourcePolicy', - 'GetSecretValue', - 'ListSecrets', - 'ListSecretVersionIds', - 'PutResourcePolicy', - 'PutSecretValue', - 'RestoreSecret', - 'RotateSecret', - 'TagResource', - 'UntagResource', - 'UpdateSecret', - 'UpdateSecretVersionStage', - 'ValidateResourcePolicy', - ], - 'HasResource': '!0', - 'StringPrefix': 'secretsmanager', - 'conditionKeys': [ - 'secretsmanager:Resource/AllowRotationLambdaArn', - 'secretsmanager:Description', - 'secretsmanager:ForceDeleteWithoutRecovery', - 'secretsmanager:KmsKeyId', - 'secretsmanager:Name', - 'secretsmanager:RecoveryWindowInDays', - 'secretsmanager:ResourceTag/', - 'secretsmanager:RotationLambdaArn', - 'secretsmanager:SecretId', - 'secretsmanager:VersionId', - 'secretsmanager:VersionStage' - ], - }, - 'AWS Security Hub': { - 'StringPrefix': 'securityhub', - 'Actions': [ - 'AcceptInvitation', - 'BatchDisableStandards', - 'BatchEnableStandards', - 'BatchImportFindings', - 'BatchUpdateFindings', - 'CreateActionTarget', - 'CreateInsight', - 'CreateMembers', - 'DeclineInvitations', - 'DeleteActionTarget', - 'DeleteInsight', - 'DeleteInvitations', - 'DeleteMembers', - 'DescribeActionTargets', - 'DescribeHub', - 'DescribeProducts', - 'DescribeStandards', - 'DescribeStandardsControls', - 'DisableImportFindingsForProduct', - 'DisableSecurityHub', - 'DisassociateFromMasterAccount', - 'DisassociateMembers', - 'EnableImportFindingsForProduct', - 'EnableSecurityHub', - 'GetEnabledStandards', - 'GetFindings', - 'GetInsightResults', - 'GetInsights', - 'GetInvitationsCount', - 'GetMasterAccount', - 'GetMembers', - 'InviteMembers', - 'ListEnabledProductsForImport', - 'ListInvitations', - 'ListMembers', - 'ListProductSubscribers', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateActionTarget', - 'UpdateFindings', - 'UpdateInsight', - 'UpdateSecurityHubConfiguration', - 'UpdateStandardsControl', - ], - }, - 'AWS Server Migration Service': { - 'StringPrefix': 'sms', - 'Actions': [ - 'CreateApp', - 'CreateReplicationJob', - 'DeleteApp', - 'DeleteAppLaunchConfiguration', - 'DeleteAppReplicationConfiguration', - 'DeleteAppValidationConfiguration', - 'DeleteReplicationJob', - 'DeleteServerCatalog', - 'DisassociateConnector', - 'DisassociateConnectors', - 'GenerateChangeSet', - 'GenerateTemplate', - 'GetApp', - 'GetAppLaunchConfiguration', - 'GetAppReplicationConfiguration', - 'GetAppValidationConfiguration', - 'GetAppValidationOutput', - 'GetConnectors', - 'GetMessages', - 'GetReplicationJobs', - 'GetReplicationRuns', - 'GetServers', - 'ImportAppCatalog', - 'ImportServerCatalog', - 'LaunchApp', - 'ListApps', - 'NotifyAppValidationOutput', - 'PutAppLaunchConfiguration', - 'PutAppReplicationConfiguration', - 'PutAppValidationConfiguration', - 'SendMessage', - 'StartAppReplication', - 'StartOnDemandAppReplication', - 'StartOnDemandReplicationRun', - 'StopAppReplication', - 'TerminateApp', - 'UpdateApp', - 'UpdateReplicationJob', - ], - }, - 'Amazon Pinpoint SMS and Voice Service': { - 'StringPrefix': 'sms-voice', - 'Actions': [ - 'CreateConfigurationSet', - 'CreateConfigurationSetEventDestination', - 'DeleteConfigurationSet', - 'DeleteConfigurationSetEventDestination', - 'GetConfigurationSetEventDestinations', - 'ListConfigurationSets', - 'SendVoiceMessage', - 'UpdateConfigurationSetEventDestination', - ], - }, - 'SMM Messages': { - 'StringPrefix': 'ssmmessages', - 'Actions': [ - 'CreateControlChannel', - 'CreateDataChannel', - 'OpenControlChannel', - 'OpenDataChannel', - ], - }, - 'AWS SSO Directory': { - 'StringPrefix': 'sso-directory', - 'Actions': [ - 'AddMemberToGroup', - 'CreateAlias', - 'CreateGroup', - 'CreateUser', - 'DeleteGroup', - 'DeleteUser', - 'DescribeDirectory', - 'DescribeGroups', - 'DescribeUsers', - 'DisableUser', - 'EnableUser', - 'ListGroupsForUser', - 'ListMembersInGroup', - 'RemoveMemberFromGroup', - 'UpdateGroup', - 'UpdatePassword', - 'UpdateUser', - 'VerifyEmail', - ], - }, - 'Amazon Sumerian': { - 'StringPrefix': 'sumerian', - 'Actions': [ - 'Login', - 'ViewRelease', - ], - }, - 'Amazon Textract': { - 'StringPrefix': 'textract', - 'Actions': [ - 'AnalyzeDocument', - 'DetectDocumentText', - 'GetDocumentAnalysis', - 'GetDocumentTextDetection', - 'StartDocumentAnalysis', - 'StartDocumentTextDetection', - ], - }, - 'AWS Transfer for SFTP': { - 'StringPrefix': 'transfer', - 'Actions': [ - 'CreateServer', - 'CreateUser', - 'DeleteServer', - 'DeleteSshPublicKey', - 'DeleteUser', - 'DescribeServer', - 'DescribeUser', - 'ImportSshPublicKey', - 'ListServers', - 'ListTagsForResource', - 'ListUsers', - 'StartServer', - 'StopServer', - 'TagResource', - 'TestIdentityProvider', - 'UntagResource', - 'UpdateServer', - 'UpdateUser', - ], - }, - 'AWS Well-Architected Tool': { - 'StringPrefix': 'wellarchitected', - 'Actions': [ - 'CreateWorkload', - 'CreateWorkloadShare', - 'DeleteWorkload', - 'GetWorkload', - 'ListWorkloads', - ], - }, - 'Amazon WorkLink': { - 'StringPrefix': 'worklink', - 'Actions': [ - 'AssociateDomain', - 'AssociateWebsiteAuthorizationProvider', - 'AssociateWebsiteCertificateAuthority', - 'CreateFleet', - 'DeleteFleet', - 'DescribeAuditStreamConfiguration', - 'DescribeCompanyNetworkConfiguration', - 'DescribeDevice', - 'DescribeDevicePolicyConfiguration', - 'DescribeDomain', - 'DescribeFleetMetadata', - 'DescribeIdentityProviderConfiguration', - 'DescribeWebsiteCertificateAuthority', - 'DisassociateDomain', - 'DisassociateWebsiteAuthorizationProvider', - 'DisassociateWebsiteCertificateAuthority', - 'ListDevices', - 'ListDomains', - 'ListFleets', - 'ListTagsForResource', - 'ListWebsiteAuthorizationProviders', - 'ListWebsiteCertificateAuthorities', - 'RestoreDomainAccess', - 'RevokeDomainAccess', - 'SignOutUser', - 'TagResource', - 'UntagResource', - 'UpdateAuditStreamConfiguration', - 'UpdateCompanyNetworkConfiguration', - 'UpdateDevicePolicyConfiguration', - 'UpdateDomainMetadata', - 'UpdateFleetMetadata', - 'UpdateIdentityProviderConfiguration', - ], - }, -} - -# Extra actions are for services that are advertised in the policies.js, but -# have one or more individual actions that are missing. Actions specified here -# will be patched with the advertised ones, creating a union of both. -# Actions should be added alphabetically under their appropriate awacs prefix. -# Note: If the prefix contains a '-' (dash) character, replace it with -# an '_' (underscore). -extra_actions = { - 'a4b': [ - 'ApproveSkill', - 'AssociateContactWithAddressBook', - 'AssociateSkillWithSkillGroup', - 'AssociateSkillWithUsers', - 'CompleteRegistration', - 'CreateAddressBook', - 'CreateBusinessReportSchedule', - 'CreateConferenceProvider', - 'CreateContact', - 'DeleteAddressBook', - 'DeleteBusinessReportSchedule', - 'DeleteConferenceProvider', - 'DeleteContact', - 'DeleteDevice', - 'DeleteSkillAuthorization', - 'DisassociateContactFromAddressBook', - 'DisassociateSkillFromSkillGroup', - 'DisassociateSkillFromUsers', - 'ForgetSmartHomeAppliances', - 'GetAddressBook', - 'GetConferencePreference', - 'GetConferenceProvider', - 'GetContact', - 'GetNetworkProfile', - 'ListBusinessReportSchedules', - 'ListConferenceProviders', - 'ListDeviceEvents', - 'ListSkillsStoreCategories', - 'ListSkillsStoreSkillsByCategory', - 'ListSmartHomeAppliances', - 'PutConferencePreference', - 'PutDeviceSetupEvents', - 'PutSkillAuthorization', - 'RegisterAVSDevice', - 'RegisterDevice', - 'RejectSkill', - 'SearchAddressBooks', - 'SearchContacts', - 'SearchNetworkProfiles', - 'StartSmartHomeApplianceDiscovery', - 'UpdateAddressBook', - 'UpdateBusinessReportSchedule', - 'UpdateConferenceProvider', - 'UpdateContact', - ], - 'acm': [ - 'ExportCertificate', - 'RenewCertificate', - 'UpdateCertificateOptions', - ], - 'apigateway': [ - 'UpdateRestApiPolicy', - 'SetWebACL', - ], - 'appstream': [ - 'BatchAssociateUserStack', - 'BatchDisassociateUserStack', - 'CopyImage', - 'CreateUsageReportSubscription', - 'CreateUser', - 'DeleteImagePermissions', - 'DeleteUsageReportSubscription', - 'DeleteUser', - 'DescribeImagePermissions', - 'DescribeUsageReportSubscriptions', - 'DescribeUserStackAssociations', - 'DescribeUsers', - 'DisableUser', - 'EnableUser', - 'GetImageBuilders', - 'GetParametersForThemeAssetUpload', - 'UpdateImagePermissions', - ], - 'appsync': [ - 'CreateFunction', - 'DeleteFunction', - 'GetFunction', - 'ListFunctions', - 'ListResolversByFunction', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateFunction', - ], - 'athena': [ - 'CreateDataCatalog', - 'CreateWorkGroup', - 'DeleteDataCatalog', - 'DeleteWorkGroup', - 'GetDatabase', - 'GetDataCatalog', - 'GetQueryResultsStream', - 'GetTableMetadata', - 'GetWorkGroup', - 'ListDatabases', - 'ListDataCatalogs', - 'ListTableMetadata', - 'ListTagsForResource', - 'ListWorkGroups', - 'TagResource', - 'UntagResource', - 'UpdateDataCatalog', - 'UpdateWorkGroup', - ], - 'autoscaling': [ - 'BatchDeleteScheduledAction', - 'BatchPutScheduledUpdateGroupAction', - 'CancelInstanceRefresh', - 'DescribeInstanceRefreshes', - 'StartInstanceRefresh', - ], - 'autoscaling_plans': [ - 'GetScalingPlanResourceForecastData', - 'UpdateScalingPlan', - ], - 'aws_marketplace': [ - 'AcceptAgreementApprovalRequest', - 'CancelAgreementRequest', - 'DescribeAgreement', - 'GetAgreementApprovalRequest', - 'GetAgreementRequest', - 'GetAgreementTerms', - 'ListAgreementApprovalRequests', - 'ListAgreementRequests', - 'RegisterUsage', - 'RejectAgreementApprovalRequest', - 'SearchAgreements', - 'UpdateAgreementApprovalRequest', - ], - 'aws_marketplace_management': [ - 'viewSettings', - ], - 'awslambda': [ - 'AddLayerVersionPermission', - 'DeleteFunctionEventInvokeConfig', - 'DeleteLayerVersion', - 'DeleteProvisionedConcurrencyConfig', - 'DisableReplication', - 'GetFunctionConcurrency', - 'GetFunctionEventInvokeConfig', - 'GetLayerVersion', - 'GetLayerVersionByArn', - 'GetLayerVersionPolicy', - 'GetProvisionedConcurrencyConfig', - 'ListFunctionEventInvokeConfigs', - 'ListLayerVersions', - 'ListLayers', - 'ListProvisionedConcurrencyConfigs', - 'PublishLayerVersion', - 'PutFunctionEventInvokeConfig', - 'PutProvisionedConcurrencyConfig', - 'RemoveLayerVersionPermission', - 'UpdateFunctionEventInvokeConfig', - ], - 'ce': [ - 'CreateAnomalyMonitor', - 'CreateAnomalySubscription', - 'CreateCostCategoryDefinition', - 'DeleteAnomalyMonitor', - 'DeleteAnomalySubscription', - 'DeleteCostCategoryDefinition', - 'DescribeCostCategoryDefinition', - 'GetAnomalies', - 'GetAnomalyMonitors', - 'GetAnomalySubscriptions', - 'GetCostAndUsageWithResources', - 'GetCostForecast', - 'GetReservationCoverage', - 'GetReservationPurchaseRecommendation', - 'GetRightsizingRecommendation', - 'GetSavingsPlansCoverage', - 'GetSavingsPlansPurchaseRecommendation', - 'GetSavingsPlansUtilization', - 'GetSavingsPlansUtilizationDetails', - 'GetUsageForecast', - 'ListCostCategoryDefinitions', - 'ProvideAnomalyFeedback', - 'UpdateAnomalyMonitor', - 'UpdateAnomalySubscription', - 'UpdateCostCategoryDefinition', - ], - 'chime': [ - 'AssociatePhoneNumbersWithVoiceConnector', - 'AssociatePhoneNumbersWithVoiceConnectorGroup', - 'AssociatePhoneNumberWithUser', - 'AssociateSigninDelegateGroupsWithAccount', - 'BatchCreateAttendee', - 'BatchCreateRoomMembership', - 'BatchDeletePhoneNumber', - 'BatchSuspendUser', - 'BatchUnsuspendUser', - 'BatchUpdatePhoneNumber', - 'BatchUpdateUser', - 'CreateApiKey', - 'CreateAttendee', - 'CreateBot', - 'CreateBotMembership', - 'CreateMeeting', - 'CreateMeetingWithAttendees', - 'CreatePhoneNumberOrder', - 'CreateProxySession', - 'CreateRoom', - 'CreateRoomMembership', - 'CreateUser', - 'CreateVoiceConnector', - 'CreateVoiceConnectorGroup', - 'DeleteAccountOpenIdConfig', - 'DeleteApiKey', - 'DeleteAttendee', - 'DeleteEventsConfiguration', - 'DeleteMeeting', - 'DeletePhoneNumber', - 'DeleteProxySession', - 'DeleteRoom', - 'DeleteRoomMembership', - 'DeleteVoiceConnector', - 'DeleteVoiceConnectorEmergencyCallingConfiguration', - 'DeleteVoiceConnectorGroup', - 'DeleteVoiceConnectorOrigination', - 'DeleteVoiceConnectorProxy', - 'DeleteVoiceConnectorStreamingConfiguration', - 'DeleteVoiceConnectorTermination', - 'DeleteVoiceConnectorTerminationCredentials', - 'DisassociatePhoneNumberFromUser', - 'DisassociatePhoneNumbersFromVoiceConnector', - 'DisassociatePhoneNumbersFromVoiceConnectorGroup', - 'DisassociateSigninDelegateGroupsFromAccount', - 'GetAccountWithOpenIdConfig', - 'GetAttendee', - 'GetBot', - 'GetEventsConfiguration', - 'GetGlobalSettings', - 'GetMeeting', - 'GetMeetingDetail', - 'GetPhoneNumber', - 'GetPhoneNumberOrder', - 'GetPhoneNumberSettings', - 'GetProxySession', - 'GetRetentionSettings', - 'GetRoom', - 'GetTelephonyLimits', - 'GetUserActivityReportData', - 'GetUserSettings', - 'GetVoiceConnector', - 'GetVoiceConnectorEmergencyCallingConfiguration', - 'GetVoiceConnectorGroup', - 'GetVoiceConnectorLoggingConfiguration', - 'GetVoiceConnectorOrigination', - 'GetVoiceConnectorProxy', - 'GetVoiceConnectorStreamingConfiguration', - 'GetVoiceConnectorTermination', - 'GetVoiceConnectorTerminationHealth', - 'InviteUsersFromProvider', - 'ListAccountUsageReportData', - 'ListApiKeys', - 'ListAttendees', - 'ListAttendeeTags', - 'ListBots', - 'ListCallingRegions', - 'ListMeetingEvents', - 'ListMeetings', - 'ListMeetingsReportData', - 'ListMeetingTags', - 'ListPhoneNumberOrders', - 'ListPhoneNumbers', - 'ListProxySessions', - 'ListRoomMemberships', - 'ListRooms', - 'ListTagsForResource', - 'ListVoiceConnectorGroups', - 'ListVoiceConnectors', - 'ListVoiceConnectorTerminationCredentials', - 'PutEventsConfiguration', - 'PutRetentionSettings', - 'PutVoiceConnectorEmergencyCallingConfiguration', - 'PutVoiceConnectorLoggingConfiguration', - 'PutVoiceConnectorOrigination', - 'PutVoiceConnectorProxy', - 'PutVoiceConnectorStreamingConfiguration', - 'PutVoiceConnectorTermination', - 'PutVoiceConnectorTerminationCredentials', - 'RedactConversationMessage', - 'RedactRoomMessage', - 'RegenerateSecurityToken', - 'ResetPersonalPIN', - 'RestorePhoneNumber', - 'RetrieveDataExports', - 'SearchAvailablePhoneNumbers', - 'StartDataExport', - 'TagAttendee', - 'TagMeeting', - 'TagResource', - 'UntagAttendee', - 'UntagMeeting', - 'UntagResource', - 'UpdateAccount', - 'UpdateAccountOpenIdConfig', - 'UpdateBot', - 'UpdateCDRSettings', - 'UpdateGlobalSettings', - 'UpdatePhoneNumber', - 'UpdatePhoneNumberSettings', - 'UpdateProxySession', - 'UpdateRoom', - 'UpdateRoomMembership', - 'UpdateUser', - 'UpdateUserSettings', - 'UpdateVoiceConnector', - 'UpdateVoiceConnectorGroup', - ], - 'cloud9': [ - 'GetUserSettings', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateUserSettings', - ], - 'clouddirectory': [ - 'GetLinkAttributes', - 'GetObjectAttributes', - 'UpdateLinkAttributes', - ], - 'cloudformation': [ - 'CreateStackInstances', - 'CreateStackSet', - 'DeleteChangeSet', - 'DeleteStackInstances', - 'DeleteStackSet', - 'DeregisterType', - 'DescribeStackDriftDetectionStatus', - 'DescribeStackInstance', - 'DescribeStackResourceDrifts', - 'DescribeStackSet', - 'DescribeStackSetOperation', - 'DescribeType', - 'DescribeTypeRegistration', - 'DetectStackDrift', - 'DetectStackResourceDrift', - 'DetectStackSetDrift', - 'ListStackInstances', - 'ListStackSetOperationResults', - 'ListStackSetOperations', - 'ListStackSets', - 'ListTypeRegistrations', - 'ListTypes', - 'ListTypeVersions', - 'RegisterType', - 'SetTypeDefaultVersion', - 'StopStackSetOperation', - 'TagResource', - 'UntagResource', - 'UpdateStackInstances', - 'UpdateStackSet', - ], - 'cloudfront': [ - 'CreateCachePolicy', - 'CreateFieldLevelEncryptionConfig', - 'CreateFieldLevelEncryptionProfile', - 'CreateOriginRequestPolicy', - 'CreatePublicKey', - 'DeleteCachePolicy', - 'DeleteFieldLevelEncryptionConfig', - 'DeleteFieldLevelEncryptionProfile', - 'DeleteOriginRequestPolicy', - 'DeletePublicKey', - 'GetCachePolicy', - 'GetCachePolicyConfig', - 'GetFieldLevelEncryption', - 'GetFieldLevelEncryptionConfig', - 'GetFieldLevelEncryptionProfile', - 'GetFieldLevelEncryptionProfileConfig', - 'GetOriginRequestPolicy', - 'GetOriginRequestPolicyConfig', - 'GetPublicKey', - 'GetPublicKeyConfig', - 'ListCachePolicies', - 'ListDistributionsByCachePolicyId', - 'ListDistributionsByLambdaFunction', - 'ListDistributionsByOriginRequestPolicyId', - 'ListFieldLevelEncryptionConfigs', - 'ListFieldLevelEncryptionProfiles', - 'ListOriginRequestPolicies', - 'ListPublicKeys', - 'UpdateCachePolicy', - 'UpdateFieldLevelEncryptionConfig', - 'UpdateFieldLevelEncryptionProfile', - 'UpdateOriginRequestPolicy', - 'UpdatePublicKey', - ], - 'cloudhsm': [ - 'CopyBackupToRegion', - 'CreateCluster', - 'DeleteBackup', - 'DeleteCluster', - 'DescribeBackups', - 'DescribeClusters', - 'InitializeCluster', - 'ListTags', - 'RestoreBackup', - 'TagResource', - 'UntagResource', - ], - 'cloudsearch': [ - 'DescribeDomainEndpointOptions', - 'UpdateDomainEndpointOptions', - ], - 'cloudtrail': [ - 'GetInsightSelectors', - 'GetTrail', - 'ListTrails', - 'PutInsightSelectors', - ], - 'cloudwatch': [ - 'DeleteAnomalyDetector', - 'DeleteDashboards', - 'DeleteInsightRules', - 'DescribeAnomalyDetectors', - 'DescribeInsightRules', - 'DisableInsightRules', - 'EnableInsightRules', - 'GetDashboard', - 'GetInsightRuleReport', - 'GetMetricWidgetImage', - 'ListDashboards', - 'ListTagsForResource', - 'PutAnomalyDetector', - 'PutDashboard', - 'PutInsightRule', - 'TagResource', - 'UntagResource', - ], - 'codebuild': [ - 'BatchGetBuildBatches', - 'BatchGetReportGroups', - 'BatchGetReports', - 'BatchPutCodeCoverages', - 'BatchPutTestCases', - 'CreateReport', - 'CreateReportGroup', - 'CreateWebhook', - 'DeleteBuildBatch', - 'DeleteOAuthToken', - 'DeleteReport', - 'DeleteReportGroup', - 'DeleteResourcePolicy', - 'DeleteSourceCredentials', - 'DeleteWebhook', - 'DescribeCodeCoverages', - 'DescribeTestCases', - 'GetResourcePolicy', - 'ImportSourceCredentials', - 'InvalidateProjectCache', - 'ListBuildBatches', - 'ListBuildBatchesForProject', - 'ListReportGroups', - 'ListReports', - 'ListReportsForReportGroup', - 'ListSharedProjects', - 'ListSharedReportGroups', - 'ListSourceCredentials', - 'PutResourcePolicy', - 'RetryBuild', - 'RetryBuildBatch', - 'StartBuildBatch', - 'StopBuildBatch', - 'UpdateReport', - 'UpdateReportGroup', - 'UpdateWebhook', - ], - 'codecommit': [ - 'AssociateApprovalRuleTemplateWithRepository', - 'BatchAssociateApprovalRuleTemplateWithRepositories', - 'BatchDescribeMergeConflicts', - 'BatchDisassociateApprovalRuleTemplateFromRepositories', - 'BatchGetCommits', - 'CancelUploadArchive', - 'CreateApprovalRuleTemplate', - 'CreateCommit', - 'CreatePullRequestApprovalRule', - 'CreateUnreferencedMergeCommit', - 'DeleteApprovalRuleTemplate', - 'DeleteFile', - 'DeletePullRequestApprovalRule', - 'DescribeMergeConflicts', - 'DisassociateApprovalRuleTemplateFromRepository', - 'EvaluatePullRequestApprovalRules', - 'GetApprovalRuleTemplate', - 'GetCommentReactions', - 'GetFile', - 'GetFolder', - 'GetMergeCommit', - 'GetMergeOptions', - 'GetPullRequestApprovalStates', - 'GetPullRequestOverrideState', - 'GetUploadArchiveStatus', - 'ListApprovalRuleTemplates', - 'ListAssociatedApprovalRuleTemplatesForRepository', - 'ListRepositoriesForApprovalRuleTemplate', - 'ListTagsForResource', - 'MergeBranchesByFastForward', - 'MergeBranchesBySquash', - 'MergeBranchesByThreeWay', - 'MergePullRequestBySquash', - 'MergePullRequestByThreeWay', - 'OverridePullRequestApprovalRules', - 'PutCommentReaction', - 'TagResource', - 'UntagResource', - 'UpdateApprovalRuleTemplateContent', - 'UpdateApprovalRuleTemplateDescription', - 'UpdateApprovalRuleTemplateName', - 'UpdatePullRequestApprovalRuleContent', - 'UpdatePullRequestApprovalState', - 'UploadArchive', - ], - 'codedeploy': [ - 'BatchGetDeploymentTargets', - 'CreateCloudFormationDeployment', - 'DeleteGitHubAccountToken', - 'DeleteResourcesByExternalId', - 'GetDeploymentTarget', - 'ListDeploymentTargets', - 'ListGitHubAccountTokenNames', - 'ListTagsForResource', - 'PutLifecycleEventHookExecutionStatus', - 'SkipWaitTimeForInstanceTermination', - 'TagResource', - 'UntagResource', - ], - 'codepipeline': [ - 'DeleteWebhook', - 'DeregisterWebhookWithThirdParty', - 'ListActionExecutions', - 'ListTagsForResource', - 'ListWebhooks', - 'PutWebhook', - 'RegisterWebhookWithThirdParty', - 'StopPipelineExecution', - 'TagResource', - 'UntagResource', - ], - 'codestar': [ - 'ListTagsForProject', - 'TagProject', - 'UntagProject', - ], - 'cognito_identity': [ - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'cognito_idp': [ - 'AdminDisableProviderForUser', - 'AdminLinkProviderForUser', - 'AdminSetUserPassword', - 'AssociateSoftwareToken', - 'CreateIdentityProvider', - 'CreateResourceServer', - 'CreateUserPoolDomain', - 'DeleteIdentityProvider', - 'DeleteResourceServer', - 'DeleteUserPoolDomain', - 'DescribeIdentityProvider', - 'DescribeResourceServer', - 'DescribeUserPoolDomain', - 'GetIdentityProviderByIdentifier', - 'GetSigningCertificate', - 'GetUICustomization', - 'ListIdentityProviders', - 'ListResourceServers', - 'ListTagsForResource', - 'SetUICustomization', - 'TagResource', - 'UntagResource', - 'UpdateIdentityProvider', - 'UpdateResourceServer', - 'UpdateUserPoolDomain', - 'VerifySoftwareToken', - ], - 'comprehend': [ - 'BatchDetectSyntax', - 'ClassifyDocument', - 'CreateDocumentClassifier', - 'CreateEndpoint', - 'CreateEntityRecognizer', - 'DeleteDocumentClassifier', - 'DeleteEndpoint', - 'DeleteEntityRecognizer', - 'DescribeDocumentClassificationJob', - 'DescribeDocumentClassifier', - 'DescribeDominantLanguageDetectionJob', - 'DescribeEndpoint', - 'DescribeEntitiesDetectionJob', - 'DescribeEntityRecognizer', - 'DescribeKeyPhrasesDetectionJob', - 'DescribePiiEntitiesDetectionJob', - 'DescribeSentimentDetectionJob', - 'DetectPiiEntities', - 'DetectSyntax', - 'ListDocumentClassificationJobs', - 'ListDocumentClassifiers', - 'ListDominantLanguageDetectionJobs', - 'ListEndpoints', - 'ListEntitiesDetectionJobs', - 'ListEntityRecognizers', - 'ListKeyPhrasesDetectionJobs', - 'ListPiiEntitiesDetectionJobs', - 'ListSentimentDetectionJobs', - 'ListTagsForResource', - 'StartDocumentClassificationJob', - 'StartDominantLanguageDetectionJob', - 'StartEntitiesDetectionJob', - 'StartKeyPhrasesDetectionJob', - 'StartPiiEntitiesDetectionJob', - 'StartSentimentDetectionJob', - 'StopDominantLanguageDetectionJob', - 'StopEntitiesDetectionJob', - 'StopKeyPhrasesDetectionJob', - 'StopPiiEntitiesDetectionJob', - 'StopSentimentDetectionJob', - 'StopTrainingDocumentClassifier', - 'StopTrainingEntityRecognizer', - 'TagResource', - 'UntagResource', - 'UpdateEndpoint', - ], - 'config': [ - 'BatchGetAggregateResourceConfig', - 'BatchGetResourceConfig', - 'DeleteAggregationAuthorization', - 'DeleteConfigurationAggregator', - 'DeleteConformancePack', - 'DeleteOrganizationConfigRule', - 'DeleteOrganizationConformancePack', - 'DeletePendingAggregationRequest', - 'DeleteRemediationConfiguration', - 'DeleteRemediationExceptions', - 'DeleteResourceConfig', - 'DeleteRetentionConfiguration', - 'DescribeAggregateComplianceByConfigRules', - 'DescribeAggregationAuthorizations', - 'DescribeConfigurationAggregatorSourcesStatus', - 'DescribeConfigurationAggregators', - 'DescribeConformancePackCompliance', - 'DescribeConformancePacks', - 'DescribeConformancePackStatus', - 'DescribeOrganizationConfigRules', - 'DescribeOrganizationConfigRuleStatuses', - 'DescribeOrganizationConformancePacks', - 'DescribeOrganizationConformancePackStatuses', - 'DescribePendingAggregationRequests', - 'DescribeRemediationConfigurations', - 'DescribeRemediationExceptions', - 'DescribeRemediationExecutionStatus', - 'DescribeRetentionConfigurations', - 'GetAggregateComplianceDetailsByConfigRule', - 'GetAggregateConfigRuleComplianceSummary', - 'GetAggregateDiscoveredResourceCounts', - 'GetAggregateResourceConfig', - 'GetConformancePackComplianceDetails', - 'GetConformancePackComplianceSummary', - 'GetDiscoveredResourceCounts', - 'GetOrganizationConfigRuleDetailedStatus', - 'GetOrganizationConformancePackDetailedStatus', - 'ListAggregateDiscoveredResources', - 'ListTagsForResource', - 'PutAggregationAuthorization', - 'PutConfigurationAggregator', - 'PutConformancePack', - 'PutOrganizationConfigRule', - 'PutOrganizationConformancePack', - 'PutRemediationConfigurations', - 'PutRemediationExceptions', - 'PutResourceConfig', - 'PutRetentionConfiguration', - 'SelectAggregateResourceConfig', - 'SelectResourceConfig', - 'StartRemediationExecution', - 'TagResource', - 'UntagResource', - ], - 'connect': [ - 'AssociateRoutingProfileQueues', - 'CreateContactFlow', - 'CreateRoutingProfile', - 'CreateUser', - 'DeleteUser', - 'DescribeContactFlow', - 'DescribeRoutingProfile', - 'DescribeUser', - 'DescribeUserHierarchyGroup', - 'DescribeUserHierarchyStructure', - 'DisassociateRoutingProfileQueues', - 'GetContactAttributes', - 'GetCurrentMetricData', - 'GetMetricData', - 'ListContactFlows', - 'ListHoursOfOperations', - 'ListPhoneNumbers', - 'ListPrompts', - 'ListQueues', - 'ListRoutingProfileQueues', - 'ListRoutingProfiles', - 'ListSecurityProfiles', - 'ListTagsForResource', - 'ListUserHierarchyGroups', - 'ListUsers', - 'ResumeContactRecording', - 'StartChatContact', - 'StartContactRecording', - 'StartOutboundVoiceContact', - 'StopContact', - 'StopContactRecording', - 'SuspendContactRecording', - 'TagResource', - 'UntagResource', - 'UpdateContactAttributes', - 'UpdateContactFlowContent', - 'UpdateContactFlowName', - 'UpdateRoutingProfileConcurrency', - 'UpdateRoutingProfileDefaultOutboundQueue', - 'UpdateRoutingProfileName', - 'UpdateRoutingProfileQueues', - 'UpdateUserHierarchy', - 'UpdateUserIdentityInfo', - 'UpdateUserPhoneConfig', - 'UpdateUserRoutingProfile', - 'UpdateUserSecurityProfiles', - ], - 'crowd': [ - 'AcceptQualificationRequest', - 'ApproveAssignment', - 'ApproveRejectedAssignment', - 'AssignQualification', - 'AssociateQualificationWithWorker', - 'BlockWorker', - 'ChangeHITTypeOfHIT', - 'CreateAdditionalAssignmentsForHIT', - 'CreateHIT', - 'CreateHITType', - 'CreateHITWithHITType', - 'CreateQualificationType', - 'CreateWorkerBlock', - 'DeleteHIT', - 'DeleteQualificationType', - 'DeleteWorkerBlock', - 'DisableHIT', - 'DisassociateQualificationFromWorker', - 'DisposeHIT', - 'DisposeQualificationType', - 'ExtendHIT', - 'ForceExpireHIT', - 'GetAccountBalance', - 'GetAssignment', - 'GetAssignmentsForHIT', - 'GetBlockedWorkers', - 'GetBonusPayments', - 'GetFileUploadURL', - 'GetHIT', - 'GetHITsForQualificationType', - 'GetQualificationRequests', - 'GetQualificationScore', - 'GetQualificationType', - 'GetQualificationsForQualificationType', - 'GetRequesterStatistic', - 'GetRequesterWorkerStatistic', - 'GetReviewResultsForHIT', - 'GetReviewableHITs', - 'GrantBonus', - 'GrantQualification', - 'ListAssignmentsForHIT', - 'ListBonusPayments', - 'ListHITs', - 'ListHITsForQualificationType', - 'ListQualificationRequests', - 'ListQualificationTypes', - 'ListReviewableHITs', - 'ListReviewPolicyResultsForHIT', - 'ListWorkerBlocks', - 'ListWorkersWithQualificationType', - 'NotifyWorkers', - 'RegisterHITType', - 'RejectAssignment', - 'RejectQualificationRequest', - 'RevokeQualification', - 'SearchHITs', - 'SearchQualificationTypes', - 'SendBonus', - 'SendTestEventNotification', - 'SetHITAsReviewing', - 'SetHITTypeNotification', - 'UnblockWorker', - 'UpdateExpirationForHIT', - 'UpdateHITReviewStatus', - 'UpdateHITTypeOfHIT', - 'UpdateNotificationSettings', - 'UpdateQualificationScore', - 'UpdateQualificationType', - ], - 'cur': [ - 'ModifyReportDefinition', - ], - 'dax': [ - 'ConditionCheckItem', - ], - 'devicefarm': [ - 'CreateInstanceProfile', - 'CreateTestGridProject', - 'CreateTestGridUrl', - 'CreateVPCEConfiguration', - 'DeleteInstanceProfile', - 'DeleteTestGridProject', - 'DeleteVPCEConfiguration', - 'GetDeviceInstance', - 'GetInstanceProfile', - 'GetTestGridProject', - 'GetTestGridSession', - 'GetVPCEConfiguration', - 'ListDeviceInstances', - 'ListInstanceProfiles', - 'ListOfferingPromotions', - 'ListTagsForResource', - 'ListTestGridProjects', - 'ListTestGridSessionActions', - 'ListTestGridSessionArtifacts', - 'ListTestGridSessions', - 'ListVPCEConfigurations', - 'StopJob', - 'TagResource', - 'UntagResource', - 'UpdateDeviceInstance', - 'UpdateInstanceProfile', - 'UpdateTestGridProject', - 'UpdateUpload', - 'UpdateVPCEConfiguration', - ], - 'directconnect': [ - 'AcceptDirectConnectGatewayAssociationProposal', - 'AllocateHostedConnection', - 'AllocateTransitVirtualInterface', - 'AssociateConnectionWithLag', - 'AssociateHostedConnection', - 'AssociateVirtualInterface', - 'ConfirmTransitVirtualInterface', - 'CreateBGPPeer', - 'CreateDirectConnectGateway', - 'CreateDirectConnectGatewayAssociation', - 'CreateDirectConnectGatewayAssociationProposal', - 'CreateLag', - 'CreateTransitVirtualInterface', - 'DeleteBGPPeer', - 'DeleteDirectConnectGateway', - 'DeleteDirectConnectGatewayAssociation', - 'DeleteDirectConnectGatewayAssociationProposal', - 'DeleteLag', - 'DescribeDirectConnectGatewayAssociationProposals', - 'DescribeDirectConnectGatewayAssociations', - 'DescribeDirectConnectGatewayAttachments', - 'DescribeDirectConnectGateways', - 'DescribeHostedConnections', - 'DescribeLags', - 'DescribeLoa', - 'DescribeTags', - 'DisassociateConnectionFromLag', - 'ListVirtualInterfaceTestHistory', - 'StartBgpFailoverTest', - 'StopBgpFailoverTest', - 'TagResource', - 'UntagResource', - 'UpdateDirectConnectGatewayAssociation', - 'UpdateLag', - 'UpdateVirtualInterfaceAttributes', - ], - 'discovery': [ - 'BatchDeleteImportData', - 'DescribeContinuousExports', - 'DescribeExportTasks', - 'DescribeImportTasks', - 'StartContinuousExport', - 'StartImportTask', - 'StopContinuousExport', - ], - 'dlm': [ - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'dms': [ - 'ApplyPendingMaintenanceAction', - 'CreateEventSubscription', - 'DeleteCertificate', - 'DescribeReplicationInstanceTaskLogs', - 'DescribeReplicationTaskAssessmentResults', - 'ImportCertificate', - 'RebootReplicationInstance', - 'ReloadTables', - 'StartReplicationTaskAssessment', - ], - 'ds': [ - 'AcceptSharedDirectory', - 'CheckAlias', - 'CreateIdentityPoolDirectory', - 'CreateLogSubscription', - 'DeleteLogSubscription', - 'DeregisterCertificate', - 'DescribeCertificate', - 'DescribeDomainControllers', - 'DescribeLDAPSSettings', - 'DescribeSharedDirectories', - 'DisableLDAPS', - 'EnableLDAPS', - 'GetAuthorizedApplicationDetails', - 'ListCertificates', - 'ListLogSubscriptions', - 'RegisterCertificate', - 'RejectSharedDirectory', - 'ResetUserPassword', - 'ShareDirectory', - 'UnshareDirectory', - 'UpdateNumberOfDomainControllers', - 'UpdateTrust', - ], - 'dynamodb': [ - 'ConditionCheckItem', - 'CreateGlobalTable', - 'CreateTableReplica', - 'DeleteTableReplica', - 'DescribeContributorInsights', - 'DescribeGlobalTable', - 'DescribeGlobalTableSettings', - 'DescribeTableReplicaAutoScaling', - 'DescribeTimeToLive', - 'ListContributorInsights', - 'ListGlobalTables', - 'UpdateContributorInsights', - 'UpdateGlobalTable', - 'UpdateGlobalTableSettings', - 'UpdateTableReplicaAutoScaling', - 'UpdateTimeToLive', - ], - 'ec2': [ - 'AcceptTransitGatewayPeeringAttachment', - 'AcceptTransitGatewayVpcAttachment', - 'AdvertiseByoipCidr', - 'ApplySecurityGroupsToClientVpnTargetNetwork', - 'AssociateClientVpnTargetNetwork', - 'AssociateTransitGatewayMulticastDomain', - 'AssociateTransitGatewayRouteTable', - 'AuthorizeClientVpnIngress', - 'CancelCapacityReservation', - 'CreateCapacityReservation', - 'CreateCarrierGateway', - 'CreateClientVpnEndpoint', - 'CreateClientVpnRoute', - 'CreateFleet', - 'CreateLocalGatewayRoute', - 'CreateLocalGatewayRouteTableVpcAssociation', - 'CreateManagedPrefixList', - 'CreateSnapshots', - 'CreateTrafficMirrorFilter', - 'CreateTrafficMirrorFilterRule', - 'CreateTrafficMirrorSession', - 'CreateTrafficMirrorTarget', - 'CreateTransitGateway', - 'CreateTransitGatewayMulticastDomain', - 'CreateTransitGatewayPeeringAttachment', - 'CreateTransitGatewayPrefixListReference', - 'CreateTransitGatewayRoute', - 'CreateTransitGatewayRouteTable', - 'CreateTransitGatewayVpcAttachment', - 'DeleteCarrierGateway', - 'DeleteClientVpnEndpoint', - 'DeleteClientVpnRoute', - 'DeleteFleets', - 'DeleteLocalGatewayRoute', - 'DeleteLocalGatewayRouteTableVpcAssociation', - 'DeleteManagedPrefixList', - 'DeleteTrafficMirrorFilter', - 'DeleteTrafficMirrorFilterRule', - 'DeleteTrafficMirrorSession', - 'DeleteTrafficMirrorTarget', - 'DeleteTransitGateway', - 'DeleteTransitGatewayMulticastDomain', - 'DeleteTransitGatewayPeeringAttachment', - 'DeleteTransitGatewayPrefixListReference', - 'DeleteTransitGatewayRoute', - 'DeleteTransitGatewayRouteTable', - 'DeleteTransitGatewayVpcAttachment', - 'DeprovisionByoipCidr', - 'DeregisterInstanceEventNotificationAttributes', - 'DeregisterTransitGatewayMulticastGroupMembers', - 'DeregisterTransitGatewayMulticastGroupSources', - 'DescribeAggregateIdFormat', - 'DescribeByoipCidrs', - 'DescribeCapacityReservations', - 'DescribeCarrierGateways', - 'DescribeClientVpnAuthorizationRules', - 'DescribeClientVpnConnections', - 'DescribeClientVpnEndpoints', - 'DescribeClientVpnRoutes', - 'DescribeClientVpnTargetNetworks', - 'DescribeCoipPools', - 'DescribeExportImageTasks', - 'DescribeFastSnapshotRestores', - 'DescribeFleetHistory', - 'DescribeFleetInstances', - 'DescribeFleets', - 'DescribeInstanceEventNotificationAttributes', - 'DescribeInstanceTypeOfferings', - 'DescribeInstanceTypes', - 'DescribeLocalGatewayRouteTables', - 'DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations', - 'DescribeLocalGatewayRouteTableVpcAssociations', - 'DescribeLocalGateways', - 'DescribeLocalGatewayVirtualInterfaceGroups', - 'DescribeLocalGatewayVirtualInterfaces', - 'DescribeManagedPrefixLists', - 'DescribePrincipalIdFormat', - 'DescribePublicIpv4Pools', - 'DescribeTrafficMirrorFilters', - 'DescribeTrafficMirrorSessions', - 'DescribeTrafficMirrorTargets', - 'DescribeTransitGatewayAttachments', - 'DescribeTransitGatewayMulticastDomains', - 'DescribeTransitGatewayPeeringAttachments', - 'DescribeTransitGatewayRouteTables', - 'DescribeTransitGatewayVpcAttachments', - 'DescribeTransitGateways', - 'DisableEbsEncryptionByDefault', - 'DisableFastSnapshotRestores', - 'DisableTransitGatewayRouteTablePropagation', - 'DisassociateClientVpnTargetNetwork', - 'DisassociateTransitGatewayMulticastDomain', - 'DisassociateTransitGatewayRouteTable', - 'EnableEbsEncryptionByDefault', - 'EnableFastSnapshotRestores', - 'EnableTransitGatewayRouteTablePropagation', - 'ExportClientVpnClientCertificateRevocationList', - 'ExportClientVpnClientConfiguration', - 'ExportImage', - 'ExportTransitGatewayRoutes', - 'GetCapacityReservationUsage', - 'GetCoipPoolUsage', - 'GetDefaultCreditSpecification', - 'GetEbsDefaultKmsKeyId', - 'GetEbsEncryptionByDefault', - 'GetManagedPrefixListAssociations', - 'GetManagedPrefixListEntries', - 'GetTransitGatewayAttachmentPropagations', - 'GetTransitGatewayMulticastDomainAssociations', - 'GetTransitGatewayPrefixListReferences', - 'GetTransitGatewayRouteTableAssociations', - 'GetTransitGatewayRouteTablePropagations', - 'ImportClientVpnClientCertificateRevocationList', - 'ModifyCapacityReservation', - 'ModifyClientVpnEndpoint', - 'ModifyDefaultCreditSpecification', - 'ModifyEbsDefaultKmsKeyId', - 'ModifyFleet', - 'ModifyInstanceCapacityReservationAttributes', - 'ModifyInstanceEventStartTime', - 'ModifyInstanceMetadataOptions', - 'ModifyManagedPrefixList', - 'ModifyTrafficMirrorFilterNetworkServices', - 'ModifyTrafficMirrorFilterRule', - 'ModifyTrafficMirrorSession', - 'ModifyTransitGateway', - 'ModifyTransitGatewayPrefixListReference', - 'ModifyTransitGatewayVpcAttachment', - 'ModifyVpnConnection', - 'ModifyVpnTunnelCertificate', - 'ModifyVpnTunnelOptions', - 'ProvisionByoipCidr', - 'RegisterInstanceEventNotificationAttributes', - 'RegisterTransitGatewayMulticastGroupMembers', - 'RegisterTransitGatewayMulticastGroupSources', - 'RejectTransitGatewayPeeringAttachment', - 'RejectTransitGatewayVpcAttachment', - 'ReplaceTransitGatewayRoute', - 'ResetEbsDefaultKmsKeyId', - 'RestoreManagedPrefixListVersion', - 'RevokeClientVpnIngress', - 'SearchLocalGatewayRoutes', - 'SearchTransitGatewayMulticastGroups', - 'SearchTransitGatewayRoutes', - 'SendDiagnosticInterrupt', - 'StartVpcEndpointServicePrivateDnsVerification', - 'TerminateClientVpnConnections', - 'WithdrawByoipCidr', - ], - 'ecr': [ - 'DeleteLifecyclePolicy', - 'DescribeImageScanFindings', - 'GetLifecyclePolicy', - 'GetLifecyclePolicyPreview', - 'ListTagsForResource', - 'PutImageScanningConfiguration', - 'PutImageTagMutability', - 'PutLifecyclePolicy', - 'StartImageScan', - 'StartLifecyclePolicyPreview', - 'TagResource', - 'UntagResource', - ], - 'ecs': [ - 'CreateCapacityProvider', - 'CreateTaskSet', - 'DeleteAccountSetting', - 'DeleteAccountSettings', - 'DeleteAttributes', - 'DeleteCapacityProvider', - 'DeleteTaskSet', - 'DescribeCapacityProviders', - 'DescribeTaskSets', - 'ListAccountSettings', - 'ListAttributes', - 'ListTagsForResource', - 'PutAccountSetting', - 'PutAccountSettingDefault', - 'PutAttributes', - 'PutClusterCapacityProviders', - 'SubmitAttachmentStateChanges', - 'TagResource', - 'UntagResource', - 'UpdateClusterSettings', - 'UpdateServicePrimaryTaskSet', - 'UpdateTaskSet', - ], - 'eks': [ - 'CreateFargateProfile', - 'CreateNodegroup', - 'DeleteFargateProfile', - 'DeleteNodegroup', - 'DescribeFargateProfile', - 'DescribeNodegroup', - 'ListFargateProfiles', - 'ListNodegroups', - 'UpdateNodegroupConfig', - 'UpdateNodegroupVersion', - ], - 'elasticache': [ - 'BatchApplyUpdateAction', - 'BatchStopUpdateAction', - 'CompleteMigration', - 'CreateGlobalReplicationGroup', - 'DecreaseNodeGroupsInGlobalReplicationGroup', - 'DecreaseReplicaCount', - 'DeleteGlobalReplicationGroup', - 'DescribeGlobalReplicationGroups', - 'DescribeServiceUpdates', - 'DescribeUpdateActions', - 'DisassociateGlobalReplicationGroup', - 'FailoverGlobalReplicationGroup', - 'IncreaseNodeGroupsInGlobalReplicationGroup', - 'IncreaseReplicaCount', - 'ModifyGlobalReplicationGroup', - 'ModifyReplicationGroupShardConfiguration', - 'RebalanceSlotsInGlobalReplicationGroup', - 'StartMigration', - 'TestFailover', - ], - 'elasticbeanstalk': [ - 'AssociateEnvironmentOperationsRole', - 'DescribeAccountAttributes', - 'DisassociateEnvironmentOperationsRole', - 'ListPlatformBranches', - 'PutInstanceStatistics', - ], - 'elasticfilesystem': [ - 'Backup', - 'ClientMount', - 'ClientRootAccess', - 'ClientWrite', - 'CreateAccessPoint', - 'DeleteAccessPoint', - 'DeleteFileSystemPolicy', - 'DescribeAccessPoints', - 'DescribeBackupPolicy', - 'DescribeFileSystemPolicy', - 'DescribeLifecycleConfiguration', - 'ListTagsForResource', - 'PutBackupPolicy', - 'PutFileSystemPolicy', - 'PutLifecycleConfiguration', - 'Restore', - 'TagResource', - 'UntagResource', - 'UpdateFileSystem', - ], - 'elasticmapreduce': [ - 'AddInstanceFleet', - 'CreateEditor', - 'DeleteEditor', - 'DescribeEditor', - 'GetBlockPublicAccessConfiguration', - 'GetManagedScalingPolicy', - 'ListEditors', - 'ListInstanceFleets', - 'ModifyCluster', - 'ModifyInstanceFleet', - 'OpenEditorInConsole', - 'PutBlockPublicAccessConfiguration', - 'PutManagedScalingPolicy', - 'RemoveManagedScalingPolicy', - 'StartEditor', - 'StopEditor', - ], - 'es': [ - 'AcceptInboundCrossClusterSearchConnection', - 'CreateElasticsearchServiceRole', - 'CreateOutboundCrossClusterSearchConnection', - 'DeleteElasticsearchServiceRole', - 'DeleteInboundCrossClusterSearchConnection', - 'DeleteOutboundCrossClusterSearchConnection', - 'DescribeElasticsearchInstanceTypeLimits', - 'DescribeInboundCrossClusterSearchConnections', - 'DescribeOutboundCrossClusterSearchConnections', - 'DescribeReservedElasticsearchInstanceOfferings', - 'DescribeReservedElasticsearchInstances', - 'ESCrossClusterGet', - 'ESHttpDelete', - 'ESHttpGet', - 'ESHttpHead', - 'ESHttpPatch', - 'ESHttpPost', - 'ESHttpPut', - 'GetCompatibleElasticsearchVersions', - 'GetUpgradeHistory', - 'GetUpgradeStatus', - 'ListElasticsearchInstanceTypeDetails', - 'ListElasticsearchInstanceTypes', - 'ListElasticsearchVersions', - 'PurchaseReservedElasticsearchInstance', - 'PurchaseReservedElasticsearchInstanceOffering', - 'RejectInboundCrossClusterSearchConnection', - 'UpgradeElasticsearchDomain', - ], - 'events': [ - 'ActivateEventSource', - 'CreateEventBus', - 'CreatePartnerEventSource', - 'DeactivateEventSource', - 'DeleteEventBus', - 'DeletePartnerEventSource', - 'DescribeEventBus', - 'DescribeEventSource', - 'DescribePartnerEventSource', - 'ListEventBuses', - 'ListEventSources', - 'ListPartnerEventSourceAccounts', - 'ListPartnerEventSources', - 'ListTagsForResource', - 'PutPartnerEvents', - 'PutPermission', - 'RemovePermission', - 'TagResource', - 'UntagResource', - ], - 'execute_api': [ - 'ManageConnections', - ], - 'firehose': [ - 'ListTagsForDeliveryStream', 'StartDeliveryStreamEncryption', - 'StopDeliveryStreamEncryption', 'TagDeliveryStream', - 'UntagDeliveryStream', - ], - 'fms': [ - 'DeleteAppsList', - 'DeleteProtocolsList', - 'GetAppsList', - 'GetProtocolsList', - 'ListAppsLists', - 'ListProtocolsLists', - 'ListTagsForResource', - 'PutAppsList', - 'PutProtocolsList', - 'TagResource', - 'UntagResource', - ], - 'fsx': [ - 'CancelDataRepositoryTask', - 'CreateDataRepositoryTask', - 'DescribeDataRepositoryTasks', - ], - 'gamelift': [ - 'AcceptMatch', - 'ClaimGameServer', - 'CreateGameServerGroup', - 'CreateGameSessionQueue', - 'CreateMatchmakingConfiguration', - 'CreateMatchmakingRuleSet', - 'CreateScript', - 'CreateVpcPeeringAuthorization', - 'CreateVpcPeeringConnection', - 'DeleteGameServerGroup', - 'DeleteGameSessionQueue', - 'DeleteMatchmakingConfiguration', - 'DeleteMatchmakingRuleSet', - 'DeleteScript', - 'DeleteVpcPeeringAuthorization', - 'DeleteVpcPeeringConnection', - 'DeregisterGameServer', - 'DescribeGameServer', - 'DescribeGameServerGroup', - 'DescribeGameServerInstances', - 'DescribeGameSessionPlacement', - 'DescribeGameSessionQueues', - 'DescribeMatchmaking', - 'DescribeMatchmakingConfigurations', - 'DescribeMatchmakingRuleSets', - 'DescribeScript', - 'DescribeVpcPeeringAuthorizations', - 'DescribeVpcPeeringConnections', - 'ListGameServerGroups', - 'ListGameServers', - 'ListScripts', - 'ListTagsForResource', - 'RegisterGameServer', - 'ResumeGameServerGroup', - 'StartFleetActions', - 'StartGameSessionPlacement', - 'StartMatchBackfill', - 'StartMatchmaking', - 'StopFleetActions', - 'StopGameSessionPlacement', - 'StopMatchmaking', - 'SuspendGameServerGroup', - 'TagResource', - 'UntagResource', - 'UpdateGameServer', - 'UpdateGameServerGroup', - 'UpdateGameSessionQueue', - 'UpdateMatchmakingConfiguration', - 'UpdateScript', - 'ValidateMatchmakingRuleSet', - ], - 'glue': [ - 'BatchDeleteTableVersion', - 'BatchGetCrawlers', - 'BatchGetDevEndpoints', - 'BatchGetJobs', - 'BatchGetTriggers', - 'BatchGetWorkflows', - 'BatchStopJobRun', - 'CancelMLTaskRun', - 'CreateMLTransform', - 'CreateWorkflow', - 'DeleteMLTransform', - 'DeleteResourcePolicy', - 'DeleteTableVersion', - 'DeleteWorkflow', - 'GetJobBookmark', - 'GetMLTaskRun', - 'GetMLTaskRuns', - 'GetMLTransform', - 'GetMLTransforms', - 'GetResourcePolicy', - 'GetTableVersion', - 'GetTags', - 'GetWorkflow', - 'GetWorkflowRun', - 'GetWorkflowRunProperties', - 'GetWorkflowRuns', - 'ListCrawlers', - 'ListDevEndpoints', - 'ListJobs', - 'ListMLTransforms', - 'ListTriggers', - 'ListWorkflows', - 'PutResourcePolicy', - 'PutWorkflowRunProperties', - 'SearchTables', - 'StartExportLabelsTaskRun', - 'StartImportLabelsTaskRun', - 'StartMLEvaluationTaskRun', - 'StartMLLabelingSetGenerationTaskRun', - 'StartWorkflowRun', - 'TagResource', - 'UntagResource', - 'UpdateCrawlerSchedule', - 'UpdateMLTransform', - 'UpdateWorkflow', - 'UseMLTransforms', - ], - 'greengrass': [ - 'CreateConnectorDefinition', - 'CreateConnectorDefinitionVersion', - 'DeleteConnectorDefinition', - 'Discover', - 'GetBulkDeploymentStatus', - 'GetConnectorDefinition', - 'GetConnectorDefinitionVersion', - 'ListBulkDeploymentDetailedReports', - 'ListBulkDeployments', - 'ListConnectorDefinitionVersions', - 'ListConnectorDefinitions', - 'ListTagsForResource', - 'StartBulkDeployment', - 'StopBulkDeployment', - 'TagResource', - 'UntagResource', - 'UpdateConnectorDefinition', - ], - 'guardduty': [ - 'CreateFilter', - 'CreatePublishingDestination', - 'DeleteFilter', - 'DeletePublishingDestination', - 'DescribeOrganizationConfiguration', - 'DescribePublishingDestination', - 'DisableOrganizationAdminAccount', - 'EnableOrganizationAdminAccount', - 'GetFilter', - 'ListFilters', - 'ListOrganizationAdminAccounts', - 'ListPublishingDestinations', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateFilter', - 'UpdateOrganizationConfiguration', - 'UpdatePublishingDestination', - ], - 'health': [ - 'DescribeAffectedAccountsForOrganization', - 'DescribeAffectedEntitiesForOrganization', - 'DescribeEventDetailsForOrganization', - 'DescribeEventsForOrganization', - 'DescribeHealthServiceStatusForOrganization', - 'DisableHealthServiceAccessForOrganization', - 'EnableHealthServiceAccessForOrganization', - ], - 'iam': [ - 'DeleteRolePermissionsBoundary', - 'DeleteUserPermissionsBoundary', - 'FinalizeSmsMfaRegistration', - 'GenerateOrganizationsAccessReport', - 'GetOrganizationsAccessReport', - 'ListRoleTags', - 'ListUserTags', - 'PutRolePermissionsBoundary', - 'PutUserPermissionsBoundary', - 'RequestSmsMfaRegistration', - 'SetSecurityTokenServicePreferences', - 'TagRole', - 'TagUser', - 'UntagRole', - 'UntagUser', - 'UpdateRole', - ], - 'iot': [ - 'AddThingToBillingGroup', - 'AddThingToThingGroup', - 'AttachSecurityProfile', - 'CancelAuditMitigationActionsTask', - 'CancelAuditTask', - 'CancelJobExecution', - 'CloseTunnel', - 'CreateAuditSuppression', - 'CreateBillingGroup', - 'CreateDimension', - 'CreateDomainConfiguration', - 'CreateDynamicThingGroup', - 'CreateMitigationAction', - 'CreateOTAUpdate', - 'CreateProvisioningClaim', - 'CreateProvisioningTemplate', - 'CreateProvisioningTemplateVersion', - 'CreateScheduledAudit', - 'CreateSecurityProfile', - 'CreateThingGroup', - 'DeleteAccountAuditConfiguration', - 'DeleteAuditSuppression', - 'DeleteBillingGroup', - 'DeleteDimension', - 'DeleteDomainConfiguration', - 'DeleteDynamicThingGroup', - 'DeleteJob', - 'DeleteJobExecution', - 'DeleteMitigationAction', - 'DeleteOTAUpdate', - 'DeleteProvisioningTemplate', - 'DeleteProvisioningTemplateVersion', - 'DeleteScheduledAudit', - 'DeleteSecurityProfile', - 'DeleteThingGroup', - 'DeleteV2LoggingLevel', - 'DescribeAccountAuditConfiguration', - 'DescribeAuditFinding', - 'DescribeAuditMitigationActionsTask', - 'DescribeAuditSuppression', - 'DescribeAuditTask', - 'DescribeBillingGroup', - 'DescribeDimension', - 'DescribeDomainConfiguration', - 'DescribeEventConfigurations', - 'DescribeMitigationAction', - 'DescribeProvisioningTemplate', - 'DescribeProvisioningTemplateVersion', - 'DescribeScheduledAudit', - 'DescribeSecurityProfile', - 'DescribeThingGroup', - 'DescribeThingRegistrationTask', - 'DescribeTunnel', - 'DetachSecurityProfile', - 'GetCardinality', - 'GetOTAUpdate', - 'GetPendingJobExecutions', - 'GetPercentiles', - 'GetStatistics', - 'GetV2LoggingOptions', - 'ListActiveViolations', - 'ListAuditFindings', - 'ListAuditMitigationActionsExecutions', - 'ListAuditMitigationActionsTasks', - 'ListAuditSuppressions', - 'ListAuditTasks', - 'ListBillingGroups', - 'ListDimensions', - 'ListDomainConfigurations', - 'ListMitigationActions', - 'ListNamedShadowsForThing', - 'ListOTAUpdates', - 'ListProvisioningTemplates', - 'ListProvisioningTemplateVersions', - 'ListScheduledAudits', - 'ListSecurityProfiles', - 'ListSecurityProfilesForTarget', - 'ListTagsForResource', - 'ListTargetsForSecurityProfile', - 'ListThingGroups', - 'ListThingGroupsForThing', - 'ListThingRegistrationTaskReports', - 'ListThingRegistrationTasks', - 'ListThingsInBillingGroup', - 'ListThingsInThingGroup', - 'ListTunnels', - 'ListV2LoggingLevels', - 'ListViolationEvents', - 'OpenTunnel', - 'RegisterCertificateWithoutCA', - 'RegisterThing', - 'RemoveThingFromBillingGroup', - 'RemoveThingFromThingGroup', - 'SetV2LoggingLevel', - 'SetV2LoggingOptions', - 'StartAuditMitigationActionsTask', - 'StartNextPendingJobExecution', - 'StartOnDemandAuditTask', - 'StartThingRegistrationTask', - 'StopThingRegistrationTask', - 'TagResource', - 'UntagResource', - 'UpdateAccountAuditConfiguration', - 'UpdateAuditSuppression', - 'UpdateBillingGroup', - 'UpdateDimension', - 'UpdateDomainConfiguration', - 'UpdateDynamicThingGroup', - 'UpdateEventConfigurations', - 'UpdateJob', - 'UpdateJobExecution', - 'UpdateMitigationAction', - 'UpdateProvisioningTemplate', - 'UpdateScheduledAudit', - 'UpdateSecurityProfile', - 'UpdateThingGroup', - 'UpdateThingGroupsForThing', - 'ValidateSecurityProfileBehaviors', - ], - 'iotanalytics': [ - 'BatchPutMessage', - 'CancelPipelineReprocessing', - 'DescribeLoggingOptions', - 'ListTagsForResource', - 'PutLoggingOptions', - 'RunPipelineActivity', - 'SampleChannelData', - 'StartPipelineReprocessing', - 'TagResource', - 'UntagResource', - 'UpdateChannel', - 'UpdateDatastore', - ], - 'kinesis': [ - 'DeregisterStreamConsumer', 'DescribeStreamConsumer', - 'DescribeStreamSummary', 'ListShards', 'ListStreamConsumers', - 'RegisterStreamConsumer', 'SubscribeToShard', - ], - 'kinesisvideo': [ - 'ConnectAsMaster', - 'ConnectAsViewer', - 'CreateSignalingChannel', - 'DeleteSignalingChannel', - 'DescribeSignalingChannel', - 'GetClip', - 'GetDASHStreamingSessionURL', - 'GetHLSStreamingSessionURL', - 'GetIceServerConfig', - 'GetSignalingChannelEndpoint', - 'ListSignalingChannels', - 'ListTagsForResource', - 'SendAlexaOfferToMaster', - 'TagResource', - 'UntagResource', - 'UpdateSignalingChannel', - ], - 'kms': [ - 'GenerateDataKeyPair', - 'GenerateDataKeyPairWithoutPlaintext', - 'GetPublicKey', - 'Sign', - 'Verify', - ], - 'lightsail': [ - 'AttachDisk', - 'AttachInstancesToLoadBalancer', - 'AttachLoadBalancerTlsCertificate', - 'CopySnapshot', - 'CreateCloudFormationStack', - 'CreateDisk', - 'CreateDiskFromSnapshot', - 'CreateDiskSnapshot', - 'CreateLoadBalancer', - 'CreateLoadBalancerTlsCertificate', - 'CreateRelationalDatabase', - 'CreateRelationalDatabaseFromSnapshot', - 'CreateRelationalDatabaseSnapshot', - 'DeleteDisk', - 'DeleteDiskSnapshot', - 'DeleteKnownHostKeys', - 'DeleteLoadBalancer', - 'DeleteLoadBalancerTlsCertificate', - 'DeleteRelationalDatabase', - 'DeleteRelationalDatabaseSnapshot', - 'DetachDisk', - 'DetachInstancesFromLoadBalancer', - 'ExportSnapshot', - 'GetCloudFormationStackRecords', - 'GetDisk', - 'GetDiskSnapshot', - 'GetDiskSnapshots', - 'GetDisks', - 'GetExportSnapshotRecords', - 'GetLoadBalancer', - 'GetLoadBalancerMetricData', - 'GetLoadBalancerTlsCertificates', - 'GetLoadBalancers', - 'GetRelationalDatabase', - 'GetRelationalDatabaseBlueprints', - 'GetRelationalDatabaseBundles', - 'GetRelationalDatabaseEvents', - 'GetRelationalDatabaseLogEvents', - 'GetRelationalDatabaseLogStreams', - 'GetRelationalDatabaseMasterUserPassword', - 'GetRelationalDatabaseMetricData', - 'GetRelationalDatabaseParameters', - 'GetRelationalDatabaseSnapshot', - 'GetRelationalDatabaseSnapshots', - 'GetRelationalDatabases', - 'PutInstancePublicPorts', - 'RebootRelationalDatabase', - 'StartRelationalDatabase', - 'StopRelationalDatabase', - 'TagResource', - 'UntagResource', - 'UpdateLoadBalancerAttribute', - 'UpdateRelationalDatabase', - 'UpdateRelationalDatabaseParameters', - ], - 'logs': [ - 'CreateLogDelivery', - 'DeleteLogDelivery', - 'DescribeQueries', - 'GetLogDelivery', - 'GetLogGroupFields', - 'GetLogRecord', - 'GetQueryResults', - 'ListLogDeliveries', - 'StartQuery', - 'StopQuery', - 'UpdateLogDelivery', - ], - 'mechanicalturk': [ - 'CreateAdditionalAssignmentsForHIT', - ], - 'mediaconvert': [ - 'AssociateCertificate', - 'DescribeEndpoints', - 'DisassociateCertificate', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'medialive': [ - 'BatchUpdateSchedule', - 'CreateMultiplex', - 'CreateTags', - 'DeleteMultiplex', - 'DeleteReservation', - 'DeleteTags', - 'DescribeInputDevice', - 'DescribeInputDeviceThumbnail', - 'DescribeMultiplex', - 'DescribeOffering', - 'DescribeReservation', - 'DescribeSchedule', - 'ListInputDevices', - 'ListMultiplexes', - 'ListOfferings', - 'ListReservations', - 'ListTagsForResource', - 'PurchaseOffering', - 'StartMultiplex', - 'StopMultiplex', - 'UpdateChannel', - 'UpdateChannelClass', - 'UpdateInput', - 'UpdateInputDevice', - 'UpdateInputSecurityGroup', - 'UpdateMultiplex', - 'UpdateReservation', - ], - 'mediapackage': [ - 'ListTagsForResource', - 'RotateIngestEndpointCredentials', - 'TagResource', - 'UntagResource', - ], - 'mediastore': [ - 'DeleteCorsPolicy', - 'DeleteLifecyclePolicy', - 'DeleteMetricPolicy', - 'GetCorsPolicy', - 'GetLifecyclePolicy', - 'GetMetricPolicy', - 'ListTagsForResource', - 'PutCorsPolicy', - 'PutLifecyclePolicy', - 'PutMetricPolicy', - 'StartAccessLogging', - 'StopAccessLogging', - 'TagResource', - 'UntagResource', - ], - 'mgh': [ - 'CreateHomeRegionControl', - 'DescribeHomeRegionControls', - 'GetHomeRegion', - ], - 'mobilehub': [ - 'DeleteProjectSnapshot', - 'InstallBundle', - 'ListProjectSnapshots', - ], - 'mobiletargeting': [ - 'CreateApp', - 'CreateEmailTemplate', - 'CreateExportJob', - 'CreateJourney', - 'CreatePushTemplate', - 'CreateRecommenderConfiguration', - 'CreateSmsTemplate', - 'CreateVoiceTemplate', - 'DeleteApnsVoipChannel', - 'DeleteApnsVoipSandboxChannel', - 'DeleteApp', - 'DeleteBaiduChannel', - 'DeleteEmailChannel', - 'DeleteEmailTemplate', - 'DeleteEndpoint', - 'DeleteEventStream', - 'DeleteJourney', - 'DeletePushTemplate', - 'DeleteRecommenderConfiguration', - 'DeleteSmsChannel', - 'DeleteSmsTemplate', - 'DeleteUserEndpoints', - 'DeleteVoiceChannel', - 'DeleteVoiceTemplate', - 'GetApnsVoipChannel', - 'GetApnsVoipSandboxChannel', - 'GetApp', - 'GetApps', - 'GetBaiduChannel', - 'GetChannels', - 'GetEmailChannel', - 'GetEmailTemplate', - 'GetEventStream', - 'GetExportJob', - 'GetExportJobs', - 'GetJourney', - 'GetPushTemplate', - 'GetRecommenderConfiguration', - 'GetRecommenderConfigurations', - 'GetSegmentExportJobs', - 'GetSmsChannel', - 'GetSmsTemplate', - 'GetUserEndpoints', - 'GetVoiceChannel', - 'GetVoiceTemplate', - 'ListJourneys', - 'ListTagsForResource', - 'ListTemplates', - 'ListTemplateVersions', - 'PhoneNumberValidate', - 'PutEventStream', - 'PutEvents', - 'RemoveAttributes', - 'SendMessages', - 'SendUsersMessages', - 'TagResource', - 'UntagResource', - 'UpdateApnsVoipChannel', - 'UpdateApnsVoipSandboxChannel', - 'UpdateBaiduChannel', - 'UpdateEmailChannel', - 'UpdateEmailTemplate', - 'UpdateJourney', - 'UpdateJourneyState', - 'UpdatePushTemplate', - 'UpdateRecommenderConfiguration', - 'UpdateSmsChannel', - 'UpdateSmsTemplate', - 'UpdateTemplateActiveVersion', - 'UpdateVoiceChannel', - 'UpdateVoiceTemplate', - ], - 'mq': [ - 'CreateTags', - 'DeleteTags', - 'DescribeBrokerEngineTypes', - 'DescribeBrokerInstanceOptions', - 'ListTags', - ], - 'organizations': [ - 'CreateGovCloudAccount', - 'DeregisterDelegatedAdministrator', - 'DescribeEffectivePolicy', - 'DisableAWSServiceAccess', - 'EnableAWSServiceAccess', - 'ListAWSServiceAccessForOrganization', - 'ListDelegatedAdministrators', - 'ListDelegatedServicesForAccount', - 'ListTagsForResource', - 'RegisterDelegatedAdministrator', - 'TagResource', - 'UntagResource', - ], - 'polly': [ - 'GetSpeechSynthesisTask', - 'ListSpeechSynthesisTasks', - 'StartSpeechSynthesisTask', - ], - 'rds': [ - 'AddRoleToDBInstance', - 'BacktrackDBCluster', - 'CancelExportTask', - 'CopyDBClusterParameterGroup', - 'CreateDBClusterEndpoint', - 'CreateDBProxy', - 'CreateGlobalCluster', - 'DeleteDBClusterEndpoint', - 'DeleteDBInstanceAutomatedBackup', - 'DeleteDBProxy', - 'DeleteGlobalCluster', - 'DeregisterDBProxyTargets', - 'DescribeDBClusterBacktracks', - 'DescribeDBClusterEndpoints', - 'DescribeDBInstanceAutomatedBackups', - 'DescribeDBProxies', - 'DescribeDBProxyTargetGroups', - 'DescribeDBProxyTargets', - 'DescribeExportTasks', - 'DescribeGlobalClusters', - 'DescribeSourceRegions', - 'DescribeValidDBInstanceModifications', - 'ModifyCurrentDBClusterCapacity', - 'ModifyDBClusterEndpoint', - 'ModifyDBProxy', - 'ModifyDBProxyTargetGroup', - 'ModifyDBSnapshot', - 'ModifyGlobalCluster', - 'PromoteReadReplicaDBCluster', - 'RegisterDBProxyTargets', - 'RemoveFromGlobalCluster', - 'RemoveRoleFromDBCluster', - 'RemoveRoleFromDBInstance', - 'RestoreDBClusterFromS3', - 'RestoreDBInstanceFromS3', - 'StartActivityStream', - 'StartDBCluster', - 'StartExportTask', - 'StopActivityStream', - 'StopDBCluster', - ], - 'redshift': [ - 'AcceptReservedNodeExchange', - 'BatchDeleteClusterSnapshots', - 'BatchModifyClusterSnapshots', - 'CancelQuery', - 'CancelResize', - 'CreateSavedQuery', - 'CreateScheduledAction', - 'CreateSnapshotSchedule', - 'DeleteSavedQueries', - 'DeleteScheduledAction', - 'DeleteSnapshotSchedule', - 'DescribeAccountAttributes', - 'DescribeClusterDbRevisions', - 'DescribeClusterTracks', - 'DescribeNodeConfigurationOptions', - 'DescribeQuery', - 'DescribeSavedQueries', - 'DescribeScheduledActions', - 'DescribeSnapshotSchedules', - 'DescribeStorage', - 'DescribeTable', - 'ExecuteQuery', - 'FetchResults', - 'GetReservedNodeExchangeOfferings', - 'ListDatabases', - 'ListSavedQueries', - 'ListSchemas', - 'ListTables', - 'ModifyClusterDbRevision', - 'ModifyClusterMaintenance', - 'ModifyClusterSnapshot', - 'ModifyClusterSnapshotSchedule', - 'ModifySavedQuery', - 'ModifyScheduledAction', - 'ModifySnapshotSchedule', - 'PauseCluster', - 'ResizeCluster', - 'ResumeCluster', - 'ViewQueriesFromConsole', - ], - 'rekognition': [ - 'CreateProject', - 'CreateProjectVersion', - 'DeleteProject', - 'DeleteProjectVersion', - 'DescribeCollection', - 'DescribeProjects', - 'DescribeProjectVersions', - 'DetectCustomLabels', - 'GetSegmentDetection', - 'GetTextDetection', - 'StartProjectVersion', - 'StartSegmentDetection', - 'StartTextDetection', - 'StopProjectVersion', - ], - 'route53': [ - 'CreateQueryLoggingConfig', - 'DeleteQueryLoggingConfig', - 'GetAccountLimit', - 'GetHostedZoneLimit', - 'GetQueryLoggingConfig', - 'GetReusableDelegationSetLimit', - 'ListQueryLoggingConfigs', - ], - 's3': [ - 'BypassGovernanceRetention', - 'CreateAccessPoint', - 'CreateJob', - 'DeleteAccessPoint', - 'DeleteAccessPointPolicy', - 'DeleteJobTagging', - 'DescribeJob', - 'GetAccessPoint', - 'GetAccessPointPolicy', - 'GetAccessPointPolicyStatus', - 'GetAccountPublicAccessBlock', - 'GetBucketObjectLockConfiguration', - 'GetBucketPolicyStatus', - 'GetBucketPublicAccessBlock', - 'GetEncryptionConfiguration', - 'GetJobTagging', - 'GetObjectLegalHold', - 'GetObjectRetention', - 'ListAccessPoints', - 'ListJobs', - 'ObjectOwnerOverrideToBucketOwner', - 'PutAccessPointPolicy', - 'PutAccountPublicAccessBlock', - 'PutBucketObjectLockConfiguration', - 'PutBucketPublicAccessBlock', - 'PutEncryptionConfiguration', - 'PutJobTagging', - 'PutObjectLegalHold', - 'PutObjectRetention', - 'ReplicateTags', - 'UpdateJobPriority', - 'UpdateJobStatus', - ], - 'sagemaker': [ - 'AssociateTrialComponent', - 'BatchGetMetrics', - 'BatchPutMetrics', - 'CreateAlgorithm', - 'CreateApp', - 'CreateAutoMLJob', - 'CreateCodeRepository', - 'CreateCompilationJob', - 'CreateDomain', - 'CreateExperiment', - 'CreateFlowDefinition', - 'CreateHumanTaskUi', - 'CreateHyperParameterTuningJob', - 'CreateLabelingJob', - 'CreateModelPackage', - 'CreateMonitoringSchedule', - 'CreateNotebookInstanceLifecycleConfig', - 'CreatePresignedDomainUrl', - 'CreateProcessingJob', - 'CreateTransformJob', - 'CreateTrial', - 'CreateTrialComponent', - 'CreateUserProfile', - 'CreateWorkforce', - 'CreateWorkteam', - 'DeleteAlgorithm', - 'DeleteApp', - 'DeleteCodeRepository', - 'DeleteDomain', - 'DeleteExperiment', - 'DeleteFlowDefinition', - 'DeleteHumanLoop', - 'DeleteModelPackage', - 'DeleteMonitoringSchedule', - 'DeleteNotebookInstanceLifecycleConfig', - 'DeleteTrial', - 'DeleteTrialComponent', - 'DeleteUserProfile', - 'DeleteWorkforce', - 'DeleteWorkteam', - 'DescribeAlgorithm', - 'DescribeApp', - 'DescribeAutoMLJob', - 'DescribeCodeRepository', - 'DescribeCompilationJob', - 'DescribeDomain', - 'DescribeExperiment', - 'DescribeFlowDefinition', - 'DescribeHumanLoop', - 'DescribeHumanTaskUi', - 'DescribeHyperParameterTuningJob', - 'DescribeLabelingJob', - 'DescribeModelPackage', - 'DescribeMonitoringSchedule', - 'DescribeNotebookInstanceLifecycleConfig', - 'DescribeProcessingJob', - 'DescribeSubscribedWorkteam', - 'DescribeTransformJob', - 'DescribeTrial', - 'DescribeTrialComponent', - 'DescribeUserProfile', - 'DescribeWorkforce', - 'DescribeWorkteam', - 'DisassociateTrialComponent', - 'GetSearchSuggestions', - 'ListAlgorithms', - 'ListApps', - 'ListAutoMLJobs', - 'ListCandidatesForAutoMLJob', - 'ListCodeRepositories', - 'ListCompilationJobs', - 'ListDomains', - 'ListExperiments', - 'ListFlowDefinitions', - 'ListHumanLoops', - 'ListHumanTaskUis', - 'ListHyperParameterTuningJobs', - 'ListLabelingJobs', - 'ListLabelingJobsForWorkteam', - 'ListModelPackages', - 'ListMonitoringExecutions', - 'ListMonitoringSchedules', - 'ListNotebookInstanceLifecycleConfigs', - 'ListProcessingJobs', - 'ListSubscribedWorkteams', - 'ListTrainingJobsForHyperParameterTuningJob', - 'ListTransformJobs', - 'ListTrialComponents', - 'ListTrials', - 'ListUserProfiles', - 'ListWorkforces', - 'ListWorkteams', - 'RenderUiTemplate', - 'Search', - 'StartHumanLoop', - 'StartMonitoringSchedule', - 'StopAutoMLJob', - 'StopCompilationJob', - 'StopHumanLoop', - 'StopHyperParameterTuningJob', - 'StopLabelingJob', - 'StopMonitoringSchedule', - 'StopProcessingJob', - 'StopTransformJob', - 'UpdateCodeRepository', - 'UpdateDomain', - 'UpdateExperiment', - 'UpdateMonitoringSchedule', - 'UpdateNotebookInstanceLifecycleConfig', - 'UpdateTrial', - 'UpdateTrialComponent', - 'UpdateUserProfile', - 'UpdateWorkforce', - 'UpdateWorkteam', - ], - 'serverlessrepo': [ - 'CreateCloudFormationTemplate', - 'GetCloudFormationTemplate', - 'ListApplicationDependencies', - 'UnshareApplication', - ], - 'servicecatalog': [ - 'AssociateBudgetWithResource', - 'AssociateServiceActionWithProvisioningArtifact', - 'AssociateTagOptionWithResource', - 'BatchAssociateServiceActionWithProvisioningArtifact', - 'BatchDisassociateServiceActionFromProvisioningArtifact', - 'CopyProduct', - 'CreateProvisionedProductPlan', - 'CreateServiceAction', - 'CreateTagOption', - 'DeleteProvisionedProductPlan', - 'DeleteServiceAction', - 'DeleteTagOption', - 'DescribeCopyProductStatus', - 'DescribePortfolioShareStatus', - 'DescribeProvisionedProduct', - 'DescribeProvisionedProductPlan', - 'DescribeServiceAction', - 'DescribeServiceActionExecutionParameters', - 'DescribeTagOption', - 'DisableAWSOrganizationsAccess', - 'DisassociateBudgetFromResource', - 'DisassociateServiceActionFromProvisioningArtifact', - 'DisassociateTagOptionFromResource', - 'EnableAWSOrganizationsAccess', - 'ExecuteProvisionedProductPlan', - 'ExecuteProvisionedProductServiceAction', - 'GetAWSOrganizationsAccessStatus', - 'ListBudgetsForResource', - 'ListOrganizationPortfolioAccess', - 'ListProvisionedProductPlans', - 'ListProvisioningArtifactsForServiceAction', - 'ListResourcesForTagOption', - 'ListServiceActions', - 'ListServiceActionsForProvisioningArtifact', - 'ListStackInstancesForProvisionedProduct', - 'ListTagOptions', - 'SearchProvisionedProducts', - 'UpdateProvisionedProductProperties', - 'UpdateServiceAction', - 'UpdateTagOption', - ], - 'servicediscovery': [ - 'CreateHttpNamespace', - 'DiscoverInstances', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - 'UpdateInstanceCustomHealthStatus', - ], - 'shield': [ - 'AssociateDRTLogBucket', - 'AssociateDRTRole', - 'DescribeDRTAccess', - 'DescribeEmergencyContactSettings', - 'DisassociateDRTLogBucket', - 'DisassociateDRTRole', - 'GetSubscriptionState', - 'UpdateEmergencyContactSettings', - 'UpdateSubscription', - ], - 'signer': [ - 'CancelSigningProfile', - 'GetSigningPlatform', - 'GetSigningProfile', - 'ListSigningPlatforms', - 'ListSigningProfiles', - 'ListTagsForResource', - 'PutSigningProfile', - 'TagResource', - 'UntagResource', - ], - 'sns': [ - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'ssm': [ - 'CancelMaintenanceWindowExecution', - 'CreateOpsItem', - 'DeleteInventory', - 'DescribeAssociationExecutions', - 'DescribeAssociationExecutionTargets', - 'DescribeInventoryDeletions', - 'DescribeMaintenanceWindowSchedule', - 'DescribeMaintenanceWindowsForTarget', - 'DescribeOpsItems', - 'DescribePatchProperties', - 'DescribeSessions', - 'GetConnectionStatus', - 'GetOpsItem', - 'GetOpsSummary', - 'GetServiceSetting', - 'LabelParameterVersion', - 'ListComplianceItems', - 'ListComplianceSummaries', - 'ListResourceComplianceSummaries', - 'ResetServiceSetting', - 'ResumeSession', - 'StartSession', - 'TerminateSession', - 'UpdateInstanceInformation', - 'UpdateOpsItem', - 'UpdateResourceDataSync', - 'UpdateServiceSetting', - ], - 'sso': [ - 'AddMemberToGroup', - 'AttachManagedPolicyToPermissionSet', - 'CreateAccountAssignment', - 'CreateAlias', - 'CreateGroup', - 'CreateManagedApplicationInstance', - 'CreateUser', - 'DeleteAccountAssignment', - 'DeleteGroup', - 'DeleteInlinePolicyFromPermissionSet', - 'DeleteManagedApplicationInstance', - 'DeleteUser', - 'DescribeAccountAssignmentCreationStatus', - 'DescribeAccountAssignmentDeletionStatus', - 'DescribeGroups', - 'DescribePermissionSet', - 'DescribePermissionSetProvisioningStatus', - 'DescribeRegisteredRegions', - 'DescribeUsers', - 'DetachManagedPolicyFromPermissionSet', - 'DisableUser', - 'EnableUser', - 'GetInlinePolicyForPermissionSet', - 'GetManagedApplicationInstance', - 'GetMfaDeviceManagementForDirectory', - 'GetPermissionsPolicy', - 'GetSharedSsoConfiguration', - 'GetSsoConfiguration', - 'GetSSOConfiguration', - 'GetUserPoolInfo', - 'ListAccountAssignmentCreationStatus', - 'ListAccountAssignmentDeletionStatus', - 'ListAccountAssignments', - 'ListAccountsForProvisionedPermissionSet', - 'ListApplications', - 'ListGroupsForUser', - 'ListInstances', - 'ListManagedPoliciesInPermissionSet', - 'ListMembersInGroup', - 'ListPermissionSetProvisioningStatus', - 'ListPermissionSetsProvisionedToAccount', - 'ListTagsForResource', - 'ProvisionPermissionSet', - 'PutInlinePolicyToPermissionSet', - 'PutMfaDeviceManagementForDirectory', - 'RemoveMemberFromGroup', - 'SearchGroups', - 'SearchUsers', - 'SetTemporaryPassword', - 'TagResource', - 'UntagResource', - 'UpdateGroup', - 'UpdateManagedApplicationInstanceStatus', - 'UpdatePermissionSet', - 'UpdateSSOConfiguration', - 'UpdateUser', - ], - 'sso_directory': [ - 'CompleteVirtualMfaDeviceRegistration', - 'CreateBearerToken', - 'CreateExternalIdPConfigurationForDirectory', - 'CreateProvisioningTenant', - 'DeleteBearerToken', - 'DeleteExternalIdPConfigurationForDirectory', - 'DeleteMfaDeviceForUser', - 'DeleteProvisioningTenant', - 'DisableExternalIdPConfigurationForDirectory', - 'EnableExternalIdPConfigurationForDirectory', - 'GetAWSSPConfigurationForDirectory', - 'ListBearerTokens', - 'ListExternalIdPConfigurationsForDirectory', - 'ListMfaDevicesForUser', - 'ListProvisioningTenants', - 'SearchGroups', - 'SearchUsers', - 'StartVirtualMfaDeviceRegistration', - 'UpdateExternalIdPConfigurationForDirectory', - ], - 'states': [ - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'storagegateway': [ - 'AttachVolume', - 'CreateSMBFileShare', - 'DescribeSMBFileShares', - 'DescribeSMBSettings', - 'DetachVolume', - 'JoinDomain', - 'NotifyWhenUploaded', - 'SetSMBGuestPassword', - 'UpdateSMBFileShare', - ], - 'sts': [ - 'GetAccessKeyInfo', - 'GetServiceBearerToken', - 'TagSession', - ], - 'support': [ - 'DescribeCaseAttributes', - 'DescribeIssueTypes', - 'DescribeSupportLevel', - 'InitiateCallForCase', - 'InitiateChatForCase', - 'PutCaseAttributes', - 'RateCaseCommunication', - 'SearchForCases', - ], - 'swf': [ - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'tag': [ - 'DescribeReportCreation', - 'GetComplianceSummary', - 'StartReportCreation', - ], - 'transcribe': [ - 'CreateLanguageModel', - 'CreateMedicalVocabulary', - 'CreateVocabulary', - 'CreateVocabularyFilter', - 'DeleteLanguageModel', - 'DeleteMedicalTranscriptionJob', - 'DeleteMedicalVocabulary', - 'DeleteTranscriptionJob', - 'DeleteVocabulary', - 'DeleteVocabularyFilter', - 'DescribeLanguageModel', - 'GetMedicalTranscriptionJob', - 'GetMedicalVocabulary', - 'GetVocabulary', - 'GetVocabularyFilter', - 'ListLanguageModels', - 'ListMedicalTranscriptionJobs', - 'ListMedicalVocabularies', - 'ListVocabularies', - 'ListVocabularyFilters', - 'StartMedicalStreamTranscription', - 'StartMedicalStreamTranscriptionWebSocket', - 'StartMedicalTranscriptionJob', - 'StartStreamTranscription', - 'StartStreamTranscriptionWebSocket', - 'UpdateMedicalVocabulary', - 'UpdateVocabulary', - 'UpdateVocabularyFilter', - ], - 'translate': [ - 'DeleteTerminology', - 'DescribeTextTranslationJob', - 'GetTerminology', - 'ImportTerminology', - 'ListTerminologies', - 'ListTextTranslationJobs', - 'StartTextTranslationJob', - 'StopTextTranslationJob', - ], - 'trustedadvisor': [ - 'DescribeAccount', - 'DescribeAccountAccess', - 'DescribeChecks', - 'DescribeOrganization', - 'DescribeOrganizationAccounts', - 'DescribeReports', - 'DescribeServiceMetadata', - 'GenerateReport', - 'SetAccountAccess', - 'SetOrganizationAccess', - ], - 'waf': [ - 'CreateRuleGroup', - 'CreateWebACLMigrationStack', - 'DeleteLoggingConfiguration', - 'DeletePermissionPolicy', - 'DeleteRuleGroup', - 'GetLoggingConfiguration', - 'GetPermissionPolicy', - 'GetRuleGroup', - 'ListActivatedRulesInRuleGroup', - 'ListLoggingConfigurations', - 'ListRuleGroups', - 'ListSubscribedRuleGroups', - 'ListTagsForResource', - 'PutLoggingConfiguration', - 'PutPermissionPolicy', - 'TagResource', - 'UntagResource', - 'UpdateRuleGroup', - ], - 'waf_regional': [ - 'CreateRuleGroup', - 'CreateWebACLMigrationStack', - 'DeleteLoggingConfiguration', - 'DeletePermissionPolicy', - 'DeleteRuleGroup', - 'GetLoggingConfiguration', - 'GetPermissionPolicy', - 'GetRuleGroup', - 'ListActivatedRulesInRuleGroup', - 'ListLoggingConfigurations', - 'ListRuleGroups', - 'ListSubscribedRuleGroups', - 'ListTagsForResource', - 'PutLoggingConfiguration', - 'PutPermissionPolicy', - 'TagResource', - 'UntagResource', - 'UpdateRuleGroup', - ], - 'workdocs': [ - 'CreateComment', - 'CreateCustomMetadata', - 'CreateLabels', - 'DeleteComment', - 'DeleteCustomMetadata', - 'DeleteLabels', - 'DescribeActivities', - 'DescribeComments', - 'DescribeGroups', - 'DescribeRootFolders', - 'DownloadDocumentVersion', - 'GetCurrentUser', - 'GetResources', - ], - 'workmail': [ - 'AssociateDelegateToResource', - 'AssociateMemberToGroup', - 'CreateAlias', - 'CreateInboundMailFlowRule', - 'CreateOutboundMailFlowRule', - 'CreateSmtpGateway', - 'CreateUser', - 'DeleteAccessControlRule', - 'DeleteAlias', - 'DeleteGroup', - 'DeleteInboundMailFlowRule', - 'DeleteMailboxPermissions', - 'DeleteOutboundMailFlowRule', - 'DeleteResource', - 'DeleteRetentionPolicy', - 'DeleteSmtpGateway', - 'DeleteUser', - 'DeregisterFromWorkMail', - 'DescribeGroup', - 'DescribeInboundMailFlowRule', - 'DescribeOrganization', - 'DescribeOutboundMailFlowRule', - 'DescribeResource', - 'DescribeSmtpGateway', - 'DescribeUser', - 'DisassociateDelegateFromResource', - 'DisassociateMemberFromGroup', - 'GetAccessControlEffect', - 'GetDefaultRetentionPolicy', - 'GetJournalingRules', - 'GetMailboxDetails', - 'ListAccessControlRules', - 'ListAliases', - 'ListGroupMembers', - 'ListGroups', - 'ListInboundMailFlowRules', - 'ListMailboxPermissions', - 'ListOrganizations', - 'ListOutboundMailFlowRules', - 'ListResourceDelegates', - 'ListResources', - 'ListSmtpGateways', - 'ListTagsForResource', - 'ListUsers', - 'PutAccessControlRule', - 'PutMailboxPermissions', - 'PutRetentionPolicy', - 'RegisterToWorkMail', - 'ResetPassword', - 'SetJournalingRules', - 'TagResource', - 'TestInboundMailFlowRules', - 'TestOutboundMailFlowRules', - 'UntagResource', - 'UpdateInboundMailFlowRule', - 'UpdateMailboxQuota', - 'UpdateOutboundMailFlowRule', - 'UpdatePrimaryEmailAddress', - 'UpdateResource', - 'UpdateSmtpGateway', - ], - 'workspaces': [ - 'AssociateIpGroups', - 'AuthorizeIpRules', - 'CreateIpGroup', - 'DeleteIpGroup', - 'DeleteWorkspaceImage', - 'DescribeAccount', - 'DescribeAccountModifications', - 'DescribeClientProperties', - 'DescribeIpGroups', - 'DescribeWorkspaceImages', - 'DisassociateIpGroups', - 'ImportWorkspaceImage', - 'ListAvailableManagementCidrRanges', - 'ModifyAccount', - 'ModifyClientProperties', - 'ModifyWorkspaceState', - 'RevokeIpRules', - 'UpdateRulesOfIpGroup', - ], - 'xray': [ - 'CreateGroup', - 'CreateSamplingRule', - 'DeleteGroup', - 'DeleteSamplingRule', - 'GetEncryptionConfig', - 'GetGroup', - 'GetGroups', - 'GetInsight', - 'GetInsightEvents', - 'GetInsightImpactGraph', - 'GetInsightSummaries', - 'GetSamplingRules', - 'GetSamplingStatisticSummaries', - 'GetSamplingTargets', - 'GetTimeSeriesServiceStatistics', - 'ListTagsForResource', - 'PutEncryptionConfig', - 'TagResource', - 'UntagResource', - 'UpdateGroup', - 'UpdateSamplingRule', - ] -} - - -# Some actions appear to be deleted but still in the docs. This grouping -# will keep them available as it gets sorted out. -# Actions should be added alphabetically under their appropriate awacs prefix. -# Note: If the prefix contains a '-' (dash) character, replace it with -# an '_' (underscore). -deleted_actions = { - 'cloudsearch': [ - 'DefineIndexFields', - ], - 'cognito_idp': [ - 'ListUserPools', 'ListUsers', - ], - 'dax': [ - 'DefineAttributeList', 'DefineAttributeListId', 'DefineKeySchema', - ], - 'ec2': [ - 'ModifySpotFleetRequest', - ], - 'elasticbeanstalk': [ - 'AddTags', 'ListTagsForResource', 'RemoveTags', - ], - 'glue': [ - 'GetDataCatalogEncryptionSettings', 'PutDataCatalogEncryptionSettings', - 'CreateSecurityConfiguration', 'GetSecurityConfiguration', - 'GetSecurityConfigurations', 'DeleteSecurityConfiguration', - ], - 'kinesis': [ - 'StartStreamEncryption', 'StopStreamEncryption', - ], - 'kinesisanalytics': [ - 'GetApplicationState', - 'ListTagsForResource', - 'TagResource', - 'UntagResource', - ], - 'kms': [ - 'ConnectCustomKeyStore', - 'CreateCustomKeyStore', - 'DeleteCustomKeyStore', - 'DescribeCustomKeyStores', - 'DisconnectCustomKeyStore', - 'ReEncrypt', - 'UpdateCustomKeyStore', - ], - 'lex': [ - 'DeleteSession', - 'GetExport', - 'GetImport', - 'GetSession', - 'ListTagsForResource', - 'PutSession', - 'StartImport', - 'TagResource', - 'UntagResource', - ], - 'mechanicalturk': [ - 'AcceptQualificationRequest', 'AssociateQualificationWithWorker', - 'CreateHITType', 'CreateHITWithHITType', 'CreateWorkerBlock', - 'DeleteHIT', 'DeleteQualificationType', 'DeleteWorkerBlock', - 'DisassociateQualificationFromWorker', 'ListAssignmentsForHIT', - 'ListBonusPayments', 'ListHITs', 'ListHITsForQualificationType', - 'ListQualificationRequests', 'ListQualificationTypes', - 'ListReviewPolicyResultsForHIT', 'ListReviewableHITs', - 'ListWorkerBlocks', 'ListWorkersWithQualificationType', - 'SendBonus', 'UpdateExpirationForHIT', 'UpdateHITReviewStatus', - 'UpdateHITTypeOfHIT', 'UpdateNotificationSettings', - ], - 'mobilehub': [ - 'ValidateProject', - ], - 'mobiletargeting': [ - 'DeleteAdmChannel', 'DeleteAdmChannel', 'DeleteApnsSandboxChannel', - 'GetAdmChannel', 'GetApnsSandboxChannel', 'UpdateAdmChannel', - 'UpdateApnsSandboxChannel', - ], - 'route53': [ - 'CreateVPCAssociationAuthorization', - 'DeleteVPCAssociationAuthorization', - 'ListVPCAssociationAuthorizations', - ], - 'route53domain': [ - 'DeleteDomain', - ], - 'tag': [ - 'AddResourceTags', 'RemoveResourceTags', - ], -} - -# patch in the extra_services if they are not present in policies.js -for service_name in extra_services: - if not d['serviceMap'].get(service_name): - d['serviceMap'][service_name] = extra_services[service_name] - - -filename_seen = {} -for serviceName, serviceValue in d['serviceMap'].items(): - prefix = serviceValue['StringPrefix'] - service = prefix - # Handle prefix such as "directconnect:" - if prefix[-1] == ':': - service = prefix[:-1] - if service == 'lambda': - service = 'awslambda' - service = service.replace("-", "_") - filename = ''.join([basedir, "/", service, ".py"]) - with open(filename, "a") as fp: - if filename not in filename_seen: - filename_seen[filename] = True - if prefix in legacy_arns: - fp.write("import warnings\n") - fp.write(header) - fp.write("\n") - fp.write("service_name = '%s'\n" % (serviceName,)) - fp.write("prefix = '%s'\n" % (prefix,)) - fp.write("\n\n") - if service == "s3": - fp.write(extra_classes_s3) - else: - fp.write(extra_classes) - fp.write("\n\n") - if prefix in legacy_arns: - fp.write(arn % { - 'lower': prefix, - 'upper': prefix.upper(), - }) - fp.write("\n\n") - - # Make sure there are no actions in both the extra_actions - # and deleted_actions. - if service in extra_actions and service in deleted_actions: - intersection = set(extra_actions[service]) & \ - set(deleted_actions[service]) - if intersection: - raise RuntimeError('Actions found that appear in both ' - '`extra_actions` and `deleted_actions` ' - 'for the aws service `{}`: {}'.format( - service, intersection)) - - # Add actions AWS hasn't added yet - if service in extra_actions: - serviceValue['Actions'].extend(extra_actions[service]) - - # Add actions AWS may have inadvertantly deleted - if service in deleted_actions: - serviceValue['Actions'].extend(deleted_actions[service]) - - # Make the set sorted and unique - serviceValue['Actions'] = sorted(set(serviceValue['Actions'])) - - for action in serviceValue['Actions']: - action = action.strip() - # Handle action such as "ReEncrypt*" - if action[-1] == '*': - action = action[:-1] - # Wrap lines for pep8 - if len(action) > 30: - format = "%s = \\\n Action('%s')\n" - else: - format = "%s = Action('%s')\n" - fp.write(format % (action, action)) diff --git a/tools/requirements.txt b/tools/requirements.txt deleted file mode 100644 index bfecb4da..00000000 --- a/tools/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -git+https://github.com/rspivak/slimit.git#egg=slimit \ No newline at end of file