Source code for cottonformation.core.regex

# -*- coding: utf-8 -*-

import re
import enum

_p_aws_account_id = re.compile("\d{12,12}")
_p_aws_service_domain = re.compile("[a-z0-9\-]{2,12}\.amazonaws\.com")
_p_s3_uri = re.compile("s3://[a-zA-Z0-9-.]{3,63}[\d\D]*")


[docs]class ServiceEnum(enum.Enum): """ .. versionadded:: verion 0.0.6 """ aws_account_id = "aws_account_id" aws_service_domain = "aws_service_domain" aws_service_endpoint = "aws_service_endpoint" arn = "arn" iam_arn = "iam_arn" s3_arn = "s3_arn" s3_uri = "s3_uri" @classmethod def detect(cls, s: str) -> 'ServiceEnum': # pragma: no cover raise NotImplementedError @classmethod def is_aws_account_id(cls, s: str) -> bool: return re.fullmatch(_p_aws_account_id, s) is not None @classmethod def is_aws_service_domain(cls, s: str) -> bool: return re.fullmatch(_p_aws_service_domain, s) is not None @classmethod def is_s3_uri(cls, s: str) -> bool: return re.fullmatch(_p_s3_uri, s) is not None