from collections import namedtuple Arn = namedtuple( "Arn", ["account", "region", "service", "resource_type", "resource_id"] ) def parse_arn(arn: str) -> Arn: # http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html # this method needs probably some more fine tuning, # when also other targets are supported _, _, service, region, account, resource = arn.split(":", 5) if ":" in resource and "/" in resource: if resource.index(":") < resource.index("/"): resource_type, resource_id = resource.split(":", 1) else: resource_type, resource_id = resource.split("/", 1) elif ":" in resource: resource_type, resource_id = resource.split(":", 1) elif "/" in resource: resource_type, resource_id = resource.split("/", 1) else: resource_type = None resource_id = resource return Arn( account=account, region=region, service=service, resource_type=resource_type, resource_id=resource_id, )
Memory