# 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.athena import validate_encryptionoption, validate_workgroup_state
[docs]class CapacityAssignment(AWSProperty):
"""
`CapacityAssignment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-capacityreservation-capacityassignment.html>`__
"""
props: PropsDictType = {
"WorkgroupNames": ([str], True),
}
[docs]class CapacityAssignmentConfiguration(AWSProperty):
"""
`CapacityAssignmentConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-capacityreservation-capacityassignmentconfiguration.html>`__
"""
props: PropsDictType = {
"CapacityAssignments": ([CapacityAssignment], True),
}
[docs]class CapacityReservation(AWSObject):
"""
`CapacityReservation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-capacityreservation.html>`__
"""
resource_type = "AWS::Athena::CapacityReservation"
props: PropsDictType = {
"CapacityAssignmentConfiguration": (CapacityAssignmentConfiguration, False),
"Name": (str, True),
"Tags": (Tags, False),
"TargetDpus": (integer, True),
}
[docs]class DataCatalog(AWSObject):
"""
`DataCatalog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html>`__
"""
resource_type = "AWS::Athena::DataCatalog"
props: PropsDictType = {
"Description": (str, False),
"Name": (str, True),
"Parameters": (dict, False),
"Tags": (Tags, False),
"Type": (str, True),
}
[docs]class NamedQuery(AWSObject):
"""
`NamedQuery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html>`__
"""
resource_type = "AWS::Athena::NamedQuery"
props: PropsDictType = {
"Database": (str, True),
"Description": (str, False),
"Name": (str, False),
"QueryString": (str, True),
"WorkGroup": (str, False),
}
[docs]class PreparedStatement(AWSObject):
"""
`PreparedStatement <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html>`__
"""
resource_type = "AWS::Athena::PreparedStatement"
props: PropsDictType = {
"Description": (str, False),
"QueryStatement": (str, True),
"StatementName": (str, True),
"WorkGroup": (str, True),
}
[docs]class CustomerContentEncryptionConfiguration(AWSProperty):
"""
`CustomerContentEncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-customercontentencryptionconfiguration.html>`__
"""
props: PropsDictType = {
"KmsKey": (str, True),
}
[docs]class EngineVersion(AWSProperty):
"""
`EngineVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html>`__
"""
props: PropsDictType = {
"EffectiveEngineVersion": (str, False),
"SelectedEngineVersion": (str, False),
}
[docs]class AclConfiguration(AWSProperty):
"""
`AclConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-aclconfiguration.html>`__
"""
props: PropsDictType = {
"S3AclOption": (str, True),
}
[docs]class EncryptionConfiguration(AWSProperty):
"""
`EncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html>`__
"""
props: PropsDictType = {
"EncryptionOption": (validate_encryptionoption, True),
"KmsKey": (str, False),
}
[docs]class ResultConfiguration(AWSProperty):
"""
`ResultConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html>`__
"""
props: PropsDictType = {
"AclConfiguration": (AclConfiguration, False),
"EncryptionConfiguration": (EncryptionConfiguration, False),
"ExpectedBucketOwner": (str, False),
"OutputLocation": (str, False),
}
[docs]class WorkGroupConfiguration(AWSProperty):
"""
`WorkGroupConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html>`__
"""
props: PropsDictType = {
"AdditionalConfiguration": (str, False),
"BytesScannedCutoffPerQuery": (integer, False),
"CustomerContentEncryptionConfiguration": (
CustomerContentEncryptionConfiguration,
False,
),
"EnforceWorkGroupConfiguration": (boolean, False),
"EngineVersion": (EngineVersion, False),
"ExecutionRole": (str, False),
"PublishCloudWatchMetricsEnabled": (boolean, False),
"RequesterPaysEnabled": (boolean, False),
"ResultConfiguration": (ResultConfiguration, False),
}
[docs]class WorkGroup(AWSObject):
"""
`WorkGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html>`__
"""
resource_type = "AWS::Athena::WorkGroup"
props: PropsDictType = {
"Description": (str, False),
"Name": (str, True),
"RecursiveDeleteOption": (boolean, False),
"State": (validate_workgroup_state, False),
"Tags": (Tags, False),
"WorkGroupConfiguration": (WorkGroupConfiguration, False),
}