From b3b326f578dba985978a36ce0201c91a6afab04e Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Wed, 8 Sep 2021 18:02:40 +0100 Subject: [PATCH] Update URL backend index (#4272) --- moto/backend_index.py | 118 +++++++++++++++----------------- scripts/update_backend_index.py | 4 ++ 2 files changed, 59 insertions(+), 63 deletions(-) diff --git a/moto/backend_index.py b/moto/backend_index.py index f34576161..fa37cf31f 100644 --- a/moto/backend_index.py +++ b/moto/backend_index.py @@ -1,68 +1,81 @@ -# autogenerated by ./scripts/update_backend_index.py +# autogenerated by scripts/update_backend_index.py import re backend_url_patterns = [ - ("acm", re.compile("https?://acm.(.+).amazonaws.com")), + ("acm", re.compile("https?://acm\\.(.+)\\.amazonaws\\.com")), ("apigateway", re.compile("https?://apigateway.(.+).amazonaws.com")), - ("athena", re.compile("https?://athena.(.+).amazonaws.com")), ( "applicationautoscaling", re.compile("https?://application-autoscaling.(.+).amazonaws.com"), ), - ("autoscaling", re.compile("https?://autoscaling.(.+).amazonaws.com")), + ("athena", re.compile("https?://athena\\.(.+)\\.amazonaws\\.com")), + ("autoscaling", re.compile("https?://autoscaling\\.(.+)\\.amazonaws\\.com")), ("batch", re.compile("https?://batch.(.+).amazonaws.com")), - ("cloudformation", re.compile("https?://cloudformation.(.+).amazonaws.com")), + ("cloudformation", re.compile("https?://cloudformation\\.(.+)\\.amazonaws\\.com")), ("cloudwatch", re.compile("https?://monitoring.(.+).amazonaws.com")), - ("codecommit", re.compile("https?://codecommit.(.+).amazonaws.com")), - ("codepipeline", re.compile("https?://codepipeline.(.+).amazonaws.com")), + ("codecommit", re.compile("https?://codecommit\\.(.+)\\.amazonaws\\.com")), + ("codepipeline", re.compile("https?://codepipeline\\.(.+)\\.amazonaws\\.com")), ("cognito-identity", re.compile("https?://cognito-identity.(.+).amazonaws.com")), ("cognito-idp", re.compile("https?://cognito-idp.(.+).amazonaws.com")), - ("config", re.compile("https?://config.(.+).amazonaws.com")), - ("datapipeline", re.compile("https?://datapipeline.(.+).amazonaws.com")), - ("datasync", re.compile("https?://(.*?)(datasync)(.*?).amazonaws.com")), - ("dms", re.compile("https?://dms.(.+).amazonaws.com")), - ("dynamodb", re.compile("https?://dynamodb.(.+).amazonaws.com")), - ("dynamodb2", re.compile("https?://dynamodb.(.+).amazonaws.com")), + ("config", re.compile("https?://config\\.(.+)\\.amazonaws\\.com")), + ("datapipeline", re.compile("https?://datapipeline\\.(.+)\\.amazonaws\\.com")), + ("datasync", re.compile("https?://(.*\\.)?(datasync)\\.(.+).amazonaws.com")), + ("dms", re.compile("https?://dms\\.(.+)\\.amazonaws\\.com")), + ("dynamodb", re.compile("https?://dynamodb\\.(.+)\\.amazonaws\\.com")), + ("dynamodb2", re.compile("https?://dynamodb\\.(.+)\\.amazonaws\\.com")), ("dynamodbstreams", re.compile("https?://streams.dynamodb.(.+).amazonaws.com")), ("ec2", re.compile("https?://ec2\\.(.+)\\.amazonaws\\.com(|\\.cn)")), ( "ec2instanceconnect", re.compile("https?://ec2-instance-connect\\.(.+)\\.amazonaws\\.com"), ), - ("ecr", re.compile("https?://ecr.(.+).amazonaws.com")), - ("ecr", re.compile("https?://api.ecr.(.+).amazonaws.com")), - ("ecs", re.compile("https?://ecs.(.+).amazonaws.com")), + ("ecr", re.compile("https?://ecr\\.(.+)\\.amazonaws\\.com")), + ("ecr", re.compile("https?://api\\.ecr\\.(.+)\\.amazonaws\\.com")), + ("ecs", re.compile("https?://ecs\\.(.+)\\.amazonaws\\.com")), + ("efs", re.compile("https?://elasticfilesystem.(.+).amazonaws.com")), + ("efs", re.compile("https?://elasticfilesystem.amazonaws.com")), + ("eks", re.compile("https?://eks.(.+).amazonaws.com")), ( "elasticbeanstalk", re.compile( "https?://elasticbeanstalk.(?P[a-zA-Z0-9\\-_]+).amazonaws.com" ), ), + ("elastictranscoder", re.compile("https?://elastictranscoder.(.+).amazonaws.com")), ("elb", re.compile("https?://elasticloadbalancing.(.+).amazonaws.com")), ("elbv2", re.compile("https?://elasticloadbalancing.(.+).amazonaws.com")), ("emr", re.compile("https?://(.+).elasticmapreduce.amazonaws.com")), ("emr", re.compile("https?://elasticmapreduce.(.+).amazonaws.com")), - ("events", re.compile("https?://events.(.+).amazonaws.com")), + ("events", re.compile("https?://events\\.(.+)\\.amazonaws\\.com")), + ("forecast", re.compile("https?://forecast\\.(.+)\\.amazonaws\\.com")), ("glacier", re.compile("https?://glacier.(.+).amazonaws.com")), - ("glue", re.compile("https?://glue(.*).amazonaws.com")), - ("iam", re.compile("https?://iam(.*).amazonaws.com")), - ("instance_metadata", re.compile("http://169.254.169.254")), - ("iot", re.compile("https?://iot.(.+).amazonaws.com")), + ("glue", re.compile("https?://glue\\.(.+)\\.amazonaws\\.com")), + ("iam", re.compile("https?://iam\\.(.*\\.)?amazonaws\\.com")), + ("iot", re.compile("https?://iot\\.(.+)\\.amazonaws\\.com")), ("iot-data", re.compile("https?://data.iot.(.+).amazonaws.com")), - ("kinesis", re.compile("https?://kinesis\\.(.+).amazonaws.com")), - ("kinesis", re.compile("https?://firehose.(.+).amazonaws.com")), - ("kms", re.compile("https?://kms.(.+).amazonaws.com")), + ("kinesis", re.compile("https?://kinesis\\.(.+)\\.amazonaws\\.com")), + ("kinesis", re.compile("https?://firehose\\.(.+)\\.amazonaws\\.com")), + ("kinesisvideo", re.compile("https?://kinesisvideo.(.+).amazonaws.com")), + ( + "kinesis-video-archived-media", + re.compile("https?://.*\\.kinesisvideo.(.+).amazonaws.com"), + ), + ("kms", re.compile("https?://kms\\.(.+)\\.amazonaws\\.com")), ("lambda", re.compile("https?://lambda.(.+).amazonaws.com(|.cn)")), - ("logs", re.compile("https?://logs.(.+).amazonaws.com")), + ("logs", re.compile("https?://logs\\.(.+)\\.amazonaws\\.com")), ("managedblockchain", re.compile("https?://managedblockchain.(.+).amazonaws.com")), - ("moto_api", re.compile("https?://motoapi.amazonaws.com")), + ("mediaconnect", re.compile("https?://mediaconnect.(.+).amazonaws.com")), + ("medialive", re.compile("https?://medialive.(.+).amazonaws.com")), + ("mediapackage", re.compile("https?://mediapackage.(.+).amazonaws.com")), + ("mediastore", re.compile("https?://mediastore\\.(.+)\\.amazonaws\\.com")), + ("mediastore-data", re.compile("https?://data.mediastore.(.+).amazonaws.com")), ("opsworks", re.compile("https?://opsworks.us-east-1.amazonaws.com")), - ("organizations", re.compile("https?://organizations.(.+).amazonaws.com")), + ("organizations", re.compile("https?://organizations\\.(.+)\\.amazonaws\\.com")), ("polly", re.compile("https?://polly.(.+).amazonaws.com")), ("ram", re.compile("https?://ram.(.+).amazonaws.com")), - ("rds", re.compile("https?://rds.(.+).amazonaws.com")), - ("rds", re.compile("https?://rds.amazonaws.com")), - ("redshift", re.compile("https?://redshift.(.+).amazonaws.com")), + ("rds", re.compile("https?://rds\\.(.+)\\.amazonaws\\.com")), + ("rds", re.compile("https?://rds\\.amazonaws\\.com")), + ("redshift", re.compile("https?://redshift\\.(.+)\\.amazonaws\\.com")), ( "resource-groups", re.compile("https?://resource-groups(-fips)?.(.+).amazonaws.com"), @@ -76,40 +89,19 @@ backend_url_patterns = [ "https?://(?P[a-zA-Z0-9\\-_.]*)\\.?s3(.*).amazonaws.com" ), ), - ("s3bucket_path", re.compile("https?://s3(.*).amazonaws.com")), - ( - "s3bucket_path", - re.compile( - "https?://(?P[a-zA-Z0-9\\-_.]*)\\.?s3(.*).amazonaws.com" - ), - ), ("sagemaker", re.compile("https?://api.sagemaker.(.+).amazonaws.com")), - ("secretsmanager", re.compile("https?://secretsmanager.(.+).amazonaws.com")), - ("ses", re.compile("https?://email.(.+).amazonaws.com")), - ("ses", re.compile("https?://ses.(.+).amazonaws.com")), - ("sns", re.compile("https?://sns.(.+).amazonaws.com")), - ("sqs", re.compile("https?://(.*?)(queue|sqs)(.*?).amazonaws.com")), - ("ssm", re.compile("https?://ssm.(.+).amazonaws.com")), - ("ssm", re.compile("https?://ssm.(.+).amazonaws.com.cn")), + ("secretsmanager", re.compile("https?://secretsmanager\\.(.+)\\.amazonaws\\.com")), + ("ses", re.compile("https?://email\\.(.+)\\.amazonaws\\.com")), + ("ses", re.compile("https?://ses\\.(.+)\\.amazonaws\\.com")), + ("sns", re.compile("https?://sns\\.(.+)\\.amazonaws\\.com")), + ("sqs", re.compile("https?://(.*\\.)?(queue|sqs)\\.(.*\\.)?amazonaws\\.com")), + ("ssm", re.compile("https?://ssm\\.(.+)\\.amazonaws\\.com")), + ("ssm", re.compile("https?://ssm\\.(.+)\\.amazonaws\\.com\\.cn")), ("stepfunctions", re.compile("https?://states.(.+).amazonaws.com")), - ("sts", re.compile("https?://sts(.*).amazonaws.com(|.cn)")), - ("swf", re.compile("https?://swf.(.+).amazonaws.com")), - ("transcribe", re.compile("https?://transcribe.(.+).amazonaws.com")), + ("sts", re.compile("https?://sts\\.(.*\\.)?amazonaws\\.com(|.cn)")), + ("support", re.compile("https?://support\\.(.+)\\.amazonaws\\.com")), + ("swf", re.compile("https?://swf\\.(.+)\\.amazonaws\\.com")), + ("transcribe", re.compile("https?://transcribe\\.(.+)\\.amazonaws\\.com")), + ("wafv2", re.compile("https?://wafv2\\.(.+)\\.amazonaws.com")), ("xray", re.compile("https?://xray.(.+).amazonaws.com")), - ("kinesisvideo", re.compile("https?://kinesisvideo.(.+).amazonaws.com")), - ("medialive", re.compile("https?://medialive.(.+).amazonaws.com")), - ( - "kinesis-video-archived-media", - re.compile("https?://.*\\.kinesisvideo.(.+).amazonaws.com"), - ), - ("forecast", re.compile("https?://forecast.(.+).amazonaws.com")), - ("support", re.compile("https?://support.(.+).amazonaws.com")), - ("mediaconnect", re.compile("https?://mediaconnect.(.+).amazonaws.com")), - ("mediapackage", re.compile("https?://mediapackage.(.+).amazonaws.com")), - ("mediastore", re.compile("https?://mediastore.(.+).amazonaws.com")), - ("mediastore-data", re.compile("https?://data.mediastore.(.+).amazonaws.com")), - ("eks", re.compile("https?://eks.(.+).amazonaws.com")), - ("efs", re.compile("https?://elasticfilesystem.(.+).amazonaws.com")), - ("efs", re.compile("https?://elasticfilesystem.amazonaws.com")), - ("wafv2", re.compile("https?://wafv2.(.+).amazonaws.com")), ] diff --git a/scripts/update_backend_index.py b/scripts/update_backend_index.py index c05b6fe88..a839bb6e0 100755 --- a/scripts/update_backend_index.py +++ b/scripts/update_backend_index.py @@ -15,9 +15,13 @@ output_file = "moto/backend_index.py" script_dir = os.path.dirname(os.path.abspath(__file__)) output_path = os.path.join(script_dir, "..", output_file) +IGNORE_BACKENDS = ["moto_api", "instance_metadata"] + def iter_backend_url_patterns(): for backend, (module_name, _) in backends.BACKENDS.items(): + if backend in IGNORE_BACKENDS: + break # otherwise we need to import the module url_module_name = f"moto.{module_name}.urls" module = importlib.import_module(url_module_name)