Repository: salesforce/policy_sentry
Pull request #347 (2021-03-23 16:07:46)

Adds per-Service Authorization URL to IAM Definition and associated query method
## What does this PR do?

* Adds per-Service Authorization URL to IAM Definition and associated query method

## Completion checklist

- [x] Additions and changes have unit tests
- [x] [Unit tests, Pylint, security testing, and Integration tests are passing.](https://github.com/salesforce/policy_sentry/actions). GitHub actions does this automatically
- [x] The pull request has been appropriately labeled using the provided PR labels



Patch:
diff --git a/policy_sentry/bin/version.py b/policy_sentry/bin/version.py
index 6697063d..193e051c 100644
--- a/policy_sentry/bin/version.py
+++ b/policy_sentry/bin/version.py
@@ -1,2 +1,2 @@
 # pylint: disable=missing-module-docstring
-__version__ = "0.11.6"
+__version__ = "0.11.7"
diff --git a/policy_sentry/querying/all.py b/policy_sentry/querying/all.py
index 3afe78c2..69ebf157 100644
--- a/policy_sentry/querying/all.py
+++ b/policy_sentry/querying/all.py
@@ -50,3 +50,11 @@ def get_all_actions(lowercase=False):
     # results = list(set(results))
     # results.sort()
     return all_actions
+
+
+def get_service_authorization_url(service_prefix: str) -> str:
+    """
+    Gets the URL to the Actions, Resources, and Condition Keys page for a particular service.
+    """
+    result = iam_definition.get(service_prefix).get("service_authorization_url")
+    return result
diff --git a/policy_sentry/shared/awsdocs.py b/policy_sentry/shared/awsdocs.py
index fede2c3c..68f193a9 100644
--- a/policy_sentry/shared/awsdocs.py
+++ b/policy_sentry/shared/awsdocs.py
@@ -198,9 +198,13 @@ def create_database(destination_directory, access_level_overrides_file):
                     prefix = prefix.split('<code class="code">')[1]
                     prefix = chomp(prefix.split("</code>")[0])
                     break
+            # The URL to that service's Actions, Resources, and Condition Keys page
+            service_authorization_url_prefix = "https://docs.aws.amazon.com/service-authorization/latest/reference"
+            service_authorization_url = f"{service_authorization_url_prefix}/{filename}"
             service_schema = {
                 "service_name": service_name,
                 "prefix": prefix,
+                "service_authorization_url": service_authorization_url,
                 "privileges": {},
                 "resources": {},
                 "conditions": {},
diff --git a/policy_sentry/shared/data/iam-definition.json b/policy_sentry/shared/data/iam-definition.json
index 1366b163..f9c6438d 100644
--- a/policy_sentry/shared/data/iam-definition.json
+++ b/policy_sentry/shared/data/iam-definition.json
@@ -2,6 +2,7 @@
     "a4b": {
         "service_name": "Alexa for Business",
         "prefix": "a4b",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_alexaforbusiness.html",
         "privileges": {
             "ApproveSkill": {
                 "privilege": "ApproveSkill",
@@ -1279,6 +1280,7 @@
     "execute-api": {
         "service_name": "Amazon API Gateway",
         "prefix": "execute-api",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigateway.html",
         "privileges": {
             "InvalidateCache": {
                 "privilege": "InvalidateCache",
@@ -1335,6 +1337,7 @@
     "appflow": {
         "service_name": "Amazon AppFlow",
         "prefix": "appflow",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappflow.html",
         "privileges": {
             "CreateConnectorProfile": {
                 "privilege": "CreateConnectorProfile",
@@ -1723,6 +1726,7 @@
     "app-integrations": {
         "service_name": "Amazon AppIntegrations",
         "prefix": "app-integrations",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappintegrations.html",
         "privileges": {
             "CreateEventIntegration": {
                 "privilege": "CreateEventIntegration",
@@ -2001,6 +2005,7 @@
     "appstream": {
         "service_name": "Amazon AppStream 2.0",
         "prefix": "appstream",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappstream2.0.html",
         "privileges": {
             "AssociateFleet": {
                 "privilege": "AssociateFleet",
@@ -3014,6 +3019,7 @@
     "athena": {
         "service_name": "Amazon Athena",
         "prefix": "athena",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html",
         "privileges": {
             "BatchGetNamedQuery": {
                 "privilege": "BatchGetNamedQuery",
@@ -3526,6 +3532,7 @@
     "braket": {
         "service_name": "Amazon Braket",
         "prefix": "braket",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbraket.html",
         "privileges": {
             "CancelQuantumTask": {
                 "privilege": "CancelQuantumTask",
@@ -3710,6 +3717,7 @@
     "chime": {
         "service_name": "Amazon Chime",
         "prefix": "chime",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonchime.html",
         "privileges": {
             "AcceptDelegate": {
                 "privilege": "AcceptDelegate",
@@ -7253,6 +7261,7 @@
     "clouddirectory": {
         "service_name": "Amazon Cloud Directory",
         "prefix": "clouddirectory",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonclouddirectory.html",
         "privileges": {
             "AddFacetToObject": {
                 "privilege": "AddFacetToObject",
@@ -8264,6 +8273,7 @@
     "cloudfront": {
         "service_name": "Amazon CloudFront",
         "prefix": "cloudfront",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html",
         "privileges": {
             "CreateCachePolicy": {
                 "privilege": "CreateCachePolicy",
@@ -9207,6 +9217,7 @@
     "cloudsearch": {
         "service_name": "Amazon CloudSearch",
         "prefix": "cloudsearch",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudsearch.html",
         "privileges": {
             "AddTags": {
                 "privilege": "AddTags",
@@ -9669,6 +9680,7 @@
     "cloudwatch": {
         "service_name": "Amazon CloudWatch",
         "prefix": "cloudwatch",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatch.html",
         "privileges": {
             "DeleteAlarms": {
                 "privilege": "DeleteAlarms",
@@ -10202,6 +10214,7 @@
     "logs": {
         "service_name": "Amazon CloudWatch Logs",
         "prefix": "logs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html",
         "privileges": {
             "AssociateKmsKey": {
                 "privilege": "AssociateKmsKey",
@@ -10841,6 +10854,7 @@
     "synthetics": {
         "service_name": "Amazon CloudWatch Synthetics",
         "prefix": "synthetics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchsynthetics.html",
         "privileges": {
             "CreateCanary": {
                 "privilege": "CreateCanary",
@@ -11009,6 +11023,7 @@
     "codeguru": {
         "service_name": "Amazon CodeGuru",
         "prefix": "codeguru",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodeguru.html",
         "privileges": {
             "GetCodeGuruFreeTrialSummary": {
                 "privilege": "GetCodeGuruFreeTrialSummary",
@@ -11031,6 +11046,7 @@
     "codeguru-profiler": {
         "service_name": "Amazon CodeGuru Profiler",
         "prefix": "codeguru-profiler",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodeguruprofiler.html",
         "privileges": {
             "AddNotificationChannels": {
                 "privilege": "AddNotificationChannels",
@@ -11406,6 +11422,7 @@
     "codeguru-reviewer": {
         "service_name": "Amazon CodeGuru Reviewer",
         "prefix": "codeguru-reviewer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodegurureviewer.html",
         "privileges": {
             "AssociateRepository": {
                 "privilege": "AssociateRepository",
@@ -11630,6 +11647,7 @@
     "cognito-identity": {
         "service_name": "Amazon Cognito Identity",
         "prefix": "cognito-identity",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html",
         "privileges": {
             "CreateIdentityPool": {
                 "privilege": "CreateIdentityPool",
@@ -11987,6 +12005,7 @@
     "cognito-sync": {
         "service_name": "Amazon Cognito Sync",
         "prefix": "cognito-sync",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitosync.html",
         "privileges": {
             "BulkPublish": {
                 "privilege": "BulkPublish",
@@ -12277,6 +12296,7 @@
     "cognito-idp": {
         "service_name": "Amazon Cognito User Pools",
         "prefix": "cognito-idp",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitouserpools.html",
         "privileges": {
             "AddCustomAttributes": {
                 "privilege": "AddCustomAttributes",
@@ -13739,6 +13759,7 @@
     "comprehend": {
         "service_name": "Amazon Comprehend",
         "prefix": "comprehend",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehend.html",
         "privileges": {
             "BatchDetectDominantLanguage": {
                 "privilege": "BatchDetectDominantLanguage",
@@ -14815,6 +14836,7 @@
     "comprehendmedical": {
         "service_name": "Comprehend Medical",
         "prefix": "comprehendmedical",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_comprehendmedical.html",
         "privileges": {
             "DetectEntities": {
                 "privilege": "DetectEntities",
@@ -14851,6 +14873,7 @@
     "connect": {
         "service_name": "Amazon Connect",
         "prefix": "connect",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html",
         "privileges": {
             "AssociateApprovedOrigin": {
                 "privilege": "AssociateApprovedOrigin",
@@ -16929,6 +16952,7 @@
     "profile": {
         "service_name": "Amazon Connect Customer Profiles",
         "prefix": "profile",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectcustomerprofiles.html",
         "privileges": {
             "AddProfileKey": {
                 "privilege": "AddProfileKey",
@@ -17448,6 +17472,7 @@
     "dlm": {
         "service_name": "Amazon Data Lifecycle Manager",
         "prefix": "dlm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondatalifecyclemanager.html",
         "privileges": {
             "CreateLifecyclePolicy": {
                 "privilege": "CreateLifecyclePolicy",
@@ -17595,6 +17620,7 @@
     "detective": {
         "service_name": "Amazon Detective",
         "prefix": "detective",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondetective.html",
         "privileges": {
             "AcceptInvitation": {
                 "privilege": "AcceptInvitation",
@@ -17847,6 +17873,7 @@
     "devops-guru": {
         "service_name": "Amazon DevOps Guru",
         "prefix": "devops-guru",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondevopsguru.html",
         "privileges": {
             "AddNotificationChannel": {
                 "privilege": "AddNotificationChannel",
@@ -18119,6 +18146,7 @@
     "dynamodb": {
         "service_name": "Amazon DynamoDB",
         "prefix": "dynamodb",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html",
         "privileges": {
             "BatchGetItem": {
                 "privilege": "BatchGetItem",
@@ -19207,6 +19235,7 @@
     "dax": {
         "service_name": "Amazon DynamoDB Accelerator (DAX)",
         "prefix": "dax",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodbacceleratordax.html",
         "privileges": {
             "BatchGetItem": {
                 "privilege": "BatchGetItem",
@@ -19690,6 +19719,7 @@
     "ec2": {
         "service_name": "Amazon EC2",
         "prefix": "ec2",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html",
         "privileges": {
             "AcceptReservedInstancesExchangeQuote": {
                 "privilege": "AcceptReservedInstancesExchangeQuote",
@@ -32717,6 +32747,7 @@
     "autoscaling": {
         "service_name": "Amazon EC2 Auto Scaling",
         "prefix": "autoscaling",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2autoscaling.html",
         "privileges": {
             "AttachInstances": {
                 "privilege": "AttachInstances",
@@ -33838,6 +33869,7 @@
     "imagebuilder": {
         "service_name": "Amazon EC2 Image Builder",
         "prefix": "imagebuilder",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html",
         "privileges": {
             "CancelImageCreation": {
                 "privilege": "CancelImageCreation",
@@ -34854,6 +34886,7 @@
     "ec2-instance-connect": {
         "service_name": "Amazon EC2 Instance Connect",
         "prefix": "ec2-instance-connect",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2instanceconnect.html",
         "privileges": {
             "SendSSHPublicKey": {
                 "privilege": "SendSSHPublicKey",
@@ -34909,6 +34942,7 @@
     "elasticache": {
         "service_name": "Amazon ElastiCache",
         "prefix": "elasticache",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html",
         "privileges": {
             "AddTagsToResource": {
                 "privilege": "AddTagsToResource",
@@ -36161,6 +36195,7 @@
     "ebs": {
         "service_name": "Amazon Elastic Block Store",
         "prefix": "ebs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html",
         "privileges": {
             "CompleteSnapshot": {
                 "privilege": "CompleteSnapshot",
@@ -36306,6 +36341,7 @@
     "ecr": {
         "service_name": "Amazon Elastic Container Registry",
         "prefix": "ecr",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html",
         "privileges": {
             "BatchCheckLayerAvailability": {
                 "privilege": "BatchCheckLayerAvailability",
@@ -36852,6 +36888,7 @@
     "ecr-public": {
         "service_name": "Amazon Elastic Container Registry Public",
         "prefix": "ecr-public",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistrypublic.html",
         "privileges": {
             "BatchCheckLayerAvailability": {
                 "privilege": "BatchCheckLayerAvailability",
@@ -37151,6 +37188,7 @@
     "ecs": {
         "service_name": "Amazon Elastic Container Service",
         "prefix": "ecs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html",
         "privileges": {
             "CreateCapacityProvider": {
                 "privilege": "CreateCapacityProvider",
@@ -38267,6 +38305,7 @@
     "eks": {
         "service_name": "Amazon Elastic Container Service for Kubernetes",
         "prefix": "eks",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerserviceforkubernetes.html",
         "privileges": {
             "AccessKubernetesApi": {
                 "privilege": "AccessKubernetesApi",
@@ -38837,6 +38876,7 @@
     "elasticfilesystem": {
         "service_name": "Amazon Elastic File System",
         "prefix": "elasticfilesystem",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticfilesystem.html",
         "privileges": {
             "Backup": {
                 "privilege": "Backup",
@@ -39389,6 +39429,7 @@
     "elastic-inference": {
         "service_name": "Amazon Elastic Inference",
         "prefix": "elastic-inference",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticinference.html",
         "privileges": {
             "Connect": {
                 "privilege": "Connect",
@@ -39417,6 +39458,7 @@
     "elasticmapreduce": {
         "service_name": "Amazon Elastic MapReduce",
         "prefix": "elasticmapreduce",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticmapreduce.html",
         "privileges": {
             "AddInstanceFleet": {
                 "privilege": "AddInstanceFleet",
@@ -40084,6 +40126,7 @@
     "es": {
         "service_name": "Amazon Elasticsearch Service",
         "prefix": "es",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticsearchservice.html",
         "privileges": {
             "AcceptInboundCrossClusterSearchConnection": {
                 "privilege": "AcceptInboundCrossClusterSearchConnection",
@@ -40616,6 +40659,7 @@
     "elastictranscoder": {
         "service_name": "Amazon Elastic Transcoder",
         "prefix": "elastictranscoder",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastictranscoder.html",
         "privileges": {
             "CancelJob": {
                 "privilege": "CancelJob",
@@ -40884,6 +40928,7 @@
     "emr-containers": {
         "service_name": "Amazon EMR on EKS (EMR Containers)",
         "prefix": "emr-containers",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonemroneksemrcontainers.html",
         "privileges": {
             "CancelJobRun": {
                 "privilege": "CancelJobRun",
@@ -41143,6 +41188,7 @@
     "events": {
         "service_name": "Amazon EventBridge",
         "prefix": "events",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridge.html",
         "privileges": {
             "ActivateEventSource": {
                 "privilege": "ActivateEventSource",
@@ -41950,6 +41996,7 @@
     "schemas": {
         "service_name": "Amazon EventBridge Schemas",
         "prefix": "schemas",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgeschemas.html",
         "privileges": {
             "CreateDiscoverer": {
                 "privilege": "CreateDiscoverer",
@@ -42489,6 +42536,7 @@
     "forecast": {
         "service_name": "Amazon Forecast",
         "prefix": "forecast",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonforecast.html",
         "privileges": {
             "CreateDataset": {
                 "privilege": "CreateDataset",
@@ -43238,6 +43286,7 @@
     "frauddetector": {
         "service_name": "Amazon Fraud Detector",
         "prefix": "frauddetector",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfrauddetector.html",
         "privileges": {
             "BatchCreateVariable": {
                 "privilege": "BatchCreateVariable",
@@ -44394,6 +44443,7 @@
     "freertos": {
         "service_name": "Amazon FreeRTOS",
         "prefix": "freertos",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfreertos.html",
         "privileges": {
             "CreateSoftwareConfiguration": {
                 "privilege": "CreateSoftwareConfiguration",
@@ -44589,6 +44639,7 @@
     "fsx": {
         "service_name": "Amazon FSx",
         "prefix": "fsx",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx.html",
         "privileges": {
             "CancelDataRepositoryTask": {
                 "privilege": "CancelDataRepositoryTask",
@@ -44938,6 +44989,7 @@
     "gamelift": {
         "service_name": "Amazon GameLift",
         "prefix": "gamelift",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongamelift.html",
         "privileges": {
             "AcceptMatch": {
                 "privilege": "AcceptMatch",
@@ -46446,6 +46498,7 @@
     "glacier": {
         "service_name": "Amazon Glacier",
         "prefix": "glacier",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonglacier.html",
         "privileges": {
             "AbortMultipartUpload": {
                 "privilege": "AbortMultipartUpload",
@@ -46949,6 +47002,7 @@
     "groundtruthlabeling": {
         "service_name": "Amazon GroundTruth Labeling",
         "prefix": "groundtruthlabeling",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongroundtruthlabeling.html",
         "privileges": {
             "DescribeConsoleJob": {
                 "privilege": "DescribeConsoleJob",
@@ -47013,6 +47067,7 @@
     "guardduty": {
         "service_name": "Amazon GuardDuty",
         "prefix": "guardduty",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html",
         "privileges": {
             "AcceptInvitation": {
                 "privilege": "AcceptInvitation",
@@ -48020,6 +48075,7 @@
     "honeycode": {
         "service_name": "Amazon Honeycode",
         "prefix": "honeycode",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonhoneycode.html",
         "privileges": {
             "ApproveTeamAssociation": {
                 "privilege": "ApproveTeamAssociation",
@@ -48287,6 +48343,7 @@
     "inspector": {
         "service_name": "Amazon Inspector",
         "prefix": "inspector",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninspector.html",
         "privileges": {
             "AddAttributesToFindings": {
                 "privilege": "AddAttributesToFindings",
@@ -48743,6 +48800,7 @@
     "ivs": {
         "service_name": "Amazon Interactive Video Service",
         "prefix": "ivs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninteractivevideoservice.html",
         "privileges": {
             "BatchGetChannel": {
                 "privilege": "BatchGetChannel",
@@ -49204,6 +49262,7 @@
     "kendra": {
         "service_name": "Amazon Kendra",
         "prefix": "kendra",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html",
         "privileges": {
             "BatchDeleteDocument": {
                 "privilege": "BatchDeleteDocument",
@@ -49830,6 +49889,7 @@
     "cassandra": {
         "service_name": "AWS Managed Apache Cassandra Service",
         "prefix": "cassandra",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmanagedapachecassandraservice.html",
         "privileges": {
             "Alter": {
                 "privilege": "Alter",
@@ -50033,6 +50093,7 @@
     "kinesis": {
         "service_name": "Amazon Kinesis",
         "prefix": "kinesis",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesis.html",
         "privileges": {
             "AddTagsToStream": {
                 "privilege": "AddTagsToStream",
@@ -50485,6 +50546,7 @@
     "kinesisanalytics": {
         "service_name": "Amazon Kinesis Analytics V2",
         "prefix": "kinesisanalytics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html",
         "privileges": {
             "AddApplicationCloudWatchLoggingOption": {
                 "privilege": "AddApplicationCloudWatchLoggingOption",
@@ -50915,6 +50977,7 @@
     "firehose": {
         "service_name": "Amazon Kinesis Firehose",
         "prefix": "firehose",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html",
         "privileges": {
             "CreateDeliveryStream": {
                 "privilege": "CreateDeliveryStream",
@@ -51141,6 +51204,7 @@
     "kinesisvideo": {
         "service_name": "Amazon Kinesis Video Streams",
         "prefix": "kinesisvideo",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisvideostreams.html",
         "privileges": {
             "ConnectAsMaster": {
                 "privilege": "ConnectAsMaster",
@@ -51670,6 +51734,7 @@
     "lex": {
         "service_name": "Amazon Lex V2",
         "prefix": "lex",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html",
         "privileges": {
             "BuildBotLocale": {
                 "privilege": "BuildBotLocale",
@@ -52463,6 +52528,7 @@
     "lightsail": {
         "service_name": "Amazon Lightsail",
         "prefix": "lightsail",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlightsail.html",
         "privileges": {
             "AllocateStaticIp": {
                 "privilege": "AllocateStaticIp",
@@ -54292,6 +54358,7 @@
     "geo": {
         "service_name": "Amazon Location",
         "prefix": "geo",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html",
         "privileges": {
             "AssociateTrackerConsumer": {
                 "privilege": "AssociateTrackerConsumer",
@@ -54853,6 +54920,7 @@
     "lookoutequipment": {
         "service_name": "Amazon Lookout for Equipment",
         "prefix": "lookoutequipment",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforequipment.html",
         "privileges": {
             "CreateDataset": {
                 "privilege": "CreateDataset",
@@ -55299,6 +55367,7 @@
     "lookoutmetrics": {
         "service_name": "Amazon Lookout for Metrics",
         "prefix": "lookoutmetrics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutformetrics.html",
         "privileges": {
             "ActivateAnomalyDetector": {
                 "privilege": "ActivateAnomalyDetector",
@@ -55657,6 +55726,7 @@
     "lookoutvision": {
         "service_name": "Amazon Lookout for Vision",
         "prefix": "lookoutvision",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforvision.html",
         "privileges": {
             "CreateDataset": {
                 "privilege": "CreateDataset",
@@ -56028,6 +56098,7 @@
     "machinelearning": {
         "service_name": "Amazon Machine Learning",
         "prefix": "machinelearning",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmachinelearning.html",
         "privileges": {
             "AddTags": {
                 "privilege": "AddTags",
@@ -56533,6 +56604,7 @@
     "macie2": {
         "service_name": "Amazon Macie",
         "prefix": "macie2",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmacie.html",
         "privileges": {
             "AcceptInvitation": {
                 "privilege": "AcceptInvitation",
@@ -57359,6 +57431,7 @@
     "macie": {
         "service_name": "Amazon Macie Classic",
         "prefix": "macie",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmacieclassic.html",
         "privileges": {
             "AssociateMemberAccount": {
                 "privilege": "AssociateMemberAccount",
@@ -57477,6 +57550,7 @@
     "managedblockchain": {
         "service_name": "Amazon Managed Blockchain",
         "prefix": "managedblockchain",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedblockchain.html",
         "privileges": {
             "CreateMember": {
                 "privilege": "CreateMember",
@@ -58000,6 +58074,7 @@
     "grafana": {
         "service_name": "Amazon Managed Service for Grafana",
         "prefix": "grafana",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedserviceforgrafana.html",
         "privileges": {
             "CreateWorkspace": {
                 "privilege": "CreateWorkspace",
@@ -58112,6 +58187,7 @@
     "aps": {
         "service_name": "Amazon Managed Service for Prometheus",
         "prefix": "aps",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedserviceforprometheus.html",
         "privileges": {
             "CreateWorkspace": {
                 "privilege": "CreateWorkspace",
@@ -58266,6 +58342,7 @@
     "kafka": {
         "service_name": "Amazon Managed Streaming for Kafka",
         "prefix": "kafka",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedstreamingforkafka.html",
         "privileges": {
             "CreateCluster": {
                 "privilege": "CreateCluster",
@@ -58621,6 +58698,7 @@
     "airflow": {
         "service_name": "Amazon Managed Workflows for Apache Airflow",
         "prefix": "airflow",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedworkflowsforapacheairflow.html",
         "privileges": {
             "CreateCliToken": {
                 "privilege": "CreateCliToken",
@@ -58871,6 +58949,7 @@
     "mechanicalturk": {
         "service_name": "Amazon Mechanical Turk",
         "prefix": "mechanicalturk",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmechanicalturk.html",
         "privileges": {
             "AcceptQualificationRequest": {
                 "privilege": "AcceptQualificationRequest",
@@ -59425,6 +59504,7 @@
     "ec2messages": {
         "service_name": "Amazon Message Delivery Service",
         "prefix": "ec2messages",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmessagedeliveryservice.html",
         "privileges": {
             "AcknowledgeMessage": {
                 "privilege": "AcknowledgeMessage",
@@ -59517,6 +59597,7 @@
     "mobileanalytics": {
         "service_name": "Amazon Mobile Analytics",
         "prefix": "mobileanalytics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmobileanalytics.html",
         "privileges": {
             "GetFinancialReports": {
                 "privilege": "GetFinancialReports",
@@ -59567,6 +59648,7 @@
     "monitron": {
         "service_name": "Amazon Monitron",
         "prefix": "monitron",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmonitron.html",
         "privileges": {
             "AssociateProjectAdminUser": {
                 "privilege": "AssociateProjectAdminUser",
@@ -59832,6 +59914,7 @@
     "mq": {
         "service_name": "Amazon MQ",
         "prefix": "mq",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmq.html",
         "privileges": {
             "CreateBroker": {
                 "privilege": "CreateBroker",
@@ -60240,6 +60323,7 @@
     "neptune-db": {
         "service_name": "Amazon Neptune",
         "prefix": "neptune-db",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html",
         "privileges": {
             "connect": {
                 "privilege": "connect",
@@ -60268,6 +60352,7 @@
     "personalize": {
         "service_name": "Amazon Personalize",
         "prefix": "personalize",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpersonalize.html",
         "privileges": {
             "CreateBatchInferenceJob": {
                 "privilege": "CreateBatchInferenceJob",
@@ -61009,6 +61094,7 @@
     "mobiletargeting": {
         "service_name": "Amazon Pinpoint",
         "prefix": "mobiletargeting",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpoint.html",
         "privileges": {
             "CreateApp": {
                 "privilege": "CreateApp",
@@ -62850,6 +62936,7 @@
     "ses": {
         "service_name": "Amazon SES",
         "prefix": "ses",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html",
         "privileges": {
             "CloneReceiptRuleSet": {
                 "privilege": "CloneReceiptRuleSet",
@@ -63957,6 +64044,7 @@
     "sms-voice": {
         "service_name": "Amazon Pinpoint SMS and Voice Service",
         "prefix": "sms-voice",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html",
         "privileges": {
             "CreateConfigurationSet": {
                 "privilege": "CreateConfigurationSet",
@@ -64081,6 +64169,7 @@
     "polly": {
         "service_name": "Amazon Polly",
         "prefix": "polly",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html",
         "privileges": {
             "DeleteLexicon": {
                 "privilege": "DeleteLexicon",
@@ -64223,6 +64312,7 @@
     "qldb": {
         "service_name": "Amazon QLDB",
         "prefix": "qldb",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqldb.html",
         "privileges": {
             "CancelJournalKinesisStream": {
                 "privilege": "CancelJournalKinesisStream",
@@ -64610,6 +64700,7 @@
     "quicksight": {
         "service_name": "Amazon QuickSight",
         "prefix": "quicksight",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonquicksight.html",
         "privileges": {
             "CancelIngestion": {
                 "privilege": "CancelIngestion",
@@ -66647,6 +66738,7 @@
     "rds": {
         "service_name": "Amazon RDS",
         "prefix": "rds",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html",
         "privileges": {
             "AddRoleToDBCluster": {
                 "privilege": "AddRoleToDBCluster",
@@ -69394,6 +69486,7 @@
     "rds-data": {
         "service_name": "Amazon RDS Data API",
         "prefix": "rds-data",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrdsdataapi.html",
         "privileges": {
             "BatchExecuteStatement": {
                 "privilege": "BatchExecuteStatement",
@@ -69516,6 +69609,7 @@
     "rds-db": {
         "service_name": "Amazon RDS IAM Authentication",
         "prefix": "rds-db",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrdsiamauthentication.html",
         "privileges": {
             "connect": {
                 "privilege": "connect",
@@ -69544,6 +69638,7 @@
     "redshift": {
         "service_name": "Amazon Redshift",
         "prefix": "redshift",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html",
         "privileges": {
             "AcceptReservedNodeExchange": {
                 "privilege": "AcceptReservedNodeExchange",
@@ -71586,6 +71681,7 @@
     "redshift-data": {
         "service_name": "Amazon Redshift Data API",
         "prefix": "redshift-data",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html",
         "privileges": {
             "CancelStatement": {
                 "privilege": "CancelStatement",
@@ -71734,6 +71830,7 @@
     "rekognition": {
         "service_name": "Amazon Rekognition",
         "prefix": "rekognition",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html",
         "privileges": {
             "CompareFaces": {
                 "privilege": "CompareFaces",
@@ -72447,6 +72544,7 @@
     "tag": {
         "service_name": "Amazon Resource Group Tagging API",
         "prefix": "tag",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonresourcegrouptaggingapi.html",
         "privileges": {
             "DescribeReportCreation": {
                 "privilege": "DescribeReportCreation",
@@ -72567,6 +72665,7 @@
     "route53": {
         "service_name": "Amazon Route 53",
         "prefix": "route53",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html",
         "privileges": {
             "AssociateVPCWithHostedZone": {
                 "privilege": "AssociateVPCWithHostedZone",
@@ -73458,6 +73557,7 @@
     "route53domains": {
         "service_name": "Amazon Route53 Domains",
         "prefix": "route53domains",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53domains.html",
         "privileges": {
             "CheckDomainAvailability": {
                 "privilege": "CheckDomainAvailability",
@@ -73788,6 +73888,7 @@
     "route53resolver": {
         "service_name": "Amazon Route 53 Resolver",
         "prefix": "route53resolver",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53resolver.html",
         "privileges": {
             "AssociateResolverEndpointIpAddress": {
                 "privilege": "AssociateResolverEndpointIpAddress",
@@ -74349,6 +74450,7 @@
     "s3": {
         "service_name": "Amazon S3",
         "prefix": "s3",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html",
         "privileges": {
             "AbortMultipartUpload": {
                 "privilege": "AbortMultipartUpload",
@@ -77646,6 +77748,7 @@
     "s3-outposts": {
         "service_name": "Amazon S3 on Outposts",
         "prefix": "s3-outposts",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3onoutposts.html",
         "privileges": {
             "AbortMultipartUpload": {
                 "privilege": "AbortMultipartUpload",
@@ -78597,6 +78700,7 @@
     "sagemaker": {
         "service_name": "Amazon SageMaker",
         "prefix": "sagemaker",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html",
         "privileges": {
             "AddAssociation": {
                 "privilege": "AddAssociation",
@@ -83947,6 +84051,7 @@
     "ssmmessages": {
         "service_name": "Amazon Session Manager Message Gateway Service",
         "prefix": "ssmmessages",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsessionmanagermessagegatewayservice.html",
         "privileges": {
             "CreateControlChannel": {
                 "privilege": "CreateControlChannel",
@@ -84011,6 +84116,7 @@
     "sdb": {
         "service_name": "Amazon SimpleDB",
         "prefix": "sdb",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpledb.html",
         "privileges": {
             "BatchDeleteAttributes": {
                 "privilege": "BatchDeleteAttributes",
@@ -84165,6 +84271,7 @@
     "swf": {
         "service_name": "Amazon Simple Workflow Service",
         "prefix": "swf",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpleworkflowservice.html",
         "privileges": {
             "CancelTimer": {
                 "privilege": "CancelTimer",
@@ -85101,6 +85208,7 @@
     "sns": {
         "service_name": "Amazon SNS",
         "prefix": "sns",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsns.html",
         "privileges": {
             "AddPermission": {
                 "privilege": "AddPermission",
@@ -85633,6 +85741,7 @@
     "sqs": {
         "service_name": "Amazon SQS",
         "prefix": "sqs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html",
         "privileges": {
             "AddPermission": {
                 "privilege": "AddPermission",
@@ -85927,6 +86036,7 @@
     "storagegateway": {
         "service_name": "Amazon Storage Gateway",
         "prefix": "storagegateway",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonstoragegateway.html",
         "privileges": {
             "ActivateGateway": {
                 "privilege": "ActivateGateway",
@@ -87384,6 +87494,7 @@
     "sumerian": {
         "service_name": "Amazon Sumerian",
         "prefix": "sumerian",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsumerian.html",
         "privileges": {
             "Login": {
                 "privilege": "Login",
@@ -87426,6 +87537,7 @@
     "textract": {
         "service_name": "Amazon Textract",
         "prefix": "textract",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html",
         "privileges": {
             "AnalyzeDocument": {
                 "privilege": "AnalyzeDocument",
@@ -87526,6 +87638,7 @@
     "timestream": {
         "service_name": "AWS Timestream",
         "prefix": "timestream",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstimestream.html",
         "privileges": {
             "CancelQuery": {
                 "privilege": "CancelQuery",
@@ -87884,6 +87997,7 @@
     "transcribe": {
         "service_name": "Amazon Transcribe",
         "prefix": "transcribe",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html",
         "privileges": {
             "CreateLanguageModel": {
                 "privilege": "CreateLanguageModel",
@@ -88365,6 +88479,7 @@
     "translate": {
         "service_name": "Amazon Translate",
         "prefix": "translate",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranslate.html",
         "privileges": {
             "CreateParallelData": {
                 "privilege": "CreateParallelData",
@@ -88569,6 +88684,7 @@
     "workdocs": {
         "service_name": "Amazon WorkDocs",
         "prefix": "workdocs",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkdocs.html",
         "privileges": {
             "AbortDocumentVersionUpload": {
                 "privilege": "AbortDocumentVersionUpload",
@@ -89291,6 +89407,7 @@
     "worklink": {
         "service_name": "Amazon WorkLink",
         "prefix": "worklink",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworklink.html",
         "privileges": {
             "AssociateDomain": {
                 "privilege": "AssociateDomain",
@@ -89837,6 +89954,7 @@
     "workmail": {
         "service_name": "Amazon WorkMail",
         "prefix": "workmail",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html",
         "privileges": {
             "AddMembersToGroup": {
                 "privilege": "AddMembersToGroup",
@@ -91269,6 +91387,7 @@
     "workmailmessageflow": {
         "service_name": "Amazon WorkMail Message Flow",
         "prefix": "workmailmessageflow",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmailmessageflow.html",
         "privileges": {
             "GetRawMessageContent": {
                 "privilege": "GetRawMessageContent",
@@ -91297,6 +91416,7 @@
     "workspaces": {
         "service_name": "Amazon WorkSpaces",
         "prefix": "workspaces",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspaces.html",
         "privileges": {
             "AssociateIpGroups": {
                 "privilege": "AssociateIpGroups",
@@ -91780,6 +91900,7 @@
     "wam": {
         "service_name": "Amazon WorkSpaces Application Manager",
         "prefix": "wam",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspacesapplicationmanager.html",
         "privileges": {
             "AuthenticatePackager": {
                 "privilege": "AuthenticatePackager",
@@ -91802,6 +91923,7 @@
     "application-autoscaling": {
         "service_name": "Application Auto Scaling",
         "prefix": "application-autoscaling",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_applicationautoscaling.html",
         "privileges": {
             "DeleteScalingPolicy": {
                 "privilege": "DeleteScalingPolicy",
@@ -91950,6 +92072,7 @@
     "discovery": {
         "service_name": "Application Discovery",
         "prefix": "discovery",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_applicationdiscovery.html",
         "privileges": {
             "AssociateConfigurationItemsToApplication": {
                 "privilege": "AssociateConfigurationItemsToApplication",
@@ -92308,6 +92431,7 @@
     "arsenal": {
         "service_name": "Application Discovery Arsenal",
         "prefix": "arsenal",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_applicationdiscoveryarsenal.html",
         "privileges": {
             "RegisterOnPremisesAgent": {
                 "privilege": "RegisterOnPremisesAgent",
@@ -92330,6 +92454,7 @@
     "account": {
         "service_name": "AWS Accounts",
         "prefix": "account",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsaccounts.html",
         "privileges": {
             "DisableRegion": {
                 "privilege": "DisableRegion",
@@ -92390,6 +92515,7 @@
     "activate": {
         "service_name": "AWS Activate",
         "prefix": "activate",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsactivate.html",
         "privileges": {
             "CreateForm": {
                 "privilege": "CreateForm",
@@ -92510,6 +92636,7 @@
     "amplify": {
         "service_name": "AWS Amplify",
         "prefix": "amplify",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplify.html",
         "privileges": {
             "CreateApp": {
                 "privilege": "CreateApp",
@@ -93133,6 +93260,7 @@
     "amplifybackend": {
         "service_name": "AWS Amplify Admin",
         "prefix": "amplifybackend",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplifyadmin.html",
         "privileges": {
             "CloneBackend": {
                 "privilege": "CloneBackend",
@@ -93669,6 +93797,7 @@
     "appconfig": {
         "service_name": "AWS AppConfig",
         "prefix": "appconfig",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappconfig.html",
         "privileges": {
             "CreateApplication": {
                 "privilege": "CreateApplication",
@@ -94572,6 +94701,7 @@
     "appmesh": {
         "service_name": "AWS App Mesh",
         "prefix": "appmesh",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappmesh.html",
         "privileges": {
             "CreateGatewayRoute": {
                 "privilege": "CreateGatewayRoute",
@@ -95440,6 +95570,7 @@
     "appmesh-preview": {
         "service_name": "AWS App Mesh Preview",
         "prefix": "appmesh-preview",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappmeshpreview.html",
         "privileges": {
             "CreateGatewayRoute": {
                 "privilege": "CreateGatewayRoute",
@@ -96048,6 +96179,7 @@
     "appsync": {
         "service_name": "AWS AppSync",
         "prefix": "appsync",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html",
         "privileges": {
             "CreateApiKey": {
                 "privilege": "CreateApiKey",
@@ -96695,6 +96827,7 @@
     "artifact": {
         "service_name": "AWS Artifact",
         "prefix": "artifact",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsartifact.html",
         "privileges": {
             "AcceptAgreement": {
                 "privilege": "AcceptAgreement",
@@ -96781,6 +96914,7 @@
     "auditmanager": {
         "service_name": "AWS Audit Manager",
         "prefix": "auditmanager",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsauditmanager.html",
         "privileges": {
             "AssociateAssessmentReportEvidenceFolder": {
                 "privilege": "AssociateAssessmentReportEvidenceFolder",
@@ -97610,6 +97744,7 @@
     "autoscaling-plans": {
         "service_name": "AWS Auto Scaling",
         "prefix": "autoscaling-plans",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsautoscaling.html",
         "privileges": {
             "CreateScalingPlan": {
                 "privilege": "CreateScalingPlan",
@@ -97702,6 +97837,7 @@
     "backup": {
         "service_name": "AWS Backup",
         "prefix": "backup",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbackup.html",
         "privileges": {
             "CopyFromBackupVault": {
                 "privilege": "CopyFromBackupVault",
@@ -98582,6 +98718,7 @@
     "backup-storage": {
         "service_name": "AWS Backup storage",
         "prefix": "backup-storage",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbackupstorage.html",
         "privileges": {
             "MountCapsule": {
                 "privilege": "MountCapsule",
@@ -98604,6 +98741,7 @@
     "batch": {
         "service_name": "AWS Batch",
         "prefix": "batch",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html",
         "privileges": {
             "CancelJob": {
                 "privilege": "CancelJob",
@@ -99072,6 +99210,7 @@
     "aws-portal": {
         "service_name": "AWS Billing",
         "prefix": "aws-portal",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbilling.html",
         "privileges": {
             "ModifyAccount": {
                 "privilege": "ModifyAccount",
@@ -99178,6 +99317,7 @@
     "budgets": {
         "service_name": "AWS Budget Service",
         "prefix": "budgets",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbudgetservice.html",
         "privileges": {
             "CreateBudgetAction": {
                 "privilege": "CreateBudgetAction",
@@ -99341,6 +99481,7 @@
     "acm": {
         "service_name": "AWS Certificate Manager",
         "prefix": "acm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscertificatemanager.html",
         "privileges": {
             "AddTagsToCertificate": {
                 "privilege": "AddTagsToCertificate",
@@ -99585,6 +99726,7 @@
     "acm-pca": {
         "service_name": "AWS Certificate Manager Private Certificate Authority",
         "prefix": "acm-pca",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscertificatemanagerprivatecertificateauthority.html",
         "privileges": {
             "CreateCertificateAuthority": {
                 "privilege": "CreateCertificateAuthority",
@@ -99972,6 +100114,7 @@
     "chatbot": {
         "service_name": "AWS Chatbot",
         "prefix": "chatbot",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awschatbot.html",
         "privileges": {
             "CreateChimeWebhookConfiguration": {
                 "privilege": "CreateChimeWebhookConfiguration",
@@ -100154,6 +100297,7 @@
     "cloud9": {
         "service_name": "AWS Cloud9",
         "prefix": "cloud9",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloud9.html",
         "privileges": {
             "CreateEnvironmentEC2": {
                 "privilege": "CreateEnvironmentEC2",
@@ -100483,6 +100627,7 @@
     "cloudformation": {
         "service_name": "AWS CloudFormation",
         "prefix": "cloudformation",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html",
         "privileges": {
             "CancelUpdateStack": {
                 "privilege": "CancelUpdateStack",
@@ -101536,6 +101681,7 @@
     "cloudhsm": {
         "service_name": "AWS CloudHSM",
         "prefix": "cloudhsm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudhsm.html",
         "privileges": {
             "AddTagsToResource": {
                 "privilege": "AddTagsToResource",
@@ -102062,6 +102208,7 @@
     "servicediscovery": {
         "service_name": "AWS Cloud Map",
         "prefix": "servicediscovery",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html",
         "privileges": {
             "CreateHttpNamespace": {
                 "privilege": "CreateHttpNamespace",
@@ -102495,6 +102642,7 @@
     "cloudshell": {
         "service_name": "AWS CloudShell",
         "prefix": "cloudshell",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudshell.html",
         "privileges": {
             "CreateEnvironment": {
                 "privilege": "CreateEnvironment",
@@ -102635,6 +102783,7 @@
     "cloudtrail": {
         "service_name": "AWS CloudTrail",
         "prefix": "cloudtrail",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudtrail.html",
         "privileges": {
             "AddTags": {
                 "privilege": "AddTags",
@@ -102903,6 +103052,7 @@
     "codeartifact": {
         "service_name": "AWS CodeArtifact",
         "prefix": "codeartifact",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodeartifact.html",
         "privileges": {
             "AssociateExternalConnection": {
                 "privilege": "AssociateExternalConnection",
@@ -103526,6 +103676,7 @@
     "codebuild": {
         "service_name": "AWS CodeBuild",
         "prefix": "codebuild",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodebuild.html",
         "privileges": {
             "BatchDeleteBuilds": {
                 "privilege": "BatchDeleteBuilds",
@@ -104348,6 +104499,7 @@
     "codecommit": {
         "service_name": "AWS CodeCommit",
         "prefix": "codecommit",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodecommit.html",
         "privileges": {
             "AssociateApprovalRuleTemplateWithRepository": {
                 "privilege": "AssociateApprovalRuleTemplateWithRepository",
@@ -105756,6 +105908,7 @@
     "codedeploy": {
         "service_name": "AWS CodeDeploy",
         "prefix": "codedeploy",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodedeploy.html",
         "privileges": {
             "AddTagsToOnPremisesInstances": {
                 "privilege": "AddTagsToOnPremisesInstances",
@@ -106526,6 +106679,7 @@
     "codepipeline": {
         "service_name": "AWS CodePipeline",
         "prefix": "codepipeline",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodepipeline.html",
         "privileges": {
             "AcknowledgeJob": {
                 "privilege": "AcknowledgeJob",
@@ -107190,6 +107344,7 @@
     "signer": {
         "service_name": "AWS Signer",
         "prefix": "signer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssigner.html",
         "privileges": {
             "AddProfilePermission": {
                 "privilege": "AddProfilePermission",
@@ -107547,6 +107702,7 @@
     "codestar": {
         "service_name": "AWS CodeStar",
         "prefix": "codestar",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestar.html",
         "privileges": {
             "AssociateTeamMember": {
                 "privilege": "AssociateTeamMember",
@@ -107905,6 +108061,7 @@
     "codestar-connections": {
         "service_name": "AWS CodeStar Connections",
         "prefix": "codestar-connections",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestarconnections.html",
         "privileges": {
             "CreateConnection": {
                 "privilege": "CreateConnection",
@@ -108363,6 +108520,7 @@
     "codestar-notifications": {
         "service_name": "AWS CodeStar Notifications",
         "prefix": "codestar-notifications",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestarnotifications.html",
         "privileges": {
             "CreateNotificationRule": {
                 "privilege": "CreateNotificationRule",
@@ -108681,6 +108839,7 @@
     "compute-optimizer": {
         "service_name": "Compute Optimizer",
         "prefix": "compute-optimizer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_computeoptimizer.html",
         "privileges": {
             "DescribeRecommendationExportJobs": {
                 "privilege": "DescribeRecommendationExportJobs",
@@ -108829,6 +108988,7 @@
     "config": {
         "service_name": "AWS Config",
         "prefix": "config",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsconfig.html",
         "privileges": {
             "BatchGetAggregateResourceConfig": {
                 "privilege": "BatchGetAggregateResourceConfig",
@@ -110170,6 +110330,7 @@
     "awsconnector": {
         "service_name": "AWS Connector Service",
         "prefix": "awsconnector",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsconnectorservice.html",
         "privileges": {
             "GetConnectorHealth": {
                 "privilege": "GetConnectorHealth",
@@ -110220,6 +110381,7 @@
     "cur": {
         "service_name": "AWS Cost and Usage Report",
         "prefix": "cur",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscostandusagereport.html",
         "privileges": {
             "DeleteReportDefinition": {
                 "privilege": "DeleteReportDefinition",
@@ -110290,6 +110452,7 @@
     "ce": {
         "service_name": "AWS Cost Explorer Service",
         "prefix": "ce",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscostexplorerservice.html",
         "privileges": {
             "CreateAnomalyMonitor": {
                 "privilege": "CreateAnomalyMonitor",
@@ -110858,6 +111021,7 @@
     "dms": {
         "service_name": "AWS Database Migration Service",
         "prefix": "dms",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html",
         "privileges": {
             "AddTagsToResource": {
                 "privilege": "AddTagsToResource",
@@ -111884,6 +112048,7 @@
     "dataexchange": {
         "service_name": "AWS Data Exchange",
         "prefix": "dataexchange",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdataexchange.html",
         "privileges": {
             "CancelJob": {
                 "privilege": "CancelJob",
@@ -112305,6 +112470,7 @@
     "deepcomposer": {
         "service_name": "AWS DeepComposer",
         "prefix": "deepcomposer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeepcomposer.html",
         "privileges": {
             "AssociateCoupon": {
                 "privilege": "AssociateCoupon",
@@ -112669,6 +112835,7 @@
     "deeplens": {
         "service_name": "AWS DeepLens",
         "prefix": "deeplens",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeeplens.html",
         "privileges": {
             "AssociateServiceRoleToAccount": {
                 "privilege": "AssociateServiceRoleToAccount",
@@ -113035,6 +113202,7 @@
     "deepracer": {
         "service_name": "AWS DeepRacer",
         "prefix": "deepracer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeepracer.html",
         "privileges": {
             "CloneReinforcementLearningModel": {
                 "privilege": "CloneReinforcementLearningModel",
@@ -113456,6 +113624,7 @@
     "devicefarm": {
         "service_name": "AWS Device Farm",
         "prefix": "devicefarm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdevicefarm.html",
         "privileges": {
             "CreateDevicePool": {
                 "privilege": "CreateDevicePool",
@@ -114938,6 +115107,7 @@
     "directconnect": {
         "service_name": "AWS Direct Connect",
         "prefix": "directconnect",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectconnect.html",
         "privileges": {
             "AcceptDirectConnectGatewayAssociationProposal": {
                 "privilege": "AcceptDirectConnectGatewayAssociationProposal",
@@ -116012,6 +116182,7 @@
     "ds": {
         "service_name": "AWS Directory Service",
         "prefix": "ds",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservice.html",
         "privileges": {
             "AcceptSharedDirectory": {
                 "privilege": "AcceptSharedDirectory",
@@ -116999,6 +117170,7 @@
     "elasticbeanstalk": {
         "service_name": "AWS Elastic Beanstalk",
         "prefix": "elasticbeanstalk",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticbeanstalk.html",
         "privileges": {
             "AbortEnvironmentUpdate": {
                 "privilege": "AbortEnvironmentUpdate",
@@ -118086,6 +118258,7 @@
     "elemental-appliances-software": {
         "service_name": "AWS Elemental Appliances and Software",
         "prefix": "elemental-appliances-software",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalappliancesandsoftware.html",
         "privileges": {
             "CreateQuote": {
                 "privilege": "CreateQuote",
@@ -118242,6 +118415,7 @@
     "elemental-activations": {
         "service_name": "Elemental Activations",
         "prefix": "elemental-activations",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_elementalactivations.html",
         "privileges": {
             "CompleteFileUpload": {
                 "privilege": "CompleteFileUpload",
@@ -118403,6 +118577,7 @@
     "mediaconnect": {
         "service_name": "AWS Elemental MediaConnect",
         "prefix": "mediaconnect",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconnect.html",
         "privileges": {
             "AddFlowOutputs": {
                 "privilege": "AddFlowOutputs",
@@ -118628,6 +118803,7 @@
     "mediaconvert": {
         "service_name": "AWS Elemental MediaConvert",
         "prefix": "mediaconvert",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconvert.html",
         "privileges": {
             "AssociateCertificate": {
                 "privilege": "AssociateCertificate",
@@ -119132,6 +119308,7 @@
     "medialive": {
         "service_name": "AWS Elemental MediaLive",
         "prefix": "medialive",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmedialive.html",
         "privileges": {
             "AcceptInputDeviceTransfer": {
                 "privilege": "AcceptInputDeviceTransfer",
@@ -120154,6 +120331,7 @@
     "mediapackage": {
         "service_name": "AWS Elemental MediaPackage",
         "prefix": "mediapackage",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediapackage.html",
         "privileges": {
             "CreateChannel": {
                 "privilege": "CreateChannel",
@@ -120500,6 +120678,7 @@
     "mediapackage-vod": {
         "service_name": "AWS Elemental MediaPackage VOD",
         "prefix": "mediapackage-vod",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediapackagevod.html",
         "privileges": {
             "CreateAsset": {
                 "privilege": "CreateAsset",
@@ -120818,6 +120997,7 @@
     "mediastore": {
         "service_name": "AWS Elemental MediaStore",
         "prefix": "mediastore",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediastore.html",
         "privileges": {
             "CreateContainer": {
                 "privilege": "CreateContainer",
@@ -121196,6 +121376,7 @@
     "mediatailor": {
         "service_name": "AWS Elemental MediaTailor",
         "prefix": "mediatailor",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediatailor.html",
         "privileges": {
             "DeletePlaybackConfiguration": {
                 "privilege": "DeletePlaybackConfiguration",
@@ -121341,6 +121522,7 @@
     "fms": {
         "service_name": "AWS Firewall Manager",
         "prefix": "fms",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsfirewallmanager.html",
         "privileges": {
             "AssociateAdminAccount": {
                 "privilege": "AssociateAdminAccount",
@@ -121803,6 +121985,7 @@
     "globalaccelerator": {
         "service_name": "AWS Global Accelerator",
         "prefix": "globalaccelerator",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglobalaccelerator.html",
         "privileges": {
             "AddCustomRoutingEndpoints": {
                 "privilege": "AddCustomRoutingEndpoints",
@@ -122530,6 +122713,7 @@
     "glue": {
         "service_name": "AWS Glue",
         "prefix": "glue",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html",
         "privileges": {
             "BatchCreatePartition": {
                 "privilege": "BatchCreatePartition",
@@ -125245,6 +125429,7 @@
     "databrew": {
         "service_name": "AWS Glue DataBrew",
         "prefix": "databrew",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgluedatabrew.html",
         "privileges": {
             "BatchDeleteRecipeVersion": {
                 "privilege": "BatchDeleteRecipeVersion",
@@ -125958,6 +126143,7 @@
     "groundstation": {
         "service_name": "AWS Ground Station",
         "prefix": "groundstation",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgroundstation.html",
         "privileges": {
             "CancelContact": {
                 "privilege": "CancelContact",
@@ -126498,6 +126684,7 @@
     "health": {
         "service_name": "AWS Health APIs and Notifications",
         "prefix": "health",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthapisandnotifications.html",
         "privileges": {
             "DescribeAffectedAccountsForOrganization": {
                 "privilege": "DescribeAffectedAccountsForOrganization",
@@ -126740,6 +126927,7 @@
     "identitystore": {
         "service_name": "AWS Identity Store",
         "prefix": "identitystore",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html",
         "privileges": {
             "DescribeGroup": {
                 "privilege": "DescribeGroup",
@@ -126804,6 +126992,7 @@
     "importexport": {
         "service_name": "AWS Import Export Disk Service",
         "prefix": "importexport",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsimportexportdiskservice.html",
         "privileges": {
             "CancelJob": {
                 "privilege": "CancelJob",
@@ -126896,6 +127085,7 @@
     "iot": {
         "service_name": "AWS IoT",
         "prefix": "iot",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html",
         "privileges": {
             "AcceptCertificateTransfer": {
                 "privilege": "AcceptCertificateTransfer",
@@ -130965,6 +131155,7 @@
     "iot1click": {
         "service_name": "AWS IoT 1-Click",
         "prefix": "iot1click",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot1-click.html",
         "privileges": {
             "AssociateDeviceWithPlacement": {
                 "privilege": "AssociateDeviceWithPlacement",
@@ -131421,6 +131612,7 @@
     "iotanalytics": {
         "service_name": "AWS IoT Analytics",
         "prefix": "iotanalytics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotanalytics.html",
         "privileges": {
             "BatchPutMessage": {
                 "privilege": "BatchPutMessage",
@@ -132052,6 +132244,7 @@
     "iotdeviceadvisor": {
         "service_name": "AWS IoT Core Device Advisor",
         "prefix": "iotdeviceadvisor",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotcoredeviceadvisor.html",
         "privileges": {
             "CreateSuiteDefinition": {
                 "privilege": "CreateSuiteDefinition",
@@ -132314,6 +132507,7 @@
     "iotwireless": {
         "service_name": "AWS IoT Core for LoRaWAN",
         "prefix": "iotwireless",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotcoreforlorawan.html",
         "privileges": {
             "AssociateAwsAccountWithPartnerAccount": {
                 "privilege": "AssociateAwsAccountWithPartnerAccount",
@@ -133253,6 +133447,7 @@
     "iot-device-tester": {
         "service_name": "AWS IoT Device Tester",
         "prefix": "iot-device-tester",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotdevicetester.html",
         "privileges": {
             "CheckVersion": {
                 "privilege": "CheckVersion",
@@ -133331,6 +133526,7 @@
     "iotevents": {
         "service_name": "AWS IoT Events",
         "prefix": "iotevents",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotevents.html",
         "privileges": {
             "BatchAcknowledgeAlarm": {
                 "privilege": "BatchAcknowledgeAlarm",
@@ -133920,6 +134116,7 @@
     "greengrass": {
         "service_name": "AWS IoT Greengrass V2",
         "prefix": "greengrass",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrassv2.html",
         "privileges": {
             "CancelDeployment": {
                 "privilege": "CancelDeployment",
@@ -134385,6 +134582,7 @@
     "iotsitewise": {
         "service_name": "AWS IoT SiteWise",
         "prefix": "iotsitewise",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html",
         "privileges": {
             "AssociateAssets": {
                 "privilege": "AssociateAssets",
@@ -135464,6 +135662,7 @@
     "iotthingsgraph": {
         "service_name": "AWS IoT Things Graph",
         "prefix": "iotthingsgraph",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotthingsgraph.html",
         "privileges": {
             "AssociateEntityToThing": {
                 "privilege": "AssociateEntityToThing",
@@ -136022,6 +136221,7 @@
     "iq": {
         "service_name": "AWS IQ",
         "prefix": "iq",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiq.html",
         "privileges": {
             "CreateProject": {
                 "privilege": "CreateProject",
@@ -136044,6 +136244,7 @@
     "iq-permission": {
         "service_name": "AWS IQ Permissions",
         "prefix": "iq-permission",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiqpermissions.html",
         "privileges": {
             "ApproveAccessGrant": {
                 "privilege": "ApproveAccessGrant",
@@ -136066,6 +136267,7 @@
     "kms": {
         "service_name": "AWS Key Management Service",
         "prefix": "kms",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html",
         "privileges": {
             "CancelKeyDeletion": {
                 "privilege": "CancelKeyDeletion",
@@ -137237,6 +137439,7 @@
     "lakeformation": {
         "service_name": "AWS Lake Formation",
         "prefix": "lakeformation",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslakeformation.html",
         "privileges": {
             "BatchGrantPermissions": {
                 "privilege": "BatchGrantPermissions",
@@ -137441,6 +137644,7 @@
     "lambda": {
         "service_name": "AWS Lambda",
         "prefix": "lambda",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html",
         "privileges": {
             "AddLayerVersionPermission": {
                 "privilege": "AddLayerVersionPermission",
@@ -138455,6 +138659,7 @@
     "license-manager": {
         "service_name": "AWS License Manager",
         "prefix": "license-manager",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslicensemanager.html",
         "privileges": {
             "AcceptGrant": {
                 "privilege": "AcceptGrant",
@@ -139069,6 +139274,7 @@
     "aws-marketplace": {
         "service_name": "AWS Private Marketplace",
         "prefix": "aws-marketplace",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatemarketplace.html",
         "privileges": {
             "AssociateProductsWithPrivateMarketplace": {
                 "privilege": "AssociateProductsWithPrivateMarketplace",
@@ -139301,6 +139507,7 @@
     "marketplacecommerceanalytics": {
         "service_name": "AWS Marketplace Commerce Analytics Service",
         "prefix": "marketplacecommerceanalytics",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplacecommerceanalyticsservice.html",
         "privileges": {
             "GenerateDataSet": {
                 "privilege": "GenerateDataSet",
@@ -139337,6 +139544,7 @@
     "aws-marketplace-management": {
         "service_name": "AWS Marketplace Management Portal",
         "prefix": "aws-marketplace-management",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplacemanagementportal.html",
         "privileges": {
             "uploadFiles": {
                 "privilege": "uploadFiles",
@@ -139415,6 +139623,7 @@
     "mgh": {
         "service_name": "AWS Migration Hub",
         "prefix": "mgh",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhub.html",
         "privileges": {
             "AssociateCreatedArtifact": {
                 "privilege": "AssociateCreatedArtifact",
@@ -139700,6 +139909,7 @@
     "mobilehub": {
         "service_name": "AWS Mobile Hub",
         "prefix": "mobilehub",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmobilehub.html",
         "privileges": {
             "CreateProject": {
                 "privilege": "CreateProject",
@@ -140036,6 +140246,7 @@
     "network-firewall": {
         "service_name": "AWS Network Firewall",
         "prefix": "network-firewall",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html",
         "privileges": {
             "AssociateFirewallPolicy": {
                 "privilege": "AssociateFirewallPolicy",
@@ -140703,6 +140914,7 @@
     "opsworks": {
         "service_name": "AWS OpsWorks",
         "prefix": "opsworks",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworks.html",
         "privileges": {
             "AssignInstance": {
                 "privilege": "AssignInstance",
@@ -141739,6 +141951,7 @@
     "opsworks-cm": {
         "service_name": "AWS OpsWorks Configuration Management",
         "prefix": "opsworks-cm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworksconfigurationmanagement.html",
         "privileges": {
             "AssociateNode": {
                 "privilege": "AssociateNode",
@@ -141999,6 +142212,7 @@
     "organizations": {
         "service_name": "AWS Organizations",
         "prefix": "organizations",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html",
         "privileges": {
             "AcceptHandshake": {
                 "privilege": "AcceptHandshake",
@@ -143084,6 +143298,7 @@
     "outposts": {
         "service_name": "AWS Outposts",
         "prefix": "outposts",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsoutposts.html",
         "privileges": {
             "CreateOutpost": {
                 "privilege": "CreateOutpost",
@@ -143232,6 +143447,7 @@
     "panorama": {
         "service_name": "AWS Panorama",
         "prefix": "panorama",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspanorama.html",
         "privileges": {
             "CreateApp": {
                 "privilege": "CreateApp",
@@ -143967,6 +144183,7 @@
     "pi": {
         "service_name": "AWS Performance Insights",
         "prefix": "pi",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsperformanceinsights.html",
         "privileges": {
             "DescribeDimensionKeys": {
                 "privilege": "DescribeDimensionKeys",
@@ -144009,6 +144226,7 @@
     "pricing": {
         "service_name": "AWS Price List",
         "prefix": "pricing",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html",
         "privileges": {
             "DescribeServices": {
                 "privilege": "DescribeServices",
@@ -144059,6 +144277,7 @@
     "proton": {
         "service_name": "AWS Proton",
         "prefix": "proton",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsproton.html",
         "privileges": {
             "CreateEnvironment": {
                 "privilege": "CreateEnvironment",
@@ -144779,6 +144998,7 @@
     "purchase-orders": {
         "service_name": "AWS Purchase Orders Console",
         "prefix": "purchase-orders",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspurchaseordersconsole.html",
         "privileges": {
             "ModifyPurchaseOrders": {
                 "privilege": "ModifyPurchaseOrders",
@@ -144815,6 +145035,7 @@
     "ram": {
         "service_name": "AWS Resource Access Manager",
         "prefix": "ram",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceaccessmanager.html",
         "privileges": {
             "AcceptResourceShareInvitation": {
                 "privilege": "AcceptResourceShareInvitation",
@@ -145381,6 +145602,7 @@
     "resource-groups": {
         "service_name": "AWS Resource Groups",
         "prefix": "resource-groups",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourcegroups.html",
         "privileges": {
             "CreateGroup": {
                 "privilege": "CreateGroup",
@@ -145665,6 +145887,7 @@
     "robomaker": {
         "service_name": "AWS RoboMaker",
         "prefix": "robomaker",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrobomaker.html",
         "privileges": {
             "BatchDeleteWorlds": {
                 "privilege": "BatchDeleteWorlds",
@@ -146837,6 +147060,7 @@
     "savingsplans": {
         "service_name": "AWS Savings Plans",
         "prefix": "savingsplans",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssavingsplans.html",
         "privileges": {
             "CreateSavingsPlan": {
                 "privilege": "CreateSavingsPlan",
@@ -147039,6 +147263,7 @@
     "secretsmanager": {
         "service_name": "AWS Secrets Manager",
         "prefix": "secretsmanager",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html",
         "privileges": {
             "CancelRotateSecret": {
                 "privilege": "CancelRotateSecret",
@@ -147580,6 +147805,7 @@
     "securityhub": {
         "service_name": "AWS Security Hub",
         "prefix": "securityhub",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecurityhub.html",
         "privileges": {
             "AcceptInvitation": {
                 "privilege": "AcceptInvitation",
@@ -148422,6 +148648,7 @@
     "sts": {
         "service_name": "AWS Security Token Service",
         "prefix": "sts",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecuritytokenservice.html",
         "privileges": {
             "AssumeRole": {
                 "privilege": "AssumeRole",
@@ -148944,6 +149171,7 @@
     "serverlessrepo": {
         "service_name": "AWS Serverless Application Repository",
         "prefix": "serverlessrepo",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsserverlessapplicationrepository.html",
         "privileges": {
             "CreateApplication": {
                 "privilege": "CreateApplication",
@@ -149216,6 +149444,7 @@
     "sms": {
         "service_name": "AWS Server Migration Service",
         "prefix": "sms",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservermigrationservice.html",
         "privileges": {
             "CreateApp": {
                 "privilege": "CreateApp",
@@ -149742,6 +149971,7 @@
     "servicecatalog": {
         "service_name": "AWS Service Catalog",
         "prefix": "servicecatalog",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservicecatalog.html",
         "privileges": {
             "AcceptPortfolioShare": {
                 "privilege": "AcceptPortfolioShare",
@@ -151404,6 +151634,7 @@
     "shield": {
         "service_name": "AWS Shield",
         "prefix": "shield",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsshield.html",
         "privileges": {
             "AssociateDRTLogBucket": {
                 "privilege": "AssociateDRTLogBucket",
@@ -151686,6 +151917,7 @@
     "snowball": {
         "service_name": "AWS Snowball",
         "prefix": "snowball",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssnowball.html",
         "privileges": {
             "CancelCluster": {
                 "privilege": "CancelCluster",
@@ -151932,6 +152164,7 @@
     "sso": {
         "service_name": "AWS SSO",
         "prefix": "sso",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssso.html",
         "privileges": {
             "AssociateDirectory": {
                 "privilege": "AssociateDirectory",
@@ -153314,6 +153547,7 @@
     "sso-directory": {
         "service_name": "AWS SSO Directory",
         "prefix": "sso-directory",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsssodirectory.html",
         "privileges": {
             "AddMemberToGroup": {
                 "privilege": "AddMemberToGroup",
@@ -154050,6 +154284,7 @@
     "states": {
         "service_name": "AWS Step Functions",
         "prefix": "states",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstepfunctions.html",
         "privileges": {
             "CreateActivity": {
                 "privilege": "CreateActivity",
@@ -154478,6 +154713,7 @@
     "support": {
         "service_name": "AWS Support",
         "prefix": "support",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssupport.html",
         "privileges": {
             "AddAttachmentsToSet": {
                 "privilege": "AddAttachmentsToSet",
@@ -154794,6 +155030,7 @@
     "ssm": {
         "service_name": "AWS Systems Manager",
         "prefix": "ssm",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html",
         "privileges": {
             "AddTagsToResource": {
                 "privilege": "AddTagsToResource",
@@ -157215,6 +157452,7 @@
     "resource-explorer": {
         "service_name": "AWS Tag Editor",
         "prefix": "resource-explorer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstageditor.html",
         "privileges": {
             "ListResourceTypes": {
                 "privilege": "ListResourceTypes",
@@ -157267,6 +157505,7 @@
     "tiros": {
         "service_name": "AWS Tiros",
         "prefix": "tiros",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstiros.html",
         "privileges": {
             "CreateQuery": {
                 "privilege": "CreateQuery",
@@ -157317,6 +157556,7 @@
     "transfer": {
         "service_name": "AWS Transfer for SFTP",
         "prefix": "transfer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferforsftp.html",
         "privileges": {
             "CreateServer": {
                 "privilege": "CreateServer",
@@ -157691,6 +157931,7 @@
     "trustedadvisor": {
         "service_name": "AWS Trusted Advisor",
         "prefix": "trustedadvisor",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstrustedadvisor.html",
         "privileges": {
             "DescribeAccount": {
                 "privilege": "DescribeAccount",
@@ -157999,6 +158240,7 @@
     "waf": {
         "service_name": "AWS WAF",
         "prefix": "waf",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswaf.html",
         "privileges": {
             "CreateByteMatchSet": {
                 "privilege": "CreateByteMatchSet",
@@ -159287,6 +159529,7 @@
     "waf-regional": {
         "service_name": "AWS WAF Regional",
         "prefix": "waf-regional",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafregional.html",
         "privileges": {
             "AssociateWebACL": {
                 "privilege": "AssociateWebACL",
@@ -160642,6 +160885,7 @@
     "wafv2": {
         "service_name": "AWS WAF V2",
         "prefix": "wafv2",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html",
         "privileges": {
             "AssociateWebACL": {
                 "privilege": "AssociateWebACL",
@@ -161538,6 +161782,7 @@
     "wellarchitected": {
         "service_name": "AWS Well-Architected Tool",
         "prefix": "wellarchitected",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswell-architectedtool.html",
         "privileges": {
             "AssociateLenses": {
                 "privilege": "AssociateLenses",
@@ -161944,6 +162189,7 @@
     "xray": {
         "service_name": "AWS X-Ray",
         "prefix": "xray",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html",
         "privileges": {
             "BatchGetTraces": {
                 "privilege": "BatchGetTraces",
@@ -162454,6 +162700,7 @@
     "applicationinsights": {
         "service_name": "CloudWatch Application Insights",
         "prefix": "applicationinsights",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_cloudwatchapplicationinsights.html",
         "privileges": {
             "CreateApplication": {
                 "privilege": "CreateApplication",
@@ -162840,6 +163087,7 @@
     "dbqms": {
         "service_name": "Database Query Metadata Service",
         "prefix": "dbqms",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_databasequerymetadataservice.html",
         "privileges": {
             "CreateFavoriteQuery": {
                 "privilege": "CreateFavoriteQuery",
@@ -162974,6 +163222,7 @@
     "datapipeline": {
         "service_name": "Data Pipeline",
         "prefix": "datapipeline",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_datapipeline.html",
         "privileges": {
             "ActivatePipeline": {
                 "privilege": "ActivatePipeline",
@@ -163340,6 +163589,7 @@
     "datasync": {
         "service_name": "DataSync",
         "prefix": "datasync",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_datasync.html",
         "privileges": {
             "CancelTaskExecution": {
                 "privilege": "CancelTaskExecution",
@@ -163902,6 +164152,7 @@
     "elasticloadbalancing": {
         "service_name": "Elastic Load Balancing V2",
         "prefix": "elasticloadbalancing",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_elasticloadbalancingv2.html",
         "privileges": {
             "AddListenerCertificates": {
                 "privilege": "AddListenerCertificates",
@@ -164730,6 +164981,7 @@
     "elemental-support-cases": {
         "service_name": "Elemental Support Cases",
         "prefix": "elemental-support-cases",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_elementalsupportcases.html",
         "privileges": {
             "CreateCase": {
                 "privilege": "CreateCase",
@@ -164794,6 +165046,7 @@
     "elemental-support-content": {
         "service_name": "Elemental Support Content",
         "prefix": "elemental-support-content",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_elementalsupportcontent.html",
         "privileges": {
             "Query": {
                 "privilege": "Query",
@@ -164816,6 +165069,7 @@
     "iotfleethub": {
         "service_name": "Fleet Hub for AWS IoT Device Management",
         "prefix": "iotfleethub",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_fleethubforawsiotdevicemanagement.html",
         "privileges": {
             "CreateApplication": {
                 "privilege": "CreateApplication",
@@ -165083,6 +165337,7 @@
     "access-analyzer": {
         "service_name": "IAM Access Analyzer",
         "prefix": "access-analyzer",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_iamaccessanalyzer.html",
         "privileges": {
             "ApplyArchiveRule": {
                 "privilege": "ApplyArchiveRule",
@@ -165424,6 +165679,7 @@
     "iam": {
         "service_name": "Identity And Access Management",
         "prefix": "iam",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_identityandaccessmanagement.html",
         "privileges": {
             "AddClientIDToOpenIDConnectProvider": {
                 "privilege": "AddClientIDToOpenIDConnectProvider",
@@ -167975,6 +168231,7 @@
     "launchwizard": {
         "service_name": "Launch Wizard",
         "prefix": "launchwizard",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_launchwizard.html",
         "privileges": {
             "DeleteApp": {
                 "privilege": "DeleteApp",
@@ -168095,6 +168352,7 @@
     "apigateway": {
         "service_name": "Manage Amazon API Gateway",
         "prefix": "apigateway",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_manageamazonapigateway.html",
         "privileges": {
             "DELETE": {
                 "privilege": "DELETE",
@@ -168261,6 +168519,7 @@
     "networkmanager": {
         "service_name": "Network Manager",
         "prefix": "networkmanager",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_networkmanager.html",
         "privileges": {
             "AssociateCustomerGateway": {
                 "privilege": "AssociateCustomerGateway",
@@ -169151,6 +169410,7 @@
     "servicequotas": {
         "service_name": "Service Quotas",
         "prefix": "servicequotas",
+        "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html",
         "privileges": {
             "AssociateServiceQuotaTemplate": {
                 "privilege": "AssociateServiceQuotaTemplate",
diff --git a/policy_sentry/shared/iam_data.py b/policy_sentry/shared/iam_data.py
index 7fbcc75e..4d654010 100644
--- a/policy_sentry/shared/iam_data.py
+++ b/policy_sentry/shared/iam_data.py
@@ -25,6 +25,7 @@ def get_service_prefix_data(service_prefix):
     result = iam_definition.get(service_prefix, None)
     try:
         return result
-    # pylint: disable=bare-except
+    # pylint: disable=bare-except, inconsistent-return-statements
     except:
         logger.debug("Service prefix not %s found.", service_prefix)
+        return None


Test patch:
diff --git a/test/querying/test_all.py b/test/querying/test_all.py
index c321bc40..b3686e32 100644
--- a/test/querying/test_all.py
+++ b/test/querying/test_all.py
@@ -2,7 +2,8 @@ import unittest
 import json
 from policy_sentry.querying.all import (
     get_all_service_prefixes,
-    get_all_actions
+    get_all_actions,
+    get_service_authorization_url
 )
 from policy_sentry.command.query import query_action_table
 
@@ -50,3 +51,10 @@ class QueryActionsTestCase(unittest.TestCase):
             condition=None
         )
         self.assertTrue(len(result) > 3000)
+
+    def test_get_service_authorization_url(self):
+        result = get_service_authorization_url("a4b")
+        print(result)
+        expected_result = "https://docs.aws.amazon.com/service-authorization/latest/reference/list_alexaforbusiness.html"
+        self.assertTrue(result == expected_result)
+
diff --git a/test/querying/test_query_actions.py b/test/querying/test_query_actions.py
index 40d649ac..772bbc63 100644
--- a/test/querying/test_query_actions.py
+++ b/test/querying/test_query_actions.py
@@ -30,6 +30,7 @@ class QueryActionsTestCase(unittest.TestCase):
         desired_output_schema = Schema(
             {
                 "service_name": "AWS Cloud9",
+                "service_authorization_url": "https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloud9.html",
                 "prefix": "cloud9",
                 "privileges": dict,
                 "resources": dict,