Source code for cottonformation.core.constant
# -*- coding: utf-8 -*-
[docs]class AttrMeta:
"""
Attribute metadata field keys. For better attrs integration.
"""
PROPERTY_NAME = "p_name"
DATA = "p_data"
TAGS = "p_Tags"
[docs]class IntrinsicFunction:
"""
Intrinsic Function constant value.
"""
REF = "Ref"
BASE64 = "Fn::Base64"
CIDR = "Fn::Cidr"
FIND_IN_MAP = "Fn::FindInMap"
GET_ATT = "Fn::GetAtt"
GET_AZS = "Fn::GetAZs"
IMPORT_VALUE = "Fn::ImportValue"
JOIN = "Fn::Join"
SELECT = "Fn::Select"
SPLIT = "Fn::Split"
SUB = "Fn::Sub"
TRANSFORM = "Fn::Transform"
[docs]class ConditionFunction:
"""
Condition Function constant value.
"""
AND = "Fn::And"
EQUALS = "Fn::Equals"
IF = "Fn::If"
NOT = "Fn::Not"
OR = "Fn::Or"
[docs]class ResourceAttribute:
"""
Resource Attribute constant value
"""
CREATION_POLICY = "CreationPolicy"
DELETION_POLICY = "DeletionPolicy"
DEPENDS_ON = "DependsOn"
METADATA = "Metadata"
UPDATE_POLICY = "UpdatePolicy"
UPDATE_REPLACE_POLICY = "UpdateReplacePolicy"
CONDITION = "Condition"
[docs]class DeletionPolicyEnum:
"""
Ref: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
.. versionadded:: 1.0.1
"""
Delete = "Delete"
Retain = "Retain"
Snapshot = "Snapshot"
[docs]class UpdateReplacePolicyEnum:
"""
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html
.. versionadded:: 1.0.1
"""
Delete = "Delete"
Retain = "Retain"
Snapshot = "Snapshot"
[docs]class CloudFomation:
"""
Used in cloudformation template as Keys
"""
Version = "AWSTemplateFormatVersion"
Description = "AWSTemplateFormatVersion"
Metadata = "Metadata"
Parameters = "Parameters"
Resources = "Resources"
Outputs = "Outputs"
Rules = "Rules"
Mappings = "Mappings"
Conditions = "Conditions"
Transform = "Transform"
Type = "Type"
Properties = "Properties"
[docs]class PseudoParameter:
"""
Reference:
- Pseudo Parameter: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html
"""
AWS_ACCOUNT_ID = "AWS::AccountId"
AWS_NOTIFICATION_ARNS = "AWS::NotificationARNs"
AWS_NO_VALUE = "AWS::NoValue"
AWS_PARTITION = "AWS::Partition"
AWS_REGION = "AWS::Region"
AWS_STACK_ID = "AWS::StackId"
AWS_STACK_NAME = "AWS::StackName"
AWS_URL_SUFFIX = "AWS::URLSuffix"
def _collect_enum(klass):
return [v for k, v in klass.__dict__.items() if not k.startswith("_")]
class Collections:
INTRINSIC_FUNCTION_LIST = _collect_enum(IntrinsicFunction)
INTRINSIC_FUNCTION_SET = set(INTRINSIC_FUNCTION_LIST)
RESOURCE_ATTRIBUTE_LIST = _collect_enum(ResourceAttribute)
RESOURCE_ATTRIBUTE_SET = set(RESOURCE_ATTRIBUTE_LIST)
PARAMETER_TYPE_ENUM_SET = set()
class MetaData:
CTF = "cottonformation"
Version = "version"
DependsOn = "depends_on"
Parameters = "parameters"
Resources = "resources"
Mappings = "mappings"
Conditions = "conditions"