import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { EndpointReference, IEndpointRef, ISecurityConfigurationRef, IVirtualClusterRef, SecurityConfigurationReference, VirtualClusterReference } from "../../interfaces/generated/aws-emrcontainers-interfaces.generated";
/**
 * The `AWS::EMRContainers::VirtualCluster` resource specifies a virtual cluster.
 *
 * A virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list, and delete virtual clusters. They do not consume any additional resources in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.
 *
 * @cloudformationResource AWS::EMRContainers::VirtualCluster
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html
 */
export declare class CfnVirtualCluster extends cdk.CfnResource implements cdk.IInspectable, IVirtualClusterRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnVirtualCluster from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnVirtualCluster;
    /**
     * Checks whether the given object is a CfnVirtualCluster
     */
    static isCfnVirtualCluster(x: any): x is CfnVirtualCluster;
    /**
     * Creates a new IVirtualClusterRef from an ARN
     */
    static fromVirtualClusterArn(scope: constructs.Construct, id: string, arn: string): IVirtualClusterRef;
    /**
     * Creates a new IVirtualClusterRef from a virtualClusterId
     */
    static fromVirtualClusterId(scope: constructs.Construct, id: string, virtualClusterId: string): IVirtualClusterRef;
    static arnForVirtualCluster(resource: IVirtualClusterRef): string;
    /**
     * The container provider of the virtual cluster.
     */
    private _containerProvider;
    /**
     * The name of the virtual cluster.
     */
    private _name;
    /**
     * The ID of the security configuration.
     */
    private _securityConfigurationId?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    private _tagsRaw?;
    /**
     * Create a new `AWS::EMRContainers::VirtualCluster`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnVirtualClusterProps);
    get virtualClusterRef(): VirtualClusterReference;
    /**
     * The container provider of the virtual cluster.
     */
    get containerProvider(): CfnVirtualCluster.ContainerProviderProperty | cdk.IResolvable;
    /**
     * The container provider of the virtual cluster.
     */
    set containerProvider(value: CfnVirtualCluster.ContainerProviderProperty | cdk.IResolvable);
    /**
     * The name of the virtual cluster.
     */
    get name(): string;
    /**
     * The name of the virtual cluster.
     */
    set name(value: string);
    /**
     * The ID of the security configuration.
     */
    get securityConfigurationId(): string | undefined;
    /**
     * The ID of the security configuration.
     */
    set securityConfigurationId(value: string | undefined);
    /**
     * An array of key-value pairs to apply to this resource.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) of the project, such as `arn:aws:emr-containers:us-east-1:123456789012:/virtualclusters/ab4rp1abcs8xz47n3x0example` .
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The ID of the virtual cluster, such as `ab4rp1abcs8xz47n3x0example` .
     *
     * @cloudformationAttribute Id
     */
    get attrId(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnVirtualCluster {
    /**
     * The information about the container provider.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html
     */
    interface ContainerProviderProperty {
        /**
         * The ID of the container cluster.
         *
         * *Minimum* : 1
         *
         * *Maximum* : 100
         *
         * *Pattern* : `^[0-9A-Za-z][A-Za-z0-9\-_]*`
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-id
         */
        readonly id: string;
        /**
         * The information about the container cluster.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-info
         */
        readonly info: CfnVirtualCluster.ContainerInfoProperty | cdk.IResolvable;
        /**
         * The type of the container provider.
         *
         * Amazon EKS is the only supported type as of now.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-type
         */
        readonly type: string;
    }
    /**
     * The information about the container used for a job run or a managed endpoint.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html
     */
    interface ContainerInfoProperty {
        /**
         * The information about the Amazon EKS cluster.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html#cfn-emrcontainers-virtualcluster-containerinfo-eksinfo
         */
        readonly eksInfo: CfnVirtualCluster.EksInfoProperty | cdk.IResolvable;
    }
    /**
     * The information about the Amazon EKS cluster.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html
     */
    interface EksInfoProperty {
        /**
         * The namespaces of the EKS cluster.
         *
         * *Minimum* : 1
         *
         * *Maximum* : 63
         *
         * *Pattern* : `[a-z0-9]([-a-z0-9]*[a-z0-9])?`
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html#cfn-emrcontainers-virtualcluster-eksinfo-namespace
         */
        readonly namespace: string;
    }
}
/**
 * Properties for defining a `CfnVirtualCluster`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html
 */
export interface CfnVirtualClusterProps {
    /**
     * The container provider of the virtual cluster.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-containerprovider
     */
    readonly containerProvider: CfnVirtualCluster.ContainerProviderProperty | cdk.IResolvable;
    /**
     * The name of the virtual cluster.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-name
     */
    readonly name: string;
    /**
     * The ID of the security configuration.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-securityconfigurationid
     */
    readonly securityConfigurationId?: string;
    /**
     * An array of key-value pairs to apply to this resource.
     *
     * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Resource Schema of AWS::EMRContainers::Endpoint Type.
 *
 * @cloudformationResource AWS::EMRContainers::Endpoint
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html
 */
export declare class CfnEndpoint extends cdk.CfnResource implements cdk.IInspectable, IEndpointRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnEndpoint from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnEndpoint;
    /**
     * Checks whether the given object is a CfnEndpoint
     */
    static isCfnEndpoint(x: any): x is CfnEndpoint;
    static arnForEndpoint(resource: IEndpointRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    private _configurationOverrides?;
    /**
     * The execution role ARN for the managed endpoint.
     */
    private _executionRoleArn;
    /**
     * The name of the managed endpoint.
     */
    private _name?;
    /**
     * The Amazon EMR release label.
     */
    private _releaseLabel;
    /**
     * An array of key-value pairs to apply to this managed endpoint.
     */
    private _tags?;
    /**
     * The type of the managed endpoint.
     */
    private _type;
    /**
     * The ID of the virtual cluster for which the managed endpoint is created.
     */
    private _virtualClusterId;
    /**
     * Create a new `AWS::EMRContainers::Endpoint`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnEndpointProps);
    get endpointRef(): EndpointReference;
    get configurationOverrides(): CfnEndpoint.ConfigurationOverridesProperty | cdk.IResolvable | undefined;
    set configurationOverrides(value: CfnEndpoint.ConfigurationOverridesProperty | cdk.IResolvable | undefined);
    /**
     * The execution role ARN for the managed endpoint.
     */
    get executionRoleArn(): string;
    /**
     * The execution role ARN for the managed endpoint.
     */
    set executionRoleArn(value: string);
    /**
     * The name of the managed endpoint.
     */
    get name(): string | undefined;
    /**
     * The name of the managed endpoint.
     */
    set name(value: string | undefined);
    /**
     * The Amazon EMR release label.
     */
    get releaseLabel(): string;
    /**
     * The Amazon EMR release label.
     */
    set releaseLabel(value: string);
    /**
     * An array of key-value pairs to apply to this managed endpoint.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key-value pairs to apply to this managed endpoint.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The type of the managed endpoint.
     */
    get type(): string;
    /**
     * The type of the managed endpoint.
     */
    set type(value: string);
    /**
     * The ID of the virtual cluster for which the managed endpoint is created.
     */
    get virtualClusterId(): string;
    /**
     * The ID of the virtual cluster for which the managed endpoint is created.
     */
    set virtualClusterId(value: string);
    /**
     * The ARN of the managed endpoint.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * @cloudformationAttribute CertificateAuthority
     */
    get attrCertificateAuthority(): cdk.IResolvable;
    /**
     * The date and time when the managed endpoint was created.
     *
     * @cloudformationAttribute CreatedAt
     */
    get attrCreatedAt(): string;
    /**
     * The reason for a failed managed endpoint.
     *
     * @cloudformationAttribute FailureReason
     */
    get attrFailureReason(): string;
    /**
     * The ID of the managed endpoint.
     *
     * @cloudformationAttribute Id
     */
    get attrId(): string;
    /**
     * The security group associated with the managed endpoint.
     *
     * @cloudformationAttribute SecurityGroup
     */
    get attrSecurityGroup(): string;
    /**
     * The server URL of the managed endpoint.
     *
     * @cloudformationAttribute ServerUrl
     */
    get attrServerUrl(): string;
    /**
     * The state of the managed endpoint.
     *
     * @cloudformationAttribute State
     */
    get attrState(): string;
    /**
     * Additional details about the state of the managed endpoint.
     *
     * @cloudformationAttribute StateDetails
     */
    get attrStateDetails(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnEndpoint {
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-configurationoverrides.html
     */
    interface ConfigurationOverridesProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-configurationoverrides.html#cfn-emrcontainers-endpoint-configurationoverrides-applicationconfiguration
         */
        readonly applicationConfiguration?: Array<CfnEndpoint.EMREKSConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-configurationoverrides.html#cfn-emrcontainers-endpoint-configurationoverrides-monitoringconfiguration
         */
        readonly monitoringConfiguration?: cdk.IResolvable | CfnEndpoint.MonitoringConfigurationProperty;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-emreksconfiguration.html
     */
    interface EMREKSConfigurationProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-emreksconfiguration.html#cfn-emrcontainers-endpoint-emreksconfiguration-classification
         */
        readonly classification: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-emreksconfiguration.html#cfn-emrcontainers-endpoint-emreksconfiguration-configurations
         */
        readonly configurations?: Array<CfnEndpoint.EMREKSConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-emreksconfiguration.html#cfn-emrcontainers-endpoint-emreksconfiguration-properties
         */
        readonly properties?: cdk.IResolvable | Record<string, string>;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html
     */
    interface MonitoringConfigurationProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html#cfn-emrcontainers-endpoint-monitoringconfiguration-cloudwatchmonitoringconfiguration
         */
        readonly cloudWatchMonitoringConfiguration?: CfnEndpoint.CloudWatchMonitoringConfigurationProperty | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html#cfn-emrcontainers-endpoint-monitoringconfiguration-containerlogrotationconfiguration
         */
        readonly containerLogRotationConfiguration?: CfnEndpoint.ContainerLogRotationConfigurationProperty | cdk.IResolvable;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html#cfn-emrcontainers-endpoint-monitoringconfiguration-persistentappui
         */
        readonly persistentAppUi?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-monitoringconfiguration.html#cfn-emrcontainers-endpoint-monitoringconfiguration-s3monitoringconfiguration
         */
        readonly s3MonitoringConfiguration?: cdk.IResolvable | CfnEndpoint.S3MonitoringConfigurationProperty;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-containerlogrotationconfiguration.html
     */
    interface ContainerLogRotationConfigurationProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-containerlogrotationconfiguration.html#cfn-emrcontainers-endpoint-containerlogrotationconfiguration-maxfilestokeep
         */
        readonly maxFilesToKeep: number;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-containerlogrotationconfiguration.html#cfn-emrcontainers-endpoint-containerlogrotationconfiguration-rotationsize
         */
        readonly rotationSize: string;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-cloudwatchmonitoringconfiguration.html
     */
    interface CloudWatchMonitoringConfigurationProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-cloudwatchmonitoringconfiguration.html#cfn-emrcontainers-endpoint-cloudwatchmonitoringconfiguration-loggroupname
         */
        readonly logGroupName: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-cloudwatchmonitoringconfiguration.html#cfn-emrcontainers-endpoint-cloudwatchmonitoringconfiguration-logstreamnameprefix
         */
        readonly logStreamNamePrefix?: string;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-s3monitoringconfiguration.html
     */
    interface S3MonitoringConfigurationProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-s3monitoringconfiguration.html#cfn-emrcontainers-endpoint-s3monitoringconfiguration-loguri
         */
        readonly logUri: string;
    }
    /**
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-certificate.html
     */
    interface CertificateProperty {
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-certificate.html#cfn-emrcontainers-endpoint-certificate-certificatearn
         */
        readonly certificateArn?: string;
        /**
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-endpoint-certificate.html#cfn-emrcontainers-endpoint-certificate-certificatedata
         */
        readonly certificateData?: string;
    }
}
/**
 * Properties for defining a `CfnEndpoint`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html
 */
export interface CfnEndpointProps {
    /**
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-configurationoverrides
     */
    readonly configurationOverrides?: CfnEndpoint.ConfigurationOverridesProperty | cdk.IResolvable;
    /**
     * The execution role ARN for the managed endpoint.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-executionrolearn
     */
    readonly executionRoleArn: string;
    /**
     * The name of the managed endpoint.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-name
     */
    readonly name?: string;
    /**
     * The Amazon EMR release label.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-releaselabel
     */
    readonly releaseLabel: string;
    /**
     * An array of key-value pairs to apply to this managed endpoint.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * The type of the managed endpoint.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-type
     */
    readonly type: string;
    /**
     * The ID of the virtual cluster for which the managed endpoint is created.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-endpoint.html#cfn-emrcontainers-endpoint-virtualclusterid
     */
    readonly virtualClusterId: string;
}
/**
 * Resource Schema of AWS::EMRContainers::SecurityConfiguration Type.
 *
 * @cloudformationResource AWS::EMRContainers::SecurityConfiguration
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html
 */
export declare class CfnSecurityConfiguration extends cdk.CfnResource implements cdk.IInspectable, ISecurityConfigurationRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnSecurityConfiguration from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSecurityConfiguration;
    /**
     * Checks whether the given object is a CfnSecurityConfiguration
     */
    static isCfnSecurityConfiguration(x: any): x is CfnSecurityConfiguration;
    static arnForSecurityConfiguration(resource: ISecurityConfigurationRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * Container provider information.
     */
    private _containerProvider?;
    /**
     * The name of the security configuration.
     */
    private _name?;
    /**
     * Security configuration data containing encryption and authorization settings.
     */
    private _securityConfigurationData;
    /**
     * An array of key-value pairs to apply to this security configuration.
     */
    private _tags?;
    /**
     * Create a new `AWS::EMRContainers::SecurityConfiguration`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnSecurityConfigurationProps);
    get securityConfigurationRef(): SecurityConfigurationReference;
    /**
     * Container provider information.
     */
    get containerProvider(): CfnSecurityConfiguration.ContainerProviderProperty | cdk.IResolvable | undefined;
    /**
     * Container provider information.
     */
    set containerProvider(value: CfnSecurityConfiguration.ContainerProviderProperty | cdk.IResolvable | undefined);
    /**
     * The name of the security configuration.
     */
    get name(): string | undefined;
    /**
     * The name of the security configuration.
     */
    set name(value: string | undefined);
    /**
     * Security configuration data containing encryption and authorization settings.
     */
    get securityConfigurationData(): cdk.IResolvable | CfnSecurityConfiguration.SecurityConfigurationDataProperty;
    /**
     * Security configuration data containing encryption and authorization settings.
     */
    set securityConfigurationData(value: cdk.IResolvable | CfnSecurityConfiguration.SecurityConfigurationDataProperty);
    /**
     * An array of key-value pairs to apply to this security configuration.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key-value pairs to apply to this security configuration.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The ARN of the security configuration.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The ID of the security configuration.
     *
     * @cloudformationAttribute Id
     */
    get attrId(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnSecurityConfiguration {
    /**
     * Container provider information.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerprovider.html
     */
    interface ContainerProviderProperty {
        /**
         * The container provider ID.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerprovider.html#cfn-emrcontainers-securityconfiguration-containerprovider-id
         */
        readonly id: string;
        /**
         * Container information.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerprovider.html#cfn-emrcontainers-securityconfiguration-containerprovider-info
         */
        readonly info?: CfnSecurityConfiguration.ContainerInfoProperty | cdk.IResolvable;
        /**
         * The container provider type.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerprovider.html#cfn-emrcontainers-securityconfiguration-containerprovider-type
         */
        readonly type: string;
    }
    /**
     * Container information.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerinfo.html
     */
    interface ContainerInfoProperty {
        /**
         * EKS information.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-containerinfo.html#cfn-emrcontainers-securityconfiguration-containerinfo-eksinfo
         */
        readonly eksInfo?: CfnSecurityConfiguration.EksInfoProperty | cdk.IResolvable;
    }
    /**
     * EKS information.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-eksinfo.html
     */
    interface EksInfoProperty {
        /**
         * The EKS namespace.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-eksinfo.html#cfn-emrcontainers-securityconfiguration-eksinfo-namespace
         */
        readonly namespace?: string;
    }
    /**
     * Security configuration data containing encryption and authorization settings.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securityconfigurationdata.html
     */
    interface SecurityConfigurationDataProperty {
        /**
         * Authentication configuration for the security configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securityconfigurationdata.html#cfn-emrcontainers-securityconfiguration-securityconfigurationdata-authenticationconfiguration
         */
        readonly authenticationConfiguration?: CfnSecurityConfiguration.AuthenticationConfigurationProperty | cdk.IResolvable;
        /**
         * Authorization configuration for the security configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securityconfigurationdata.html#cfn-emrcontainers-securityconfiguration-securityconfigurationdata-authorizationconfiguration
         */
        readonly authorizationConfiguration?: CfnSecurityConfiguration.AuthorizationConfigurationProperty | cdk.IResolvable;
        /**
         * Encryption configuration for the security configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securityconfigurationdata.html#cfn-emrcontainers-securityconfiguration-securityconfigurationdata-encryptionconfiguration
         */
        readonly encryptionConfiguration?: CfnSecurityConfiguration.EncryptionConfigurationProperty | cdk.IResolvable;
    }
    /**
     * Authorization configuration for the security configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authorizationconfiguration.html
     */
    interface AuthorizationConfigurationProperty {
        /**
         * Lake Formation configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authorizationconfiguration.html#cfn-emrcontainers-securityconfiguration-authorizationconfiguration-lakeformationconfiguration
         */
        readonly lakeFormationConfiguration?: cdk.IResolvable | CfnSecurityConfiguration.LakeFormationConfigurationProperty;
    }
    /**
     * Lake Formation configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-lakeformationconfiguration.html
     */
    interface LakeFormationConfigurationProperty {
        /**
         * The session tag to authorize Lake Formation access.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-lakeformationconfiguration.html#cfn-emrcontainers-securityconfiguration-lakeformationconfiguration-authorizedsessiontagvalue
         */
        readonly authorizedSessionTagValue?: string;
        /**
         * Whether query access control is enabled.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-lakeformationconfiguration.html#cfn-emrcontainers-securityconfiguration-lakeformationconfiguration-queryaccesscontrolenabled
         */
        readonly queryAccessControlEnabled?: boolean | cdk.IResolvable;
        /**
         * The ARN of the query engine role.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-lakeformationconfiguration.html#cfn-emrcontainers-securityconfiguration-lakeformationconfiguration-queryenginerolearn
         */
        readonly queryEngineRoleArn?: string;
        /**
         * Secure namespace information for Lake Formation.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-lakeformationconfiguration.html#cfn-emrcontainers-securityconfiguration-lakeformationconfiguration-securenamespaceinfo
         */
        readonly secureNamespaceInfo?: cdk.IResolvable | CfnSecurityConfiguration.SecureNamespaceInfoProperty;
    }
    /**
     * Secure namespace information for Lake Formation.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securenamespaceinfo.html
     */
    interface SecureNamespaceInfoProperty {
        /**
         * The ID of the cluster.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securenamespaceinfo.html#cfn-emrcontainers-securityconfiguration-securenamespaceinfo-clusterid
         */
        readonly clusterId?: string;
        /**
         * The namespace.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-securenamespaceinfo.html#cfn-emrcontainers-securityconfiguration-securenamespaceinfo-namespace
         */
        readonly namespace?: string;
    }
    /**
     * Authentication configuration for the security configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authenticationconfiguration.html
     */
    interface AuthenticationConfigurationProperty {
        /**
         * IAM configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authenticationconfiguration.html#cfn-emrcontainers-securityconfiguration-authenticationconfiguration-iamconfiguration
         */
        readonly iamConfiguration?: CfnSecurityConfiguration.IAMConfigurationProperty | cdk.IResolvable;
        /**
         * Identity Center configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-authenticationconfiguration.html#cfn-emrcontainers-securityconfiguration-authenticationconfiguration-identitycenterconfiguration
         */
        readonly identityCenterConfiguration?: CfnSecurityConfiguration.IdentityCenterConfigurationProperty | cdk.IResolvable;
    }
    /**
     * Identity Center configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-identitycenterconfiguration.html
     */
    interface IdentityCenterConfigurationProperty {
        /**
         * Whether to enable Identity Center integration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-identitycenterconfiguration.html#cfn-emrcontainers-securityconfiguration-identitycenterconfiguration-enableidentitycenter
         */
        readonly enableIdentityCenter?: boolean | cdk.IResolvable;
        /**
         * Whether Identity Center application assignment is required.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-identitycenterconfiguration.html#cfn-emrcontainers-securityconfiguration-identitycenterconfiguration-identitycenterapplicationassignmentrequired
         */
        readonly identityCenterApplicationAssignmentRequired?: boolean | cdk.IResolvable;
        /**
         * The ARN of the Identity Center instance.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-identitycenterconfiguration.html#cfn-emrcontainers-securityconfiguration-identitycenterconfiguration-identitycenterinstancearn
         */
        readonly identityCenterInstanceArn?: string;
    }
    /**
     * IAM configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-iamconfiguration.html
     */
    interface IAMConfigurationProperty {
        /**
         * The system role ARN.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-iamconfiguration.html#cfn-emrcontainers-securityconfiguration-iamconfiguration-systemrole
         */
        readonly systemRole?: string;
    }
    /**
     * Encryption configuration for the security configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-encryptionconfiguration.html
     */
    interface EncryptionConfigurationProperty {
        /**
         * At-rest encryption configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-encryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-encryptionconfiguration-atrestencryptionconfiguration
         */
        readonly atRestEncryptionConfiguration?: CfnSecurityConfiguration.AtRestEncryptionConfigurationProperty | cdk.IResolvable;
        /**
         * In-transit encryption configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-encryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-encryptionconfiguration-intransitencryptionconfiguration
         */
        readonly inTransitEncryptionConfiguration?: CfnSecurityConfiguration.InTransitEncryptionConfigurationProperty | cdk.IResolvable;
    }
    /**
     * In-transit encryption configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-intransitencryptionconfiguration.html
     */
    interface InTransitEncryptionConfigurationProperty {
        /**
         * TLS certificate configuration for in-transit encryption.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-intransitencryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-intransitencryptionconfiguration-tlscertificateconfiguration
         */
        readonly tlsCertificateConfiguration?: cdk.IResolvable | CfnSecurityConfiguration.TLSCertificateConfigurationProperty;
    }
    /**
     * TLS certificate configuration for in-transit encryption.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-tlscertificateconfiguration.html
     */
    interface TLSCertificateConfigurationProperty {
        /**
         * The certificate provider type.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-tlscertificateconfiguration.html#cfn-emrcontainers-securityconfiguration-tlscertificateconfiguration-certificateprovidertype
         */
        readonly certificateProviderType?: string;
        /**
         * The ARN of the secret containing the private key.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-tlscertificateconfiguration.html#cfn-emrcontainers-securityconfiguration-tlscertificateconfiguration-privatekeysecretarn
         */
        readonly privateKeySecretArn?: string;
        /**
         * The ARN of the secret containing the public key.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-tlscertificateconfiguration.html#cfn-emrcontainers-securityconfiguration-tlscertificateconfiguration-publickeysecretarn
         */
        readonly publicKeySecretArn?: string;
    }
    /**
     * At-rest encryption configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-atrestencryptionconfiguration.html
     */
    interface AtRestEncryptionConfigurationProperty {
        /**
         * Local disk encryption configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-atrestencryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-atrestencryptionconfiguration-localdiskencryptionconfiguration
         */
        readonly localDiskEncryptionConfiguration?: cdk.IResolvable | CfnSecurityConfiguration.LocalDiskEncryptionConfigurationProperty;
        /**
         * S3 encryption configuration.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-atrestencryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-atrestencryptionconfiguration-s3encryptionconfiguration
         */
        readonly s3EncryptionConfiguration?: cdk.IResolvable | CfnSecurityConfiguration.S3EncryptionConfigurationProperty;
    }
    /**
     * S3 encryption configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-s3encryptionconfiguration.html
     */
    interface S3EncryptionConfigurationProperty {
        /**
         * The S3 encryption option.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-s3encryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-s3encryptionconfiguration-encryptionoption
         */
        readonly encryptionOption?: string;
        /**
         * The KMS key ID for encryption.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-s3encryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-s3encryptionconfiguration-kmskeyid
         */
        readonly kmsKeyId?: string;
    }
    /**
     * Local disk encryption configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-localdiskencryptionconfiguration.html
     */
    interface LocalDiskEncryptionConfigurationProperty {
        /**
         * The AWS KMS key ID.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-localdiskencryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-localdiskencryptionconfiguration-awskmskeyid
         */
        readonly awsKmsKeyId?: string;
        /**
         * The encryption key provider type.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-securityconfiguration-localdiskencryptionconfiguration.html#cfn-emrcontainers-securityconfiguration-localdiskencryptionconfiguration-encryptionkeyprovidertype
         */
        readonly encryptionKeyProviderType?: string;
    }
}
/**
 * Properties for defining a `CfnSecurityConfiguration`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html
 */
export interface CfnSecurityConfigurationProps {
    /**
     * Container provider information.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html#cfn-emrcontainers-securityconfiguration-containerprovider
     */
    readonly containerProvider?: CfnSecurityConfiguration.ContainerProviderProperty | cdk.IResolvable;
    /**
     * The name of the security configuration.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html#cfn-emrcontainers-securityconfiguration-name
     */
    readonly name?: string;
    /**
     * Security configuration data containing encryption and authorization settings.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html#cfn-emrcontainers-securityconfiguration-securityconfigurationdata
     */
    readonly securityConfigurationData: cdk.IResolvable | CfnSecurityConfiguration.SecurityConfigurationDataProperty;
    /**
     * An array of key-value pairs to apply to this security configuration.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-securityconfiguration.html#cfn-emrcontainers-securityconfiguration-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
export type { IVirtualClusterRef, VirtualClusterReference };
export type { IEndpointRef, EndpointReference };
export type { ISecurityConfigurationRef, SecurityConfigurationReference };
