import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataflowSqlEndpointConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#compartment_id DataflowSqlEndpoint#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#defined_tags DataflowSqlEndpoint#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#description DataflowSqlEndpoint#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#display_name DataflowSqlEndpoint#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#driver_shape DataflowSqlEndpoint#driver_shape}
    */
    readonly driverShape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#executor_shape DataflowSqlEndpoint#executor_shape}
    */
    readonly executorShape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#freeform_tags DataflowSqlEndpoint#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#id DataflowSqlEndpoint#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#max_executor_count DataflowSqlEndpoint#max_executor_count}
    */
    readonly maxExecutorCount: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#metastore_id DataflowSqlEndpoint#metastore_id}
    */
    readonly metastoreId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#min_executor_count DataflowSqlEndpoint#min_executor_count}
    */
    readonly minExecutorCount: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#spark_advanced_configurations DataflowSqlEndpoint#spark_advanced_configurations}
    */
    readonly sparkAdvancedConfigurations?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#sql_endpoint_version DataflowSqlEndpoint#sql_endpoint_version}
    */
    readonly sqlEndpointVersion: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#state DataflowSqlEndpoint#state}
    */
    readonly state?: string;
    /**
    * driver_shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#driver_shape_config DataflowSqlEndpoint#driver_shape_config}
    */
    readonly driverShapeConfig?: DataflowSqlEndpointDriverShapeConfig;
    /**
    * executor_shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#executor_shape_config DataflowSqlEndpoint#executor_shape_config}
    */
    readonly executorShapeConfig?: DataflowSqlEndpointExecutorShapeConfig;
    /**
    * network_configuration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#network_configuration DataflowSqlEndpoint#network_configuration}
    */
    readonly networkConfiguration: DataflowSqlEndpointNetworkConfiguration;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#timeouts DataflowSqlEndpoint#timeouts}
    */
    readonly timeouts?: DataflowSqlEndpointTimeouts;
}
export interface DataflowSqlEndpointDriverShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#memory_in_gbs DataflowSqlEndpoint#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#ocpus DataflowSqlEndpoint#ocpus}
    */
    readonly ocpus?: number;
}
export declare function dataflowSqlEndpointDriverShapeConfigToTerraform(struct?: DataflowSqlEndpointDriverShapeConfigOutputReference | DataflowSqlEndpointDriverShapeConfig): any;
export declare function dataflowSqlEndpointDriverShapeConfigToHclTerraform(struct?: DataflowSqlEndpointDriverShapeConfigOutputReference | DataflowSqlEndpointDriverShapeConfig): any;
export declare class DataflowSqlEndpointDriverShapeConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): DataflowSqlEndpointDriverShapeConfig | undefined;
    set internalValue(value: DataflowSqlEndpointDriverShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface DataflowSqlEndpointExecutorShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#memory_in_gbs DataflowSqlEndpoint#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#ocpus DataflowSqlEndpoint#ocpus}
    */
    readonly ocpus?: number;
}
export declare function dataflowSqlEndpointExecutorShapeConfigToTerraform(struct?: DataflowSqlEndpointExecutorShapeConfigOutputReference | DataflowSqlEndpointExecutorShapeConfig): any;
export declare function dataflowSqlEndpointExecutorShapeConfigToHclTerraform(struct?: DataflowSqlEndpointExecutorShapeConfigOutputReference | DataflowSqlEndpointExecutorShapeConfig): any;
export declare class DataflowSqlEndpointExecutorShapeConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): DataflowSqlEndpointExecutorShapeConfig | undefined;
    set internalValue(value: DataflowSqlEndpointExecutorShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface DataflowSqlEndpointNetworkConfigurationAccessControlRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#ip_notation DataflowSqlEndpoint#ip_notation}
    */
    readonly ipNotation?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#value DataflowSqlEndpoint#value}
    */
    readonly value?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#vcn_ips DataflowSqlEndpoint#vcn_ips}
    */
    readonly vcnIps?: string;
}
export declare function dataflowSqlEndpointNetworkConfigurationAccessControlRulesToTerraform(struct?: DataflowSqlEndpointNetworkConfigurationAccessControlRules | cdktf.IResolvable): any;
export declare function dataflowSqlEndpointNetworkConfigurationAccessControlRulesToHclTerraform(struct?: DataflowSqlEndpointNetworkConfigurationAccessControlRules | cdktf.IResolvable): any;
export declare class DataflowSqlEndpointNetworkConfigurationAccessControlRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataflowSqlEndpointNetworkConfigurationAccessControlRules | cdktf.IResolvable | undefined;
    set internalValue(value: DataflowSqlEndpointNetworkConfigurationAccessControlRules | cdktf.IResolvable | undefined);
    private _ipNotation?;
    get ipNotation(): string;
    set ipNotation(value: string);
    resetIpNotation(): void;
    get ipNotationInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
    private _vcnIps?;
    get vcnIps(): string;
    set vcnIps(value: string);
    resetVcnIps(): void;
    get vcnIpsInput(): string | undefined;
}
export declare class DataflowSqlEndpointNetworkConfigurationAccessControlRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataflowSqlEndpointNetworkConfigurationAccessControlRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataflowSqlEndpointNetworkConfigurationAccessControlRulesOutputReference;
}
export interface DataflowSqlEndpointNetworkConfiguration {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#host_name_prefix DataflowSqlEndpoint#host_name_prefix}
    */
    readonly hostNamePrefix?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#network_type DataflowSqlEndpoint#network_type}
    */
    readonly networkType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#subnet_id DataflowSqlEndpoint#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#vcn_id DataflowSqlEndpoint#vcn_id}
    */
    readonly vcnId?: string;
    /**
    * access_control_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#access_control_rules DataflowSqlEndpoint#access_control_rules}
    */
    readonly accessControlRules?: DataflowSqlEndpointNetworkConfigurationAccessControlRules[] | cdktf.IResolvable;
}
export declare function dataflowSqlEndpointNetworkConfigurationToTerraform(struct?: DataflowSqlEndpointNetworkConfigurationOutputReference | DataflowSqlEndpointNetworkConfiguration): any;
export declare function dataflowSqlEndpointNetworkConfigurationToHclTerraform(struct?: DataflowSqlEndpointNetworkConfigurationOutputReference | DataflowSqlEndpointNetworkConfiguration): any;
export declare class DataflowSqlEndpointNetworkConfigurationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): DataflowSqlEndpointNetworkConfiguration | undefined;
    set internalValue(value: DataflowSqlEndpointNetworkConfiguration | undefined);
    private _hostNamePrefix?;
    get hostNamePrefix(): string;
    set hostNamePrefix(value: string);
    resetHostNamePrefix(): void;
    get hostNamePrefixInput(): string | undefined;
    private _networkType?;
    get networkType(): string;
    set networkType(value: string);
    get networkTypeInput(): string | undefined;
    get privateEndpointIp(): string;
    get publicEndpointIp(): string;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _vcnId?;
    get vcnId(): string;
    set vcnId(value: string);
    resetVcnId(): void;
    get vcnIdInput(): string | undefined;
    private _accessControlRules;
    get accessControlRules(): DataflowSqlEndpointNetworkConfigurationAccessControlRulesList;
    putAccessControlRules(value: DataflowSqlEndpointNetworkConfigurationAccessControlRules[] | cdktf.IResolvable): void;
    resetAccessControlRules(): void;
    get accessControlRulesInput(): cdktf.IResolvable | DataflowSqlEndpointNetworkConfigurationAccessControlRules[] | undefined;
}
export interface DataflowSqlEndpointTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#create DataflowSqlEndpoint#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#delete DataflowSqlEndpoint#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#update DataflowSqlEndpoint#update}
    */
    readonly update?: string;
}
export declare function dataflowSqlEndpointTimeoutsToTerraform(struct?: DataflowSqlEndpointTimeouts | cdktf.IResolvable): any;
export declare function dataflowSqlEndpointTimeoutsToHclTerraform(struct?: DataflowSqlEndpointTimeouts | cdktf.IResolvable): any;
export declare class DataflowSqlEndpointTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): DataflowSqlEndpointTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DataflowSqlEndpointTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint oci_dataflow_sql_endpoint}
*/
export declare class DataflowSqlEndpoint extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_dataflow_sql_endpoint";
    /**
    * Generates CDKTF code for importing a DataflowSqlEndpoint resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the DataflowSqlEndpoint to import
    * @param importFromId The id of the existing DataflowSqlEndpoint that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataflowSqlEndpoint to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/dataflow_sql_endpoint oci_dataflow_sql_endpoint} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options DataflowSqlEndpointConfig
    */
    constructor(scope: Construct, id: string, config: DataflowSqlEndpointConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _driverShape?;
    get driverShape(): string;
    set driverShape(value: string);
    get driverShapeInput(): string | undefined;
    private _executorShape?;
    get executorShape(): string;
    set executorShape(value: string);
    get executorShapeInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get jdbcEndpointUrl(): string;
    get lakeId(): string;
    private _maxExecutorCount?;
    get maxExecutorCount(): number;
    set maxExecutorCount(value: number);
    get maxExecutorCountInput(): number | undefined;
    private _metastoreId?;
    get metastoreId(): string;
    set metastoreId(value: string);
    get metastoreIdInput(): string | undefined;
    private _minExecutorCount?;
    get minExecutorCount(): number;
    set minExecutorCount(value: number);
    get minExecutorCountInput(): number | undefined;
    private _sparkAdvancedConfigurations?;
    get sparkAdvancedConfigurations(): {
        [key: string]: string;
    };
    set sparkAdvancedConfigurations(value: {
        [key: string]: string;
    });
    resetSparkAdvancedConfigurations(): void;
    get sparkAdvancedConfigurationsInput(): {
        [key: string]: string;
    } | undefined;
    private _sqlEndpointVersion?;
    get sqlEndpointVersion(): string;
    set sqlEndpointVersion(value: string);
    get sqlEndpointVersionInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    get stateMessage(): string;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    get warehouseBucketUri(): string;
    private _driverShapeConfig;
    get driverShapeConfig(): DataflowSqlEndpointDriverShapeConfigOutputReference;
    putDriverShapeConfig(value: DataflowSqlEndpointDriverShapeConfig): void;
    resetDriverShapeConfig(): void;
    get driverShapeConfigInput(): DataflowSqlEndpointDriverShapeConfig | undefined;
    private _executorShapeConfig;
    get executorShapeConfig(): DataflowSqlEndpointExecutorShapeConfigOutputReference;
    putExecutorShapeConfig(value: DataflowSqlEndpointExecutorShapeConfig): void;
    resetExecutorShapeConfig(): void;
    get executorShapeConfigInput(): DataflowSqlEndpointExecutorShapeConfig | undefined;
    private _networkConfiguration;
    get networkConfiguration(): DataflowSqlEndpointNetworkConfigurationOutputReference;
    putNetworkConfiguration(value: DataflowSqlEndpointNetworkConfiguration): void;
    get networkConfigurationInput(): DataflowSqlEndpointNetworkConfiguration | undefined;
    private _timeouts;
    get timeouts(): DataflowSqlEndpointTimeoutsOutputReference;
    putTimeouts(value: DataflowSqlEndpointTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DataflowSqlEndpointTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
