import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface OpsiExadataInsightConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#compartment_id OpsiExadataInsight#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#defined_tags OpsiExadataInsight#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#enterprise_manager_bridge_id OpsiExadataInsight#enterprise_manager_bridge_id}
    */
    readonly enterpriseManagerBridgeId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#enterprise_manager_entity_identifier OpsiExadataInsight#enterprise_manager_entity_identifier}
    */
    readonly enterpriseManagerEntityIdentifier?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#enterprise_manager_identifier OpsiExadataInsight#enterprise_manager_identifier}
    */
    readonly enterpriseManagerIdentifier?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#entity_source OpsiExadataInsight#entity_source}
    */
    readonly entitySource: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#exadata_infra_id OpsiExadataInsight#exadata_infra_id}
    */
    readonly exadataInfraId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#freeform_tags OpsiExadataInsight#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#id OpsiExadataInsight#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/opsi_exadata_insight#is_auto_sync_enabled OpsiExadataInsight#is_auto_sync_enabled}
    */
    readonly isAutoSyncEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#status OpsiExadataInsight#status}
    */
    readonly status?: string;
    /**
    * member_vm_cluster_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#member_vm_cluster_details OpsiExadataInsight#member_vm_cluster_details}
    */
    readonly memberVmClusterDetails?: OpsiExadataInsightMemberVmClusterDetails[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#timeouts OpsiExadataInsight#timeouts}
    */
    readonly timeouts?: OpsiExadataInsightTimeouts;
}
export interface OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#credential_source_name OpsiExadataInsight#credential_source_name}
    */
    readonly credentialSourceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#credential_type OpsiExadataInsight#credential_type}
    */
    readonly credentialType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#password_secret_id OpsiExadataInsight#password_secret_id}
    */
    readonly passwordSecretId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#role OpsiExadataInsight#role}
    */
    readonly role?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#user_name OpsiExadataInsight#user_name}
    */
    readonly userName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#wallet_secret_id OpsiExadataInsight#wallet_secret_id}
    */
    readonly walletSecretId?: string;
}
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails): any;
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails | undefined);
    private _credentialSourceName?;
    get credentialSourceName(): string;
    set credentialSourceName(value: string);
    resetCredentialSourceName(): void;
    get credentialSourceNameInput(): string | undefined;
    private _credentialType?;
    get credentialType(): string;
    set credentialType(value: string);
    get credentialTypeInput(): string | undefined;
    private _passwordSecretId?;
    get passwordSecretId(): string;
    set passwordSecretId(value: string);
    resetPasswordSecretId(): void;
    get passwordSecretIdInput(): string | undefined;
    private _role?;
    get role(): string;
    set role(value: string);
    resetRole(): void;
    get roleInput(): string | undefined;
    private _userName?;
    get userName(): string;
    set userName(value: string);
    resetUserName(): void;
    get userNameInput(): string | undefined;
    private _walletSecretId?;
    get walletSecretId(): string;
    set walletSecretId(value: string);
    resetWalletSecretId(): void;
    get walletSecretIdInput(): string | undefined;
}
export interface OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#host_ip OpsiExadataInsight#host_ip}
    */
    readonly hostIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#port OpsiExadataInsight#port}
    */
    readonly port?: number;
}
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts | cdktf.IResolvable): any;
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts | cdktf.IResolvable): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts | cdktf.IResolvable | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts | cdktf.IResolvable | undefined);
    private _hostIp?;
    get hostIp(): string;
    set hostIp(value: string);
    resetHostIp(): void;
    get hostIpInput(): string | undefined;
    private _port?;
    get port(): number;
    set port(value: number);
    resetPort(): void;
    get portInput(): number | undefined;
}
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts[] | 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): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsOutputReference;
}
export interface OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#host_name OpsiExadataInsight#host_name}
    */
    readonly hostName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#port OpsiExadataInsight#port}
    */
    readonly port?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#protocol OpsiExadataInsight#protocol}
    */
    readonly protocol?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#service_name OpsiExadataInsight#service_name}
    */
    readonly serviceName?: string;
    /**
    * hosts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#hosts OpsiExadataInsight#hosts}
    */
    readonly hosts?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts[] | cdktf.IResolvable;
}
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails): any;
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails | undefined);
    private _hostName?;
    get hostName(): string;
    set hostName(value: string);
    resetHostName(): void;
    get hostNameInput(): string | undefined;
    private _port?;
    get port(): number;
    set port(value: number);
    resetPort(): void;
    get portInput(): number | undefined;
    private _protocol?;
    get protocol(): string;
    set protocol(value: string);
    resetProtocol(): void;
    get protocolInput(): string | undefined;
    private _serviceName?;
    get serviceName(): string;
    set serviceName(value: string);
    resetServiceName(): void;
    get serviceNameInput(): string | undefined;
    private _hosts;
    get hosts(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHostsList;
    putHosts(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts[] | cdktf.IResolvable): void;
    resetHosts(): void;
    get hostsInput(): cdktf.IResolvable | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsHosts[] | undefined;
}
export interface OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#credential_source_name OpsiExadataInsight#credential_source_name}
    */
    readonly credentialSourceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#credential_type OpsiExadataInsight#credential_type}
    */
    readonly credentialType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#password_secret_id OpsiExadataInsight#password_secret_id}
    */
    readonly passwordSecretId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#role OpsiExadataInsight#role}
    */
    readonly role?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#user_name OpsiExadataInsight#user_name}
    */
    readonly userName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#wallet_secret_id OpsiExadataInsight#wallet_secret_id}
    */
    readonly walletSecretId?: string;
}
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails): any;
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsOutputReference | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails | undefined);
    private _credentialSourceName?;
    get credentialSourceName(): string;
    set credentialSourceName(value: string);
    resetCredentialSourceName(): void;
    get credentialSourceNameInput(): string | undefined;
    private _credentialType?;
    get credentialType(): string;
    set credentialType(value: string);
    get credentialTypeInput(): string | undefined;
    private _passwordSecretId?;
    get passwordSecretId(): string;
    set passwordSecretId(value: string);
    resetPasswordSecretId(): void;
    get passwordSecretIdInput(): string | undefined;
    private _role?;
    get role(): string;
    set role(value: string);
    resetRole(): void;
    get roleInput(): string | undefined;
    private _userName?;
    get userName(): string;
    set userName(value: string);
    resetUserName(): void;
    get userNameInput(): string | undefined;
    private _walletSecretId?;
    get walletSecretId(): string;
    set walletSecretId(value: string);
    resetWalletSecretId(): void;
    get walletSecretIdInput(): string | undefined;
}
export interface OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#compartment_id OpsiExadataInsight#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#database_id OpsiExadataInsight#database_id}
    */
    readonly databaseId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#database_resource_type OpsiExadataInsight#database_resource_type}
    */
    readonly databaseResourceType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#dbm_private_endpoint_id OpsiExadataInsight#dbm_private_endpoint_id}
    */
    readonly dbmPrivateEndpointId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#defined_tags OpsiExadataInsight#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#deployment_type OpsiExadataInsight#deployment_type}
    */
    readonly deploymentType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#entity_source OpsiExadataInsight#entity_source}
    */
    readonly entitySource?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#freeform_tags OpsiExadataInsight#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#management_agent_id OpsiExadataInsight#management_agent_id}
    */
    readonly managementAgentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#opsi_private_endpoint_id OpsiExadataInsight#opsi_private_endpoint_id}
    */
    readonly opsiPrivateEndpointId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#service_name OpsiExadataInsight#service_name}
    */
    readonly serviceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#system_tags OpsiExadataInsight#system_tags}
    */
    readonly systemTags?: {
        [key: string]: string;
    };
    /**
    * connection_credential_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#connection_credential_details OpsiExadataInsight#connection_credential_details}
    */
    readonly connectionCredentialDetails?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails;
    /**
    * connection_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#connection_details OpsiExadataInsight#connection_details}
    */
    readonly connectionDetails?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails;
    /**
    * credential_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#credential_details OpsiExadataInsight#credential_details}
    */
    readonly credentialDetails?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails;
}
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails | cdktf.IResolvable): any;
export declare function opsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails | cdktf.IResolvable): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails | cdktf.IResolvable | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails | cdktf.IResolvable | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _databaseId?;
    get databaseId(): string;
    set databaseId(value: string);
    resetDatabaseId(): void;
    get databaseIdInput(): string | undefined;
    private _databaseResourceType?;
    get databaseResourceType(): string;
    set databaseResourceType(value: string);
    resetDatabaseResourceType(): void;
    get databaseResourceTypeInput(): string | undefined;
    private _dbmPrivateEndpointId?;
    get dbmPrivateEndpointId(): string;
    set dbmPrivateEndpointId(value: string);
    resetDbmPrivateEndpointId(): void;
    get dbmPrivateEndpointIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _deploymentType?;
    get deploymentType(): string;
    set deploymentType(value: string);
    resetDeploymentType(): void;
    get deploymentTypeInput(): string | undefined;
    private _entitySource?;
    get entitySource(): string;
    set entitySource(value: string);
    resetEntitySource(): void;
    get entitySourceInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _managementAgentId?;
    get managementAgentId(): string;
    set managementAgentId(value: string);
    resetManagementAgentId(): void;
    get managementAgentIdInput(): string | undefined;
    private _opsiPrivateEndpointId?;
    get opsiPrivateEndpointId(): string;
    set opsiPrivateEndpointId(value: string);
    resetOpsiPrivateEndpointId(): void;
    get opsiPrivateEndpointIdInput(): string | undefined;
    private _serviceName?;
    get serviceName(): string;
    set serviceName(value: string);
    resetServiceName(): void;
    get serviceNameInput(): string | undefined;
    private _systemTags?;
    get systemTags(): {
        [key: string]: string;
    };
    set systemTags(value: {
        [key: string]: string;
    });
    resetSystemTags(): void;
    get systemTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _connectionCredentialDetails;
    get connectionCredentialDetails(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetailsOutputReference;
    putConnectionCredentialDetails(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails): void;
    resetConnectionCredentialDetails(): void;
    get connectionCredentialDetailsInput(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionCredentialDetails | undefined;
    private _connectionDetails;
    get connectionDetails(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetailsOutputReference;
    putConnectionDetails(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails): void;
    resetConnectionDetails(): void;
    get connectionDetailsInput(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsConnectionDetails | undefined;
    private _credentialDetails;
    get credentialDetails(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetailsOutputReference;
    putCredentialDetails(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails): void;
    resetCredentialDetails(): void;
    get credentialDetailsInput(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsCredentialDetails | undefined;
}
export declare class OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails[] | 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): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsOutputReference;
}
export interface OpsiExadataInsightMemberVmClusterDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#compartment_id OpsiExadataInsight#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#dbm_private_endpoint_id OpsiExadataInsight#dbm_private_endpoint_id}
    */
    readonly dbmPrivateEndpointId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#opsi_private_endpoint_id OpsiExadataInsight#opsi_private_endpoint_id}
    */
    readonly opsiPrivateEndpointId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#vm_cluster_type OpsiExadataInsight#vm_cluster_type}
    */
    readonly vmClusterType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#vmcluster_id OpsiExadataInsight#vmcluster_id}
    */
    readonly vmclusterId?: string;
    /**
    * member_database_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#member_database_details OpsiExadataInsight#member_database_details}
    */
    readonly memberDatabaseDetails?: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails[] | cdktf.IResolvable;
}
export declare function opsiExadataInsightMemberVmClusterDetailsToTerraform(struct?: OpsiExadataInsightMemberVmClusterDetails | cdktf.IResolvable): any;
export declare function opsiExadataInsightMemberVmClusterDetailsToHclTerraform(struct?: OpsiExadataInsightMemberVmClusterDetails | cdktf.IResolvable): any;
export declare class OpsiExadataInsightMemberVmClusterDetailsOutputReference 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(): OpsiExadataInsightMemberVmClusterDetails | cdktf.IResolvable | undefined;
    set internalValue(value: OpsiExadataInsightMemberVmClusterDetails | cdktf.IResolvable | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _dbmPrivateEndpointId?;
    get dbmPrivateEndpointId(): string;
    set dbmPrivateEndpointId(value: string);
    resetDbmPrivateEndpointId(): void;
    get dbmPrivateEndpointIdInput(): string | undefined;
    private _opsiPrivateEndpointId?;
    get opsiPrivateEndpointId(): string;
    set opsiPrivateEndpointId(value: string);
    resetOpsiPrivateEndpointId(): void;
    get opsiPrivateEndpointIdInput(): string | undefined;
    private _vmClusterType?;
    get vmClusterType(): string;
    set vmClusterType(value: string);
    resetVmClusterType(): void;
    get vmClusterTypeInput(): string | undefined;
    private _vmclusterId?;
    get vmclusterId(): string;
    set vmclusterId(value: string);
    resetVmclusterId(): void;
    get vmclusterIdInput(): string | undefined;
    private _memberDatabaseDetails;
    get memberDatabaseDetails(): OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetailsList;
    putMemberDatabaseDetails(value: OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails[] | cdktf.IResolvable): void;
    resetMemberDatabaseDetails(): void;
    get memberDatabaseDetailsInput(): cdktf.IResolvable | OpsiExadataInsightMemberVmClusterDetailsMemberDatabaseDetails[] | undefined;
}
export declare class OpsiExadataInsightMemberVmClusterDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: OpsiExadataInsightMemberVmClusterDetails[] | 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): OpsiExadataInsightMemberVmClusterDetailsOutputReference;
}
export interface OpsiExadataInsightTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#create OpsiExadataInsight#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#delete OpsiExadataInsight#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#update OpsiExadataInsight#update}
    */
    readonly update?: string;
}
export declare function opsiExadataInsightTimeoutsToTerraform(struct?: OpsiExadataInsightTimeouts | cdktf.IResolvable): any;
export declare function opsiExadataInsightTimeoutsToHclTerraform(struct?: OpsiExadataInsightTimeouts | cdktf.IResolvable): any;
export declare class OpsiExadataInsightTimeoutsOutputReference 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(): OpsiExadataInsightTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: OpsiExadataInsightTimeouts | 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/opsi_exadata_insight oci_opsi_exadata_insight}
*/
export declare class OpsiExadataInsight extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_opsi_exadata_insight";
    /**
    * Generates CDKTF code for importing a OpsiExadataInsight 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 OpsiExadataInsight to import
    * @param importFromId The id of the existing OpsiExadataInsight that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/opsi_exadata_insight#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the OpsiExadataInsight 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/opsi_exadata_insight oci_opsi_exadata_insight} 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 OpsiExadataInsightConfig
    */
    constructor(scope: Construct, id: string, config: OpsiExadataInsightConfig);
    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 _enterpriseManagerBridgeId?;
    get enterpriseManagerBridgeId(): string;
    set enterpriseManagerBridgeId(value: string);
    resetEnterpriseManagerBridgeId(): void;
    get enterpriseManagerBridgeIdInput(): string | undefined;
    get enterpriseManagerEntityDisplayName(): string;
    private _enterpriseManagerEntityIdentifier?;
    get enterpriseManagerEntityIdentifier(): string;
    set enterpriseManagerEntityIdentifier(value: string);
    resetEnterpriseManagerEntityIdentifier(): void;
    get enterpriseManagerEntityIdentifierInput(): string | undefined;
    get enterpriseManagerEntityName(): string;
    get enterpriseManagerEntityType(): string;
    private _enterpriseManagerIdentifier?;
    get enterpriseManagerIdentifier(): string;
    set enterpriseManagerIdentifier(value: string);
    resetEnterpriseManagerIdentifier(): void;
    get enterpriseManagerIdentifierInput(): string | undefined;
    private _entitySource?;
    get entitySource(): string;
    set entitySource(value: string);
    get entitySourceInput(): string | undefined;
    get exadataDisplayName(): string;
    private _exadataInfraId?;
    get exadataInfraId(): string;
    set exadataInfraId(value: string);
    resetExadataInfraId(): void;
    get exadataInfraIdInput(): string | undefined;
    get exadataInfraResourceType(): string;
    get exadataName(): string;
    get exadataRackType(): string;
    get exadataShape(): string;
    get exadataType(): string;
    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;
    private _isAutoSyncEnabled?;
    get isAutoSyncEnabled(): boolean | cdktf.IResolvable;
    set isAutoSyncEnabled(value: boolean | cdktf.IResolvable);
    resetIsAutoSyncEnabled(): void;
    get isAutoSyncEnabledInput(): boolean | cdktf.IResolvable | undefined;
    get isVirtualizedExadata(): cdktf.IResolvable;
    get lifecycleDetails(): string;
    get state(): string;
    private _status?;
    get status(): string;
    set status(value: string);
    resetStatus(): void;
    get statusInput(): string | undefined;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _memberVmClusterDetails;
    get memberVmClusterDetails(): OpsiExadataInsightMemberVmClusterDetailsList;
    putMemberVmClusterDetails(value: OpsiExadataInsightMemberVmClusterDetails[] | cdktf.IResolvable): void;
    resetMemberVmClusterDetails(): void;
    get memberVmClusterDetailsInput(): cdktf.IResolvable | OpsiExadataInsightMemberVmClusterDetails[] | undefined;
    private _timeouts;
    get timeouts(): OpsiExadataInsightTimeoutsOutputReference;
    putTimeouts(value: OpsiExadataInsightTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | OpsiExadataInsightTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
