# 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.elasticbeanstalk import WebServer # noqa: F401
from .validators.elasticbeanstalk import WebServerType # noqa: F401
from .validators.elasticbeanstalk import Worker # noqa: F401
from .validators.elasticbeanstalk import WorkerType # noqa: F401
from .validators.elasticbeanstalk import validate_tier_name, validate_tier_type
[docs]class MaxAgeRule(AWSProperty):
"""
`MaxAgeRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html>`__
"""
props: PropsDictType = {
"DeleteSourceFromS3": (boolean, False),
"Enabled": (boolean, False),
"MaxAgeInDays": (integer, False),
}
[docs]class MaxCountRule(AWSProperty):
"""
`MaxCountRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html>`__
"""
props: PropsDictType = {
"DeleteSourceFromS3": (boolean, False),
"Enabled": (boolean, False),
"MaxCount": (integer, False),
}
[docs]class ApplicationVersionLifecycleConfig(AWSProperty):
"""
`ApplicationVersionLifecycleConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html>`__
"""
props: PropsDictType = {
"MaxAgeRule": (MaxAgeRule, False),
"MaxCountRule": (MaxCountRule, False),
}
[docs]class ApplicationResourceLifecycleConfig(AWSProperty):
"""
`ApplicationResourceLifecycleConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html>`__
"""
props: PropsDictType = {
"ServiceRole": (str, False),
"VersionLifecycleConfig": (ApplicationVersionLifecycleConfig, False),
}
[docs]class Application(AWSObject):
"""
`Application <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-application.html>`__
"""
resource_type = "AWS::ElasticBeanstalk::Application"
props: PropsDictType = {
"ApplicationName": (str, False),
"Description": (str, False),
"ResourceLifecycleConfig": (ApplicationResourceLifecycleConfig, False),
}
[docs]class SourceBundle(AWSProperty):
"""
`SourceBundle <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html>`__
"""
props: PropsDictType = {
"S3Bucket": (str, True),
"S3Key": (str, True),
}
[docs]class ApplicationVersion(AWSObject):
"""
`ApplicationVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-applicationversion.html>`__
"""
resource_type = "AWS::ElasticBeanstalk::ApplicationVersion"
props: PropsDictType = {
"ApplicationName": (str, True),
"Description": (str, False),
"SourceBundle": (SourceBundle, True),
}
[docs]class OptionSetting(AWSProperty):
"""
`OptionSetting <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html>`__
"""
props: PropsDictType = {
"Namespace": (str, True),
"OptionName": (str, True),
"ResourceName": (str, False),
"Value": (str, False),
}
[docs]class SourceConfiguration(AWSProperty):
"""
`SourceConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html>`__
"""
props: PropsDictType = {
"ApplicationName": (str, True),
"TemplateName": (str, True),
}
[docs]class ConfigurationTemplate(AWSObject):
"""
`ConfigurationTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html>`__
"""
resource_type = "AWS::ElasticBeanstalk::ConfigurationTemplate"
props: PropsDictType = {
"ApplicationName": (str, True),
"Description": (str, False),
"EnvironmentId": (str, False),
"OptionSettings": ([OptionSetting], False),
"PlatformArn": (str, False),
"SolutionStackName": (str, False),
"SourceConfiguration": (SourceConfiguration, False),
}
[docs]class Tier(AWSProperty):
"""
`Tier <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html>`__
"""
props: PropsDictType = {
"Name": (validate_tier_name, False),
"Type": (validate_tier_type, False),
"Version": (str, False),
}
[docs]class Environment(AWSObject):
"""
`Environment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html>`__
"""
resource_type = "AWS::ElasticBeanstalk::Environment"
props: PropsDictType = {
"ApplicationName": (str, True),
"CNAMEPrefix": (str, False),
"Description": (str, False),
"EnvironmentName": (str, False),
"OperationsRole": (str, False),
"OptionSettings": ([OptionSetting], False),
"PlatformArn": (str, False),
"SolutionStackName": (str, False),
"Tags": (Tags, False),
"TemplateName": (str, False),
"Tier": (Tier, False),
"VersionLabel": (str, False),
}