# Copyright (c) 2012-2025, 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
[docs]class EMREKSConfiguration(AWSProperty):
"""
`EMREKSConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-emreksconfiguration.html>`__
"""
props: PropsDictType = {
"Classification": (str, True),
"Configurations": ([object], False),
"Properties": (dict, False),
}
[docs]class CloudWatchMonitoringConfiguration(AWSProperty):
"""
`CloudWatchMonitoringConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-cloudwatchmonitoringconfiguration.html>`__
"""
props: PropsDictType = {
"LogGroupName": (str, True),
"LogStreamNamePrefix": (str, False),
}
[docs]class ContainerLogRotationConfiguration(AWSProperty):
"""
`ContainerLogRotationConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-containerlogrotationconfiguration.html>`__
"""
props: PropsDictType = {
"MaxFilesToKeep": (integer, True),
"RotationSize": (str, True),
}
[docs]class S3MonitoringConfiguration(AWSProperty):
"""
`S3MonitoringConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-s3monitoringconfiguration.html>`__
"""
props: PropsDictType = {
"LogUri": (str, True),
}
[docs]class MonitoringConfiguration(AWSProperty):
"""
`MonitoringConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html>`__
"""
props: PropsDictType = {
"CloudWatchMonitoringConfiguration": (CloudWatchMonitoringConfiguration, False),
"ContainerLogRotationConfiguration": (ContainerLogRotationConfiguration, False),
"PersistentAppUI": (str, False),
"S3MonitoringConfiguration": (S3MonitoringConfiguration, False),
}
[docs]class ConfigurationOverrides(AWSProperty):
"""
`ConfigurationOverrides <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-configurationoverrides.html>`__
"""
props: PropsDictType = {
"ApplicationConfiguration": ([EMREKSConfiguration], False),
"MonitoringConfiguration": (MonitoringConfiguration, False),
}
[docs]class Endpoint(AWSObject):
"""
`Endpoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html>`__
"""
resource_type = "AWS::EMRContainers::Endpoint"
props: PropsDictType = {
"ConfigurationOverrides": (ConfigurationOverrides, False),
"ExecutionRoleArn": (str, True),
"Name": (str, False),
"ReleaseLabel": (str, True),
"Tags": (Tags, False),
"Type": (str, True),
"VirtualClusterId": (str, True),
}
[docs]class EksInfo(AWSProperty):
"""
`EksInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html>`__
"""
props: PropsDictType = {
"Namespace": (str, True),
}
[docs]class ContainerInfo(AWSProperty):
"""
`ContainerInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html>`__
"""
props: PropsDictType = {
"EksInfo": (EksInfo, True),
}
[docs]class ContainerProvider(AWSProperty):
"""
`ContainerProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html>`__
"""
props: PropsDictType = {
"Id": (str, True),
"Info": (ContainerInfo, True),
"Type": (str, True),
}
[docs]class IAMConfiguration(AWSProperty):
"""
`IAMConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-iamconfiguration.html>`__
"""
props: PropsDictType = {
"SystemRole": (str, False),
}
[docs]class IdentityCenterConfiguration(AWSProperty):
"""
`IdentityCenterConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-identitycenterconfiguration.html>`__
"""
props: PropsDictType = {
"EnableIdentityCenter": (boolean, False),
"IdentityCenterApplicationAssignmentRequired": (boolean, False),
"IdentityCenterInstanceARN": (str, False),
}
[docs]class AuthenticationConfiguration(AWSProperty):
"""
`AuthenticationConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authenticationconfiguration.html>`__
"""
props: PropsDictType = {
"IAMConfiguration": (IAMConfiguration, False),
"IdentityCenterConfiguration": (IdentityCenterConfiguration, False),
}
[docs]class SecureNamespaceInfo(AWSProperty):
"""
`SecureNamespaceInfo <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securenamespaceinfo.html>`__
"""
props: PropsDictType = {
"ClusterId": (str, False),
"Namespace": (str, False),
}
[docs]class AuthorizationConfiguration(AWSProperty):
"""
`AuthorizationConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authorizationconfiguration.html>`__
"""
props: PropsDictType = {
"LakeFormationConfiguration": (LakeFormationConfiguration, False),
}
[docs]class LocalDiskEncryptionConfiguration(AWSProperty):
"""
`LocalDiskEncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-localdiskencryptionconfiguration.html>`__
"""
props: PropsDictType = {
"AwsKmsKeyId": (str, False),
"EncryptionKeyProviderType": (str, False),
}
[docs]class S3EncryptionConfiguration(AWSProperty):
"""
`S3EncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-s3encryptionconfiguration.html>`__
"""
props: PropsDictType = {
"EncryptionOption": (str, False),
"KMSKeyId": (str, False),
}
[docs]class AtRestEncryptionConfiguration(AWSProperty):
"""
`AtRestEncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-atrestencryptionconfiguration.html>`__
"""
props: PropsDictType = {
"LocalDiskEncryptionConfiguration": (LocalDiskEncryptionConfiguration, False),
"S3EncryptionConfiguration": (S3EncryptionConfiguration, False),
}
[docs]class TLSCertificateConfiguration(AWSProperty):
"""
`TLSCertificateConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-tlscertificateconfiguration.html>`__
"""
props: PropsDictType = {
"CertificateProviderType": (str, False),
"PrivateKeySecretArn": (str, False),
"PublicKeySecretArn": (str, False),
}
[docs]class InTransitEncryptionConfiguration(AWSProperty):
"""
`InTransitEncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-intransitencryptionconfiguration.html>`__
"""
props: PropsDictType = {
"TLSCertificateConfiguration": (TLSCertificateConfiguration, False),
}
[docs]class EncryptionConfiguration(AWSProperty):
"""
`EncryptionConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-encryptionconfiguration.html>`__
"""
props: PropsDictType = {
"AtRestEncryptionConfiguration": (AtRestEncryptionConfiguration, False),
"InTransitEncryptionConfiguration": (InTransitEncryptionConfiguration, False),
}
[docs]class SecurityConfigurationData(AWSProperty):
"""
`SecurityConfigurationData <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securityconfigurationdata.html>`__
"""
props: PropsDictType = {
"AuthenticationConfiguration": (AuthenticationConfiguration, False),
"AuthorizationConfiguration": (AuthorizationConfiguration, False),
"EncryptionConfiguration": (EncryptionConfiguration, False),
}
[docs]class SecurityConfiguration(AWSObject):
"""
`SecurityConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html>`__
"""
resource_type = "AWS::EMRContainers::SecurityConfiguration"
props: PropsDictType = {
"ContainerProvider": (ContainerProvider, False),
"Name": (str, False),
"SecurityConfigurationData": (SecurityConfigurationData, True),
"Tags": (Tags, False),
}
[docs]class VirtualCluster(AWSObject):
"""
`VirtualCluster <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html>`__
"""
resource_type = "AWS::EMRContainers::VirtualCluster"
props: PropsDictType = {
"ContainerProvider": (ContainerProvider, True),
"Name": (str, True),
"SecurityConfigurationId": (str, False),
"Tags": (Tags, False),
}
[docs]class Certificate(AWSProperty):
"""
`Certificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-certificate.html>`__
"""
props: PropsDictType = {
"CertificateArn": (str, False),
"CertificateData": (str, False),
}