# Copyright (c) 2012-2022, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, integer
from .validators.cloudformation import Authentication # noqa: F401
from .validators.cloudformation import AuthenticationBlock # noqa: F401
from .validators.cloudformation import AWSCustomObject # noqa: F401
from .validators.cloudformation import Init # noqa: F401
from .validators.cloudformation import InitConfig # noqa: F401
from .validators.cloudformation import InitConfigSets # noqa: F401
from .validators.cloudformation import InitFile # noqa: F401
from .validators.cloudformation import InitFileContext # noqa: F401
from .validators.cloudformation import InitFiles # noqa: F401
from .validators.cloudformation import InitService # noqa: F401
from .validators.cloudformation import InitServices # noqa: F401
from .validators.cloudformation import Metadata # noqa: F401
from .validators.cloudformation import validate_int_to_str, validate_wait_condition
[docs]class CustomResource(AWSObject):
"""
`CustomResource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html>`__
"""
resource_type = "AWS::CloudFormation::CustomResource"
props: PropsDictType = {
"ServiceToken": (str, True),
}
[docs]class HookDefaultVersion(AWSObject):
"""
`HookDefaultVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html>`__
"""
resource_type = "AWS::CloudFormation::HookDefaultVersion"
props: PropsDictType = {
"TypeName": (str, False),
"TypeVersionArn": (str, False),
"VersionId": (str, False),
}
[docs]class HookTypeConfig(AWSObject):
"""
`HookTypeConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html>`__
"""
resource_type = "AWS::CloudFormation::HookTypeConfig"
props: PropsDictType = {
"Configuration": (str, True),
"ConfigurationAlias": (str, False),
"TypeArn": (str, False),
"TypeName": (str, False),
}
[docs]class LoggingConfig(AWSProperty):
"""
`LoggingConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html>`__
"""
props: PropsDictType = {
"LogGroupName": (str, False),
"LogRoleArn": (str, False),
}
[docs]class HookVersion(AWSObject):
"""
`HookVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html>`__
"""
resource_type = "AWS::CloudFormation::HookVersion"
props: PropsDictType = {
"ExecutionRoleArn": (str, False),
"LoggingConfig": (LoggingConfig, False),
"SchemaHandlerPackage": (str, True),
"TypeName": (str, True),
}
[docs]class Macro(AWSObject):
"""
`Macro <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html>`__
"""
resource_type = "AWS::CloudFormation::Macro"
props: PropsDictType = {
"Description": (str, False),
"FunctionName": (str, True),
"LogGroupName": (str, False),
"LogRoleARN": (str, False),
"Name": (str, True),
}
[docs]class ModuleDefaultVersion(AWSObject):
"""
`ModuleDefaultVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html>`__
"""
resource_type = "AWS::CloudFormation::ModuleDefaultVersion"
props: PropsDictType = {
"Arn": (str, False),
"ModuleName": (str, False),
"VersionId": (str, False),
}
[docs]class ModuleVersion(AWSObject):
"""
`ModuleVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html>`__
"""
resource_type = "AWS::CloudFormation::ModuleVersion"
props: PropsDictType = {
"ModuleName": (str, True),
"ModulePackage": (str, True),
}
[docs]class PublicTypeVersion(AWSObject):
"""
`PublicTypeVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html>`__
"""
resource_type = "AWS::CloudFormation::PublicTypeVersion"
props: PropsDictType = {
"Arn": (str, False),
"LogDeliveryBucket": (str, False),
"PublicVersionNumber": (str, False),
"Type": (str, False),
"TypeName": (str, False),
}
[docs]class Publisher(AWSObject):
"""
`Publisher <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html>`__
"""
resource_type = "AWS::CloudFormation::Publisher"
props: PropsDictType = {
"AcceptTermsAndConditions": (boolean, True),
"ConnectionArn": (str, False),
}
[docs]class ResourceDefaultVersion(AWSObject):
"""
`ResourceDefaultVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html>`__
"""
resource_type = "AWS::CloudFormation::ResourceDefaultVersion"
props: PropsDictType = {
"TypeName": (str, False),
"TypeVersionArn": (str, False),
"VersionId": (str, False),
}
[docs]class ResourceVersion(AWSObject):
"""
`ResourceVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html>`__
"""
resource_type = "AWS::CloudFormation::ResourceVersion"
props: PropsDictType = {
"ExecutionRoleArn": (str, False),
"LoggingConfig": (LoggingConfig, False),
"SchemaHandlerPackage": (str, True),
"TypeName": (str, True),
}
[docs]class Stack(AWSObject):
"""
`Stack <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html>`__
"""
resource_type = "AWS::CloudFormation::Stack"
props: PropsDictType = {
"NotificationARNs": ([str], False),
"Parameters": (dict, False),
"Tags": (Tags, False),
"TemplateURL": (str, True),
"TimeoutInMinutes": (integer, False),
}
[docs]class AutoDeployment(AWSProperty):
"""
`AutoDeployment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
"RetainStacksOnAccountRemoval": (boolean, False),
}
[docs]class ManagedExecution(AWSProperty):
"""
`ManagedExecution <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-managedexecution.html>`__
"""
props: PropsDictType = {
"Active": (boolean, False),
}
[docs]class OperationPreferences(AWSProperty):
"""
`OperationPreferences <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html>`__
"""
props: PropsDictType = {
"FailureToleranceCount": (integer, False),
"FailureTolerancePercentage": (integer, False),
"MaxConcurrentCount": (integer, False),
"MaxConcurrentPercentage": (integer, False),
"RegionConcurrencyType": (str, False),
"RegionOrder": ([str], False),
}
[docs]class Parameter(AWSProperty):
"""
`Parameter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html>`__
"""
props: PropsDictType = {
"ParameterKey": (str, True),
"ParameterValue": (str, True),
}
[docs]class DeploymentTargets(AWSProperty):
"""
`DeploymentTargets <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html>`__
"""
props: PropsDictType = {
"AccountFilterType": (str, False),
"Accounts": ([str], False),
"AccountsUrl": (str, False),
"OrganizationalUnitIds": ([str], False),
}
[docs]class StackInstances(AWSProperty):
"""
`StackInstances <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html>`__
"""
props: PropsDictType = {
"DeploymentTargets": (DeploymentTargets, True),
"ParameterOverrides": ([Parameter], False),
"Regions": ([str], True),
}
[docs]class StackSet(AWSObject):
"""
`StackSet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html>`__
"""
resource_type = "AWS::CloudFormation::StackSet"
props: PropsDictType = {
"AdministrationRoleARN": (str, False),
"AutoDeployment": (AutoDeployment, False),
"CallAs": (str, False),
"Capabilities": ([str], False),
"Description": (str, False),
"ExecutionRoleName": (str, False),
"ManagedExecution": (ManagedExecution, False),
"OperationPreferences": (OperationPreferences, False),
"Parameters": ([Parameter], False),
"PermissionModel": (str, True),
"StackInstancesGroup": ([StackInstances], False),
"StackSetName": (str, True),
"Tags": (Tags, False),
"TemplateBody": (str, False),
"TemplateURL": (str, False),
}
[docs]class TypeActivation(AWSObject):
"""
`TypeActivation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html>`__
"""
resource_type = "AWS::CloudFormation::TypeActivation"
props: PropsDictType = {
"AutoUpdate": (boolean, False),
"ExecutionRoleArn": (str, False),
"LoggingConfig": (LoggingConfig, False),
"MajorVersion": (str, False),
"PublicTypeArn": (str, False),
"PublisherId": (str, False),
"Type": (str, False),
"TypeName": (str, False),
"TypeNameAlias": (str, False),
"VersionBump": (str, False),
}
[docs]class WaitCondition(AWSObject):
"""
`WaitCondition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html>`__
"""
resource_type = "AWS::CloudFormation::WaitCondition"
props: PropsDictType = {
"Count": (integer, False),
"Handle": (str, False),
"Timeout": (validate_int_to_str, False),
}
[docs] def validate(self):
validate_wait_condition(self)
[docs]class WaitConditionHandle(AWSObject):
"""
`WaitConditionHandle <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html>`__
"""
resource_type = "AWS::CloudFormation::WaitConditionHandle"
props: PropsDictType = {}