import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CoreInstanceConfigurationConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#id CoreInstanceConfiguration#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/core_instance_configuration#instance_id CoreInstanceConfiguration#instance_id}
    */
    readonly instanceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source CoreInstanceConfiguration#source}
    */
    readonly source?: string;
    /**
    * instance_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_details CoreInstanceConfiguration#instance_details}
    */
    readonly instanceDetails?: CoreInstanceConfigurationInstanceDetails;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#timeouts CoreInstanceConfiguration#timeouts}
    */
    readonly timeouts?: CoreInstanceConfigurationTimeouts;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#device CoreInstanceConfiguration#device}
    */
    readonly device?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_read_only CoreInstanceConfiguration#is_read_only}
    */
    readonly isReadOnly?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_shareable CoreInstanceConfiguration#is_shareable}
    */
    readonly isShareable?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#use_chap CoreInstanceConfiguration#use_chap}
    */
    readonly useChap?: boolean | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails | undefined);
    private _device?;
    get device(): string;
    set device(value: string);
    resetDevice(): void;
    get deviceInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isReadOnly?;
    get isReadOnly(): boolean | cdktf.IResolvable;
    set isReadOnly(value: boolean | cdktf.IResolvable);
    resetIsReadOnly(): void;
    get isReadOnlyInput(): boolean | cdktf.IResolvable | undefined;
    private _isShareable?;
    get isShareable(): boolean | cdktf.IResolvable;
    set isShareable(value: boolean | cdktf.IResolvable);
    resetIsShareable(): void;
    get isShareableInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _useChap?;
    get useChap(): boolean | cdktf.IResolvable;
    set useChap(value: boolean | cdktf.IResolvable);
    resetUseChap(): void;
    get useChapInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#autotune_type CoreInstanceConfiguration#autotune_type}
    */
    readonly autotuneType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#max_vpus_per_gb CoreInstanceConfiguration#max_vpus_per_gb}
    */
    readonly maxVpusPerGb?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable | undefined);
    private _autotuneType?;
    get autotuneType(): string;
    set autotuneType(value: string);
    get autotuneTypeInput(): string | undefined;
    private _maxVpusPerGb?;
    get maxVpusPerGb(): string;
    set maxVpusPerGb(value: string);
    resetMaxVpusPerGb(): void;
    get maxVpusPerGbInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies[] | 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): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#id CoreInstanceConfiguration#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/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails | undefined);
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#backup_policy_id CoreInstanceConfiguration#backup_policy_id}
    */
    readonly backupPolicyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#cluster_placement_group_id CoreInstanceConfiguration#cluster_placement_group_id}
    */
    readonly clusterPlacementGroupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_auto_tune_enabled CoreInstanceConfiguration#is_auto_tune_enabled}
    */
    readonly isAutoTuneEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#kms_key_id CoreInstanceConfiguration#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#size_in_gbs CoreInstanceConfiguration#size_in_gbs}
    */
    readonly sizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#vpus_per_gb CoreInstanceConfiguration#vpus_per_gb}
    */
    readonly vpusPerGb?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#xrc_kms_key_id CoreInstanceConfiguration#xrc_kms_key_id}
    */
    readonly xrcKmsKeyId?: string;
    /**
    * autotune_policies block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#autotune_policies CoreInstanceConfiguration#autotune_policies}
    */
    readonly autotunePolicies?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies[] | cdktf.IResolvable;
    /**
    * block_volume_replicas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#block_volume_replicas CoreInstanceConfiguration#block_volume_replicas}
    */
    readonly blockVolumeReplicas?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas;
    /**
    * source_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_details CoreInstanceConfiguration#source_details}
    */
    readonly sourceDetails?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    resetAvailabilityDomain(): void;
    get availabilityDomainInput(): string | undefined;
    private _backupPolicyId?;
    get backupPolicyId(): string;
    set backupPolicyId(value: string);
    resetBackupPolicyId(): void;
    get backupPolicyIdInput(): string | undefined;
    private _clusterPlacementGroupId?;
    get clusterPlacementGroupId(): string;
    set clusterPlacementGroupId(value: string);
    resetClusterPlacementGroupId(): void;
    get clusterPlacementGroupIdInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    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 _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _isAutoTuneEnabled?;
    get isAutoTuneEnabled(): boolean | cdktf.IResolvable;
    set isAutoTuneEnabled(value: boolean | cdktf.IResolvable);
    resetIsAutoTuneEnabled(): void;
    get isAutoTuneEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _sizeInGbs?;
    get sizeInGbs(): string;
    set sizeInGbs(value: string);
    resetSizeInGbs(): void;
    get sizeInGbsInput(): string | undefined;
    private _vpusPerGb?;
    get vpusPerGb(): string;
    set vpusPerGb(value: string);
    resetVpusPerGb(): void;
    get vpusPerGbInput(): string | undefined;
    private _xrcKmsKeyId?;
    get xrcKmsKeyId(): string;
    set xrcKmsKeyId(value: string);
    resetXrcKmsKeyId(): void;
    get xrcKmsKeyIdInput(): string | undefined;
    private _autotunePolicies;
    get autotunePolicies(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePoliciesList;
    putAutotunePolicies(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies[] | cdktf.IResolvable): void;
    resetAutotunePolicies(): void;
    get autotunePoliciesInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsAutotunePolicies[] | undefined;
    private _blockVolumeReplicas;
    get blockVolumeReplicas(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference;
    putBlockVolumeReplicas(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas): void;
    resetBlockVolumeReplicas(): void;
    get blockVolumeReplicasInput(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined;
    private _sourceDetails;
    get sourceDetails(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetailsOutputReference;
    putSourceDetails(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails): void;
    resetSourceDetails(): void;
    get sourceDetailsInput(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsSourceDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsBlockVolumes {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#volume_id CoreInstanceConfiguration#volume_id}
    */
    readonly volumeId?: string;
    /**
    * attach_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#attach_details CoreInstanceConfiguration#attach_details}
    */
    readonly attachDetails?: CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails;
    /**
    * create_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_details CoreInstanceConfiguration#create_details}
    */
    readonly createDetails?: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumes | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsBlockVolumesToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsBlockVolumes | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesOutputReference 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(): CoreInstanceConfigurationInstanceDetailsBlockVolumes | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsBlockVolumes | cdktf.IResolvable | undefined);
    private _volumeId?;
    get volumeId(): string;
    set volumeId(value: string);
    resetVolumeId(): void;
    get volumeIdInput(): string | undefined;
    private _attachDetails;
    get attachDetails(): CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetailsOutputReference;
    putAttachDetails(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails): void;
    resetAttachDetails(): void;
    get attachDetailsInput(): CoreInstanceConfigurationInstanceDetailsBlockVolumesAttachDetails | undefined;
    private _createDetails;
    get createDetails(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetailsOutputReference;
    putCreateDetails(value: CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails): void;
    resetCreateDetails(): void;
    get createDetailsInput(): CoreInstanceConfigurationInstanceDetailsBlockVolumesCreateDetails | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsBlockVolumesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsBlockVolumes[] | 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): CoreInstanceConfigurationInstanceDetailsBlockVolumesOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#desired_state CoreInstanceConfiguration#desired_state}
    */
    readonly desiredState?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#name CoreInstanceConfiguration#name}
    */
    readonly name?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable | undefined);
    private _desiredState?;
    get desiredState(): string;
    set desiredState(value: string);
    resetDesiredState(): void;
    get desiredStateInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig[] | 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): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_all_plugins_disabled CoreInstanceConfiguration#are_all_plugins_disabled}
    */
    readonly areAllPluginsDisabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_management_disabled CoreInstanceConfiguration#is_management_disabled}
    */
    readonly isManagementDisabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_monitoring_disabled CoreInstanceConfiguration#is_monitoring_disabled}
    */
    readonly isMonitoringDisabled?: boolean | cdktf.IResolvable;
    /**
    * plugins_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#plugins_config CoreInstanceConfiguration#plugins_config}
    */
    readonly pluginsConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig | undefined);
    private _areAllPluginsDisabled?;
    get areAllPluginsDisabled(): boolean | cdktf.IResolvable;
    set areAllPluginsDisabled(value: boolean | cdktf.IResolvable);
    resetAreAllPluginsDisabled(): void;
    get areAllPluginsDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isManagementDisabled?;
    get isManagementDisabled(): boolean | cdktf.IResolvable;
    set isManagementDisabled(value: boolean | cdktf.IResolvable);
    resetIsManagementDisabled(): void;
    get isManagementDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMonitoringDisabled?;
    get isMonitoringDisabled(): boolean | cdktf.IResolvable;
    set isMonitoringDisabled(value: boolean | cdktf.IResolvable);
    resetIsMonitoringDisabled(): void;
    get isMonitoringDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _pluginsConfig;
    get pluginsConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfigList;
    putPluginsConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig[] | cdktf.IResolvable): void;
    resetPluginsConfig(): void;
    get pluginsConfigInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigPluginsConfig[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_live_migration_preferred CoreInstanceConfiguration#is_live_migration_preferred}
    */
    readonly isLiveMigrationPreferred?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#recovery_action CoreInstanceConfiguration#recovery_action}
    */
    readonly recoveryAction?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig | undefined);
    private _isLiveMigrationPreferred?;
    get isLiveMigrationPreferred(): boolean | cdktf.IResolvable;
    set isLiveMigrationPreferred(value: boolean | cdktf.IResolvable);
    resetIsLiveMigrationPreferred(): void;
    get isLiveMigrationPreferredInput(): boolean | cdktf.IResolvable | undefined;
    private _recoveryAction?;
    get recoveryAction(): string;
    set recoveryAction(value: string);
    resetRecoveryAction(): void;
    get recoveryActionInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address CoreInstanceConfiguration#ipv6address}
    */
    readonly ipv6Address?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6subnet_cidr CoreInstanceConfiguration#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6Address?;
    get ipv6Address(): string;
    set ipv6Address(value: string);
    resetIpv6Address(): void;
    get ipv6AddressInput(): string | undefined;
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_ipv6ip CoreInstanceConfiguration#assign_ipv6ip}
    */
    readonly assignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_private_dns_record CoreInstanceConfiguration#assign_private_dns_record}
    */
    readonly assignPrivateDnsRecord?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_public_ip CoreInstanceConfiguration#assign_public_ip}
    */
    readonly assignPublicIp?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#hostname_label CoreInstanceConfiguration#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nsg_ids CoreInstanceConfiguration#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#private_ip CoreInstanceConfiguration#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#skip_source_dest_check CoreInstanceConfiguration#skip_source_dest_check}
    */
    readonly skipSourceDestCheck?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#subnet_id CoreInstanceConfiguration#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address_ipv6subnet_cidr_pair_details CoreInstanceConfiguration#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails | undefined);
    private _assignIpv6Ip?;
    get assignIpv6Ip(): boolean | cdktf.IResolvable;
    set assignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetAssignIpv6Ip(): void;
    get assignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPrivateDnsRecord?;
    get assignPrivateDnsRecord(): boolean | cdktf.IResolvable;
    set assignPrivateDnsRecord(value: boolean | cdktf.IResolvable);
    resetAssignPrivateDnsRecord(): void;
    get assignPrivateDnsRecordInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPublicIp?;
    get assignPublicIp(): boolean | cdktf.IResolvable;
    set assignPublicIp(value: boolean | cdktf.IResolvable);
    resetAssignPublicIp(): void;
    get assignPublicIpInput(): boolean | cdktf.IResolvable | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _privateIp?;
    get privateIp(): string;
    set privateIp(value: string);
    resetPrivateIp(): void;
    get privateIpInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _skipSourceDestCheck?;
    get skipSourceDestCheck(): boolean | cdktf.IResolvable;
    set skipSourceDestCheck(value: boolean | cdktf.IResolvable);
    resetSkipSourceDestCheck(): void;
    get skipSourceDestCheckInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_legacy_imds_endpoints_disabled CoreInstanceConfiguration#are_legacy_imds_endpoints_disabled}
    */
    readonly areLegacyImdsEndpointsDisabled?: boolean | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions | undefined);
    private _areLegacyImdsEndpointsDisabled?;
    get areLegacyImdsEndpointsDisabled(): boolean | cdktf.IResolvable;
    set areLegacyImdsEndpointsDisabled(value: boolean | cdktf.IResolvable);
    resetAreLegacyImdsEndpointsDisabled(): void;
    get areLegacyImdsEndpointsDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_type CoreInstanceConfiguration#boot_volume_type}
    */
    readonly bootVolumeType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#firmware CoreInstanceConfiguration#firmware}
    */
    readonly firmware?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_consistent_volume_naming_enabled CoreInstanceConfiguration#is_consistent_volume_naming_enabled}
    */
    readonly isConsistentVolumeNamingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#network_type CoreInstanceConfiguration#network_type}
    */
    readonly networkType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#remote_data_volume_type CoreInstanceConfiguration#remote_data_volume_type}
    */
    readonly remoteDataVolumeType?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions | undefined);
    private _bootVolumeType?;
    get bootVolumeType(): string;
    set bootVolumeType(value: string);
    resetBootVolumeType(): void;
    get bootVolumeTypeInput(): string | undefined;
    private _firmware?;
    get firmware(): string;
    set firmware(value: string);
    resetFirmware(): void;
    get firmwareInput(): string | undefined;
    private _isConsistentVolumeNamingEnabled?;
    get isConsistentVolumeNamingEnabled(): boolean | cdktf.IResolvable;
    set isConsistentVolumeNamingEnabled(value: boolean | cdktf.IResolvable);
    resetIsConsistentVolumeNamingEnabled(): void;
    get isConsistentVolumeNamingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _networkType?;
    get networkType(): string;
    set networkType(value: string);
    resetNetworkType(): void;
    get networkTypeInput(): string | undefined;
    private _remoteDataVolumeType?;
    get remoteDataVolumeType(): string;
    set remoteDataVolumeType(value: string);
    resetRemoteDataVolumeType(): void;
    get remoteDataVolumeTypeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_virtual_instructions_enabled CoreInstanceConfiguration#are_virtual_instructions_enabled}
    */
    readonly areVirtualInstructionsEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#config_map CoreInstanceConfiguration#config_map}
    */
    readonly configMap?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_access_control_service_enabled CoreInstanceConfiguration#is_access_control_service_enabled}
    */
    readonly isAccessControlServiceEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_input_output_memory_management_unit_enabled CoreInstanceConfiguration#is_input_output_memory_management_unit_enabled}
    */
    readonly isInputOutputMemoryManagementUnitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_measured_boot_enabled CoreInstanceConfiguration#is_measured_boot_enabled}
    */
    readonly isMeasuredBootEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_memory_encryption_enabled CoreInstanceConfiguration#is_memory_encryption_enabled}
    */
    readonly isMemoryEncryptionEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_secure_boot_enabled CoreInstanceConfiguration#is_secure_boot_enabled}
    */
    readonly isSecureBootEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_symmetric_multi_threading_enabled CoreInstanceConfiguration#is_symmetric_multi_threading_enabled}
    */
    readonly isSymmetricMultiThreadingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_trusted_platform_module_enabled CoreInstanceConfiguration#is_trusted_platform_module_enabled}
    */
    readonly isTrustedPlatformModuleEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#numa_nodes_per_socket CoreInstanceConfiguration#numa_nodes_per_socket}
    */
    readonly numaNodesPerSocket?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#percentage_of_cores_enabled CoreInstanceConfiguration#percentage_of_cores_enabled}
    */
    readonly percentageOfCoresEnabled?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig | undefined);
    private _areVirtualInstructionsEnabled?;
    get areVirtualInstructionsEnabled(): boolean | cdktf.IResolvable;
    set areVirtualInstructionsEnabled(value: boolean | cdktf.IResolvable);
    resetAreVirtualInstructionsEnabled(): void;
    get areVirtualInstructionsEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _configMap?;
    get configMap(): {
        [key: string]: string;
    };
    set configMap(value: {
        [key: string]: string;
    });
    resetConfigMap(): void;
    get configMapInput(): {
        [key: string]: string;
    } | undefined;
    private _isAccessControlServiceEnabled?;
    get isAccessControlServiceEnabled(): boolean | cdktf.IResolvable;
    set isAccessControlServiceEnabled(value: boolean | cdktf.IResolvable);
    resetIsAccessControlServiceEnabled(): void;
    get isAccessControlServiceEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isInputOutputMemoryManagementUnitEnabled?;
    get isInputOutputMemoryManagementUnitEnabled(): boolean | cdktf.IResolvable;
    set isInputOutputMemoryManagementUnitEnabled(value: boolean | cdktf.IResolvable);
    resetIsInputOutputMemoryManagementUnitEnabled(): void;
    get isInputOutputMemoryManagementUnitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMeasuredBootEnabled?;
    get isMeasuredBootEnabled(): boolean | cdktf.IResolvable;
    set isMeasuredBootEnabled(value: boolean | cdktf.IResolvable);
    resetIsMeasuredBootEnabled(): void;
    get isMeasuredBootEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMemoryEncryptionEnabled?;
    get isMemoryEncryptionEnabled(): boolean | cdktf.IResolvable;
    set isMemoryEncryptionEnabled(value: boolean | cdktf.IResolvable);
    resetIsMemoryEncryptionEnabled(): void;
    get isMemoryEncryptionEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isSecureBootEnabled?;
    get isSecureBootEnabled(): boolean | cdktf.IResolvable;
    set isSecureBootEnabled(value: boolean | cdktf.IResolvable);
    resetIsSecureBootEnabled(): void;
    get isSecureBootEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isSymmetricMultiThreadingEnabled?;
    get isSymmetricMultiThreadingEnabled(): boolean | cdktf.IResolvable;
    set isSymmetricMultiThreadingEnabled(value: boolean | cdktf.IResolvable);
    resetIsSymmetricMultiThreadingEnabled(): void;
    get isSymmetricMultiThreadingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isTrustedPlatformModuleEnabled?;
    get isTrustedPlatformModuleEnabled(): boolean | cdktf.IResolvable;
    set isTrustedPlatformModuleEnabled(value: boolean | cdktf.IResolvable);
    resetIsTrustedPlatformModuleEnabled(): void;
    get isTrustedPlatformModuleEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _numaNodesPerSocket?;
    get numaNodesPerSocket(): string;
    set numaNodesPerSocket(value: string);
    resetNumaNodesPerSocket(): void;
    get numaNodesPerSocketInput(): string | undefined;
    private _percentageOfCoresEnabled?;
    get percentageOfCoresEnabled(): number;
    set percentageOfCoresEnabled(value: number);
    resetPercentageOfCoresEnabled(): void;
    get percentageOfCoresEnabledInput(): number | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preserve_boot_volume CoreInstanceConfiguration#preserve_boot_volume}
    */
    readonly preserveBootVolume?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined);
    private _preserveBootVolume?;
    get preserveBootVolume(): boolean | cdktf.IResolvable;
    set preserveBootVolume(value: boolean | cdktf.IResolvable);
    resetPreserveBootVolume(): void;
    get preserveBootVolumeInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig {
    /**
    * preemption_action block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preemption_action CoreInstanceConfiguration#preemption_action}
    */
    readonly preemptionAction?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig | undefined);
    private _preemptionAction;
    get preemptionAction(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference;
    putPreemptionAction(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): void;
    resetPreemptionAction(): void;
    get preemptionActionInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#baseline_ocpu_utilization CoreInstanceConfiguration#baseline_ocpu_utilization}
    */
    readonly baselineOcpuUtilization?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#memory_in_gbs CoreInstanceConfiguration#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nvmes CoreInstanceConfiguration#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ocpus CoreInstanceConfiguration#ocpus}
    */
    readonly ocpus?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#vcpus CoreInstanceConfiguration#vcpus}
    */
    readonly vcpus?: number;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig | undefined);
    private _baselineOcpuUtilization?;
    get baselineOcpuUtilization(): string;
    set baselineOcpuUtilization(value: string);
    resetBaselineOcpuUtilization(): void;
    get baselineOcpuUtilizationInput(): string | undefined;
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
    private _vcpus?;
    get vcpus(): number;
    set vcpus(value: number);
    resetVcpus(): void;
    get vcpusInput(): number | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags_filter CoreInstanceConfiguration#defined_tags_filter}
    */
    readonly definedTagsFilter?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#operating_system CoreInstanceConfiguration#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#operating_system_version CoreInstanceConfiguration#operating_system_version}
    */
    readonly operatingSystemVersion?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _definedTagsFilter?;
    get definedTagsFilter(): {
        [key: string]: string;
    };
    set definedTagsFilter(value: {
        [key: string]: string;
    });
    resetDefinedTagsFilter(): void;
    get definedTagsFilterInput(): {
        [key: string]: string;
    } | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
    private _operatingSystemVersion?;
    get operatingSystemVersion(): string;
    set operatingSystemVersion(value: string);
    resetOperatingSystemVersion(): void;
    get operatingSystemVersionInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_id CoreInstanceConfiguration#boot_volume_id}
    */
    readonly bootVolumeId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_size_in_gbs CoreInstanceConfiguration#boot_volume_size_in_gbs}
    */
    readonly bootVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_vpus_per_gb CoreInstanceConfiguration#boot_volume_vpus_per_gb}
    */
    readonly bootVolumeVpusPerGb?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#image_id CoreInstanceConfiguration#image_id}
    */
    readonly imageId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#kms_key_id CoreInstanceConfiguration#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_type CoreInstanceConfiguration#source_type}
    */
    readonly sourceType: string;
    /**
    * instance_source_image_filter_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_source_image_filter_details CoreInstanceConfiguration#instance_source_image_filter_details}
    */
    readonly instanceSourceImageFilterDetails?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails | undefined);
    private _bootVolumeId?;
    get bootVolumeId(): string;
    set bootVolumeId(value: string);
    resetBootVolumeId(): void;
    get bootVolumeIdInput(): string | undefined;
    private _bootVolumeSizeInGbs?;
    get bootVolumeSizeInGbs(): string;
    set bootVolumeSizeInGbs(value: string);
    resetBootVolumeSizeInGbs(): void;
    get bootVolumeSizeInGbsInput(): string | undefined;
    private _bootVolumeVpusPerGb?;
    get bootVolumeVpusPerGb(): string;
    set bootVolumeVpusPerGb(value: string);
    resetBootVolumeVpusPerGb(): void;
    get bootVolumeVpusPerGbInput(): string | undefined;
    private _imageId?;
    get imageId(): string;
    set imageId(value: string);
    resetImageId(): void;
    get imageIdInput(): string | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    get sourceTypeInput(): string | undefined;
    private _instanceSourceImageFilterDetails;
    get instanceSourceImageFilterDetails(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference;
    putInstanceSourceImageFilterDetails(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): void;
    resetInstanceSourceImageFilterDetails(): void;
    get instanceSourceImageFilterDetailsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsLaunchDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#capacity_reservation_id CoreInstanceConfiguration#capacity_reservation_id}
    */
    readonly capacityReservationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#cluster_placement_group_id CoreInstanceConfiguration#cluster_placement_group_id}
    */
    readonly clusterPlacementGroupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#dedicated_vm_host_id CoreInstanceConfiguration#dedicated_vm_host_id}
    */
    readonly dedicatedVmHostId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#extended_metadata CoreInstanceConfiguration#extended_metadata}
    */
    readonly extendedMetadata?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#fault_domain CoreInstanceConfiguration#fault_domain}
    */
    readonly faultDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipxe_script CoreInstanceConfiguration#ipxe_script}
    */
    readonly ipxeScript?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_mode CoreInstanceConfiguration#launch_mode}
    */
    readonly launchMode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#metadata CoreInstanceConfiguration#metadata}
    */
    readonly metadata?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preferred_maintenance_action CoreInstanceConfiguration#preferred_maintenance_action}
    */
    readonly preferredMaintenanceAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#shape CoreInstanceConfiguration#shape}
    */
    readonly shape?: string;
    /**
    * agent_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#agent_config CoreInstanceConfiguration#agent_config}
    */
    readonly agentConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig;
    /**
    * availability_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_config CoreInstanceConfiguration#availability_config}
    */
    readonly availabilityConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig;
    /**
    * create_vnic_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_vnic_details CoreInstanceConfiguration#create_vnic_details}
    */
    readonly createVnicDetails?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails;
    /**
    * instance_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_options CoreInstanceConfiguration#instance_options}
    */
    readonly instanceOptions?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions;
    /**
    * launch_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_options CoreInstanceConfiguration#launch_options}
    */
    readonly launchOptions?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions;
    /**
    * platform_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#platform_config CoreInstanceConfiguration#platform_config}
    */
    readonly platformConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig;
    /**
    * preemptible_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preemptible_instance_config CoreInstanceConfiguration#preemptible_instance_config}
    */
    readonly preemptibleInstanceConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#shape_config CoreInstanceConfiguration#shape_config}
    */
    readonly shapeConfig?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig;
    /**
    * source_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_details CoreInstanceConfiguration#source_details}
    */
    readonly sourceDetails?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsLaunchDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsLaunchDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsLaunchDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsLaunchDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsLaunchDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsLaunchDetails | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    resetAvailabilityDomain(): void;
    get availabilityDomainInput(): string | undefined;
    private _capacityReservationId?;
    get capacityReservationId(): string;
    set capacityReservationId(value: string);
    resetCapacityReservationId(): void;
    get capacityReservationIdInput(): string | undefined;
    private _clusterPlacementGroupId?;
    get clusterPlacementGroupId(): string;
    set clusterPlacementGroupId(value: string);
    resetClusterPlacementGroupId(): void;
    get clusterPlacementGroupIdInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _dedicatedVmHostId?;
    get dedicatedVmHostId(): string;
    set dedicatedVmHostId(value: string);
    resetDedicatedVmHostId(): void;
    get dedicatedVmHostIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _extendedMetadata?;
    get extendedMetadata(): {
        [key: string]: string;
    };
    set extendedMetadata(value: {
        [key: string]: string;
    });
    resetExtendedMetadata(): void;
    get extendedMetadataInput(): {
        [key: string]: string;
    } | undefined;
    private _faultDomain?;
    get faultDomain(): string;
    set faultDomain(value: string);
    resetFaultDomain(): void;
    get faultDomainInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _ipxeScript?;
    get ipxeScript(): string;
    set ipxeScript(value: string);
    resetIpxeScript(): void;
    get ipxeScriptInput(): string | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _launchMode?;
    get launchMode(): string;
    set launchMode(value: string);
    resetLaunchMode(): void;
    get launchModeInput(): string | undefined;
    private _metadata?;
    get metadata(): {
        [key: string]: string;
    };
    set metadata(value: {
        [key: string]: string;
    });
    resetMetadata(): void;
    get metadataInput(): {
        [key: string]: string;
    } | undefined;
    private _preferredMaintenanceAction?;
    get preferredMaintenanceAction(): string;
    set preferredMaintenanceAction(value: string);
    resetPreferredMaintenanceAction(): void;
    get preferredMaintenanceActionInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    resetShape(): void;
    get shapeInput(): string | undefined;
    private _agentConfig;
    get agentConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfigOutputReference;
    putAgentConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig): void;
    resetAgentConfig(): void;
    get agentConfigInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAgentConfig | undefined;
    private _availabilityConfig;
    get availabilityConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfigOutputReference;
    putAvailabilityConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig): void;
    resetAvailabilityConfig(): void;
    get availabilityConfigInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsAvailabilityConfig | undefined;
    private _createVnicDetails;
    get createVnicDetails(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetailsOutputReference;
    putCreateVnicDetails(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails): void;
    resetCreateVnicDetails(): void;
    get createVnicDetailsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsCreateVnicDetails | undefined;
    private _instanceOptions;
    get instanceOptions(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptionsOutputReference;
    putInstanceOptions(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions): void;
    resetInstanceOptions(): void;
    get instanceOptionsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsInstanceOptions | undefined;
    private _launchOptions;
    get launchOptions(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptionsOutputReference;
    putLaunchOptions(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions): void;
    resetLaunchOptions(): void;
    get launchOptionsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsLaunchOptions | undefined;
    private _platformConfig;
    get platformConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfigOutputReference;
    putPlatformConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig): void;
    resetPlatformConfig(): void;
    get platformConfigInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPlatformConfig | undefined;
    private _preemptibleInstanceConfig;
    get preemptibleInstanceConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfigOutputReference;
    putPreemptibleInstanceConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig): void;
    resetPreemptibleInstanceConfig(): void;
    get preemptibleInstanceConfigInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsPreemptibleInstanceConfig | undefined;
    private _shapeConfig;
    get shapeConfig(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfigOutputReference;
    putShapeConfig(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsShapeConfig | undefined;
    private _sourceDetails;
    get sourceDetails(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetailsOutputReference;
    putSourceDetails(value: CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails): void;
    resetSourceDetails(): void;
    get sourceDetailsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsSourceDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#device CoreInstanceConfiguration#device}
    */
    readonly device?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_read_only CoreInstanceConfiguration#is_read_only}
    */
    readonly isReadOnly?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_shareable CoreInstanceConfiguration#is_shareable}
    */
    readonly isShareable?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#use_chap CoreInstanceConfiguration#use_chap}
    */
    readonly useChap?: boolean | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails | undefined);
    private _device?;
    get device(): string;
    set device(value: string);
    resetDevice(): void;
    get deviceInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isReadOnly?;
    get isReadOnly(): boolean | cdktf.IResolvable;
    set isReadOnly(value: boolean | cdktf.IResolvable);
    resetIsReadOnly(): void;
    get isReadOnlyInput(): boolean | cdktf.IResolvable | undefined;
    private _isShareable?;
    get isShareable(): boolean | cdktf.IResolvable;
    set isShareable(value: boolean | cdktf.IResolvable);
    resetIsShareable(): void;
    get isShareableInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _useChap?;
    get useChap(): boolean | cdktf.IResolvable;
    set useChap(value: boolean | cdktf.IResolvable);
    resetUseChap(): void;
    get useChapInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#autotune_type CoreInstanceConfiguration#autotune_type}
    */
    readonly autotuneType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#max_vpus_per_gb CoreInstanceConfiguration#max_vpus_per_gb}
    */
    readonly maxVpusPerGb?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies | cdktf.IResolvable | undefined);
    private _autotuneType?;
    get autotuneType(): string;
    set autotuneType(value: string);
    get autotuneTypeInput(): string | undefined;
    private _maxVpusPerGb?;
    get maxVpusPerGb(): string;
    set maxVpusPerGb(value: string);
    resetMaxVpusPerGb(): void;
    get maxVpusPerGbInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#id CoreInstanceConfiguration#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/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails | undefined);
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#backup_policy_id CoreInstanceConfiguration#backup_policy_id}
    */
    readonly backupPolicyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#cluster_placement_group_id CoreInstanceConfiguration#cluster_placement_group_id}
    */
    readonly clusterPlacementGroupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_auto_tune_enabled CoreInstanceConfiguration#is_auto_tune_enabled}
    */
    readonly isAutoTuneEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#kms_key_id CoreInstanceConfiguration#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#size_in_gbs CoreInstanceConfiguration#size_in_gbs}
    */
    readonly sizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#vpus_per_gb CoreInstanceConfiguration#vpus_per_gb}
    */
    readonly vpusPerGb?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#xrc_kms_key_id CoreInstanceConfiguration#xrc_kms_key_id}
    */
    readonly xrcKmsKeyId?: string;
    /**
    * autotune_policies block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#autotune_policies CoreInstanceConfiguration#autotune_policies}
    */
    readonly autotunePolicies?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies[] | cdktf.IResolvable;
    /**
    * block_volume_replicas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#block_volume_replicas CoreInstanceConfiguration#block_volume_replicas}
    */
    readonly blockVolumeReplicas?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas;
    /**
    * source_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_details CoreInstanceConfiguration#source_details}
    */
    readonly sourceDetails?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    resetAvailabilityDomain(): void;
    get availabilityDomainInput(): string | undefined;
    private _backupPolicyId?;
    get backupPolicyId(): string;
    set backupPolicyId(value: string);
    resetBackupPolicyId(): void;
    get backupPolicyIdInput(): string | undefined;
    private _clusterPlacementGroupId?;
    get clusterPlacementGroupId(): string;
    set clusterPlacementGroupId(value: string);
    resetClusterPlacementGroupId(): void;
    get clusterPlacementGroupIdInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    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 _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _isAutoTuneEnabled?;
    get isAutoTuneEnabled(): boolean | cdktf.IResolvable;
    set isAutoTuneEnabled(value: boolean | cdktf.IResolvable);
    resetIsAutoTuneEnabled(): void;
    get isAutoTuneEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _sizeInGbs?;
    get sizeInGbs(): string;
    set sizeInGbs(value: string);
    resetSizeInGbs(): void;
    get sizeInGbsInput(): string | undefined;
    private _vpusPerGb?;
    get vpusPerGb(): string;
    set vpusPerGb(value: string);
    resetVpusPerGb(): void;
    get vpusPerGbInput(): string | undefined;
    private _xrcKmsKeyId?;
    get xrcKmsKeyId(): string;
    set xrcKmsKeyId(value: string);
    resetXrcKmsKeyId(): void;
    get xrcKmsKeyIdInput(): string | undefined;
    private _autotunePolicies;
    get autotunePolicies(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePoliciesList;
    putAutotunePolicies(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies[] | cdktf.IResolvable): void;
    resetAutotunePolicies(): void;
    get autotunePoliciesInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsAutotunePolicies[] | undefined;
    private _blockVolumeReplicas;
    get blockVolumeReplicas(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicasOutputReference;
    putBlockVolumeReplicas(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas): void;
    resetBlockVolumeReplicas(): void;
    get blockVolumeReplicasInput(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsBlockVolumeReplicas | undefined;
    private _sourceDetails;
    get sourceDetails(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetailsOutputReference;
    putSourceDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails): void;
    resetSourceDetails(): void;
    get sourceDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsSourceDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#volume_id CoreInstanceConfiguration#volume_id}
    */
    readonly volumeId?: string;
    /**
    * attach_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#attach_details CoreInstanceConfiguration#attach_details}
    */
    readonly attachDetails?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails;
    /**
    * create_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_details CoreInstanceConfiguration#create_details}
    */
    readonly createDetails?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsBlockVolumesToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes | cdktf.IResolvable | undefined);
    private _volumeId?;
    get volumeId(): string;
    set volumeId(value: string);
    resetVolumeId(): void;
    get volumeIdInput(): string | undefined;
    private _attachDetails;
    get attachDetails(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetailsOutputReference;
    putAttachDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails): void;
    resetAttachDetails(): void;
    get attachDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesAttachDetails | undefined;
    private _createDetails;
    get createDetails(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetailsOutputReference;
    putCreateDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails): void;
    resetCreateDetails(): void;
    get createDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesCreateDetails | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#desired_state CoreInstanceConfiguration#desired_state}
    */
    readonly desiredState?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#name CoreInstanceConfiguration#name}
    */
    readonly name?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig | cdktf.IResolvable | undefined);
    private _desiredState?;
    get desiredState(): string;
    set desiredState(value: string);
    resetDesiredState(): void;
    get desiredStateInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_all_plugins_disabled CoreInstanceConfiguration#are_all_plugins_disabled}
    */
    readonly areAllPluginsDisabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_management_disabled CoreInstanceConfiguration#is_management_disabled}
    */
    readonly isManagementDisabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_monitoring_disabled CoreInstanceConfiguration#is_monitoring_disabled}
    */
    readonly isMonitoringDisabled?: boolean | cdktf.IResolvable;
    /**
    * plugins_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#plugins_config CoreInstanceConfiguration#plugins_config}
    */
    readonly pluginsConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig | undefined);
    private _areAllPluginsDisabled?;
    get areAllPluginsDisabled(): boolean | cdktf.IResolvable;
    set areAllPluginsDisabled(value: boolean | cdktf.IResolvable);
    resetAreAllPluginsDisabled(): void;
    get areAllPluginsDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isManagementDisabled?;
    get isManagementDisabled(): boolean | cdktf.IResolvable;
    set isManagementDisabled(value: boolean | cdktf.IResolvable);
    resetIsManagementDisabled(): void;
    get isManagementDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMonitoringDisabled?;
    get isMonitoringDisabled(): boolean | cdktf.IResolvable;
    set isMonitoringDisabled(value: boolean | cdktf.IResolvable);
    resetIsMonitoringDisabled(): void;
    get isMonitoringDisabledInput(): boolean | cdktf.IResolvable | undefined;
    private _pluginsConfig;
    get pluginsConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfigList;
    putPluginsConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig[] | cdktf.IResolvable): void;
    resetPluginsConfig(): void;
    get pluginsConfigInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigPluginsConfig[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_live_migration_preferred CoreInstanceConfiguration#is_live_migration_preferred}
    */
    readonly isLiveMigrationPreferred?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#recovery_action CoreInstanceConfiguration#recovery_action}
    */
    readonly recoveryAction?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig | undefined);
    private _isLiveMigrationPreferred?;
    get isLiveMigrationPreferred(): boolean | cdktf.IResolvable;
    set isLiveMigrationPreferred(value: boolean | cdktf.IResolvable);
    resetIsLiveMigrationPreferred(): void;
    get isLiveMigrationPreferredInput(): boolean | cdktf.IResolvable | undefined;
    private _recoveryAction?;
    get recoveryAction(): string;
    set recoveryAction(value: string);
    resetRecoveryAction(): void;
    get recoveryActionInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address CoreInstanceConfiguration#ipv6address}
    */
    readonly ipv6Address?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6subnet_cidr CoreInstanceConfiguration#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6Address?;
    get ipv6Address(): string;
    set ipv6Address(value: string);
    resetIpv6Address(): void;
    get ipv6AddressInput(): string | undefined;
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_ipv6ip CoreInstanceConfiguration#assign_ipv6ip}
    */
    readonly assignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_private_dns_record CoreInstanceConfiguration#assign_private_dns_record}
    */
    readonly assignPrivateDnsRecord?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_public_ip CoreInstanceConfiguration#assign_public_ip}
    */
    readonly assignPublicIp?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#hostname_label CoreInstanceConfiguration#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nsg_ids CoreInstanceConfiguration#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#private_ip CoreInstanceConfiguration#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#skip_source_dest_check CoreInstanceConfiguration#skip_source_dest_check}
    */
    readonly skipSourceDestCheck?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#subnet_id CoreInstanceConfiguration#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address_ipv6subnet_cidr_pair_details CoreInstanceConfiguration#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails | undefined);
    private _assignIpv6Ip?;
    get assignIpv6Ip(): boolean | cdktf.IResolvable;
    set assignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetAssignIpv6Ip(): void;
    get assignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPrivateDnsRecord?;
    get assignPrivateDnsRecord(): boolean | cdktf.IResolvable;
    set assignPrivateDnsRecord(value: boolean | cdktf.IResolvable);
    resetAssignPrivateDnsRecord(): void;
    get assignPrivateDnsRecordInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPublicIp?;
    get assignPublicIp(): boolean | cdktf.IResolvable;
    set assignPublicIp(value: boolean | cdktf.IResolvable);
    resetAssignPublicIp(): void;
    get assignPublicIpInput(): boolean | cdktf.IResolvable | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _privateIp?;
    get privateIp(): string;
    set privateIp(value: string);
    resetPrivateIp(): void;
    get privateIpInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _skipSourceDestCheck?;
    get skipSourceDestCheck(): boolean | cdktf.IResolvable;
    set skipSourceDestCheck(value: boolean | cdktf.IResolvable);
    resetSkipSourceDestCheck(): void;
    get skipSourceDestCheckInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_legacy_imds_endpoints_disabled CoreInstanceConfiguration#are_legacy_imds_endpoints_disabled}
    */
    readonly areLegacyImdsEndpointsDisabled?: boolean | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions | undefined);
    private _areLegacyImdsEndpointsDisabled?;
    get areLegacyImdsEndpointsDisabled(): boolean | cdktf.IResolvable;
    set areLegacyImdsEndpointsDisabled(value: boolean | cdktf.IResolvable);
    resetAreLegacyImdsEndpointsDisabled(): void;
    get areLegacyImdsEndpointsDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_type CoreInstanceConfiguration#boot_volume_type}
    */
    readonly bootVolumeType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#firmware CoreInstanceConfiguration#firmware}
    */
    readonly firmware?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_consistent_volume_naming_enabled CoreInstanceConfiguration#is_consistent_volume_naming_enabled}
    */
    readonly isConsistentVolumeNamingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#network_type CoreInstanceConfiguration#network_type}
    */
    readonly networkType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#remote_data_volume_type CoreInstanceConfiguration#remote_data_volume_type}
    */
    readonly remoteDataVolumeType?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions | undefined);
    private _bootVolumeType?;
    get bootVolumeType(): string;
    set bootVolumeType(value: string);
    resetBootVolumeType(): void;
    get bootVolumeTypeInput(): string | undefined;
    private _firmware?;
    get firmware(): string;
    set firmware(value: string);
    resetFirmware(): void;
    get firmwareInput(): string | undefined;
    private _isConsistentVolumeNamingEnabled?;
    get isConsistentVolumeNamingEnabled(): boolean | cdktf.IResolvable;
    set isConsistentVolumeNamingEnabled(value: boolean | cdktf.IResolvable);
    resetIsConsistentVolumeNamingEnabled(): void;
    get isConsistentVolumeNamingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _networkType?;
    get networkType(): string;
    set networkType(value: string);
    resetNetworkType(): void;
    get networkTypeInput(): string | undefined;
    private _remoteDataVolumeType?;
    get remoteDataVolumeType(): string;
    set remoteDataVolumeType(value: string);
    resetRemoteDataVolumeType(): void;
    get remoteDataVolumeTypeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#are_virtual_instructions_enabled CoreInstanceConfiguration#are_virtual_instructions_enabled}
    */
    readonly areVirtualInstructionsEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_access_control_service_enabled CoreInstanceConfiguration#is_access_control_service_enabled}
    */
    readonly isAccessControlServiceEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_input_output_memory_management_unit_enabled CoreInstanceConfiguration#is_input_output_memory_management_unit_enabled}
    */
    readonly isInputOutputMemoryManagementUnitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_measured_boot_enabled CoreInstanceConfiguration#is_measured_boot_enabled}
    */
    readonly isMeasuredBootEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_memory_encryption_enabled CoreInstanceConfiguration#is_memory_encryption_enabled}
    */
    readonly isMemoryEncryptionEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_secure_boot_enabled CoreInstanceConfiguration#is_secure_boot_enabled}
    */
    readonly isSecureBootEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_symmetric_multi_threading_enabled CoreInstanceConfiguration#is_symmetric_multi_threading_enabled}
    */
    readonly isSymmetricMultiThreadingEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_trusted_platform_module_enabled CoreInstanceConfiguration#is_trusted_platform_module_enabled}
    */
    readonly isTrustedPlatformModuleEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#numa_nodes_per_socket CoreInstanceConfiguration#numa_nodes_per_socket}
    */
    readonly numaNodesPerSocket?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#percentage_of_cores_enabled CoreInstanceConfiguration#percentage_of_cores_enabled}
    */
    readonly percentageOfCoresEnabled?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig | undefined);
    private _areVirtualInstructionsEnabled?;
    get areVirtualInstructionsEnabled(): boolean | cdktf.IResolvable;
    set areVirtualInstructionsEnabled(value: boolean | cdktf.IResolvable);
    resetAreVirtualInstructionsEnabled(): void;
    get areVirtualInstructionsEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isAccessControlServiceEnabled?;
    get isAccessControlServiceEnabled(): boolean | cdktf.IResolvable;
    set isAccessControlServiceEnabled(value: boolean | cdktf.IResolvable);
    resetIsAccessControlServiceEnabled(): void;
    get isAccessControlServiceEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isInputOutputMemoryManagementUnitEnabled?;
    get isInputOutputMemoryManagementUnitEnabled(): boolean | cdktf.IResolvable;
    set isInputOutputMemoryManagementUnitEnabled(value: boolean | cdktf.IResolvable);
    resetIsInputOutputMemoryManagementUnitEnabled(): void;
    get isInputOutputMemoryManagementUnitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMeasuredBootEnabled?;
    get isMeasuredBootEnabled(): boolean | cdktf.IResolvable;
    set isMeasuredBootEnabled(value: boolean | cdktf.IResolvable);
    resetIsMeasuredBootEnabled(): void;
    get isMeasuredBootEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isMemoryEncryptionEnabled?;
    get isMemoryEncryptionEnabled(): boolean | cdktf.IResolvable;
    set isMemoryEncryptionEnabled(value: boolean | cdktf.IResolvable);
    resetIsMemoryEncryptionEnabled(): void;
    get isMemoryEncryptionEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isSecureBootEnabled?;
    get isSecureBootEnabled(): boolean | cdktf.IResolvable;
    set isSecureBootEnabled(value: boolean | cdktf.IResolvable);
    resetIsSecureBootEnabled(): void;
    get isSecureBootEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isSymmetricMultiThreadingEnabled?;
    get isSymmetricMultiThreadingEnabled(): boolean | cdktf.IResolvable;
    set isSymmetricMultiThreadingEnabled(value: boolean | cdktf.IResolvable);
    resetIsSymmetricMultiThreadingEnabled(): void;
    get isSymmetricMultiThreadingEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _isTrustedPlatformModuleEnabled?;
    get isTrustedPlatformModuleEnabled(): boolean | cdktf.IResolvable;
    set isTrustedPlatformModuleEnabled(value: boolean | cdktf.IResolvable);
    resetIsTrustedPlatformModuleEnabled(): void;
    get isTrustedPlatformModuleEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _numaNodesPerSocket?;
    get numaNodesPerSocket(): string;
    set numaNodesPerSocket(value: string);
    resetNumaNodesPerSocket(): void;
    get numaNodesPerSocketInput(): string | undefined;
    private _percentageOfCoresEnabled?;
    get percentageOfCoresEnabled(): number;
    set percentageOfCoresEnabled(value: number);
    resetPercentageOfCoresEnabled(): void;
    get percentageOfCoresEnabledInput(): number | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preserve_boot_volume CoreInstanceConfiguration#preserve_boot_volume}
    */
    readonly preserveBootVolume?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#type CoreInstanceConfiguration#type}
    */
    readonly type: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined);
    private _preserveBootVolume?;
    get preserveBootVolume(): boolean | cdktf.IResolvable;
    set preserveBootVolume(value: boolean | cdktf.IResolvable);
    resetPreserveBootVolume(): void;
    get preserveBootVolumeInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig {
    /**
    * preemption_action block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preemption_action CoreInstanceConfiguration#preemption_action}
    */
    readonly preemptionAction?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig | undefined);
    private _preemptionAction;
    get preemptionAction(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionActionOutputReference;
    putPreemptionAction(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction): void;
    resetPreemptionAction(): void;
    get preemptionActionInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigPreemptionAction | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#baseline_ocpu_utilization CoreInstanceConfiguration#baseline_ocpu_utilization}
    */
    readonly baselineOcpuUtilization?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#memory_in_gbs CoreInstanceConfiguration#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nvmes CoreInstanceConfiguration#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ocpus CoreInstanceConfiguration#ocpus}
    */
    readonly ocpus?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#vcpus CoreInstanceConfiguration#vcpus}
    */
    readonly vcpus?: number;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig | undefined);
    private _baselineOcpuUtilization?;
    get baselineOcpuUtilization(): string;
    set baselineOcpuUtilization(value: string);
    resetBaselineOcpuUtilization(): void;
    get baselineOcpuUtilizationInput(): string | undefined;
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
    private _vcpus?;
    get vcpus(): number;
    set vcpus(value: number);
    resetVcpus(): void;
    get vcpusInput(): number | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags_filter CoreInstanceConfiguration#defined_tags_filter}
    */
    readonly definedTagsFilter?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#operating_system CoreInstanceConfiguration#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#operating_system_version CoreInstanceConfiguration#operating_system_version}
    */
    readonly operatingSystemVersion?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _definedTagsFilter?;
    get definedTagsFilter(): {
        [key: string]: string;
    };
    set definedTagsFilter(value: {
        [key: string]: string;
    });
    resetDefinedTagsFilter(): void;
    get definedTagsFilterInput(): {
        [key: string]: string;
    } | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
    private _operatingSystemVersion?;
    get operatingSystemVersion(): string;
    set operatingSystemVersion(value: string);
    resetOperatingSystemVersion(): void;
    get operatingSystemVersionInput(): string | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_id CoreInstanceConfiguration#boot_volume_id}
    */
    readonly bootVolumeId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_size_in_gbs CoreInstanceConfiguration#boot_volume_size_in_gbs}
    */
    readonly bootVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#boot_volume_vpus_per_gb CoreInstanceConfiguration#boot_volume_vpus_per_gb}
    */
    readonly bootVolumeVpusPerGb?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#image_id CoreInstanceConfiguration#image_id}
    */
    readonly imageId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#kms_key_id CoreInstanceConfiguration#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_type CoreInstanceConfiguration#source_type}
    */
    readonly sourceType: string;
    /**
    * instance_source_image_filter_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_source_image_filter_details CoreInstanceConfiguration#instance_source_image_filter_details}
    */
    readonly instanceSourceImageFilterDetails?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails | undefined);
    private _bootVolumeId?;
    get bootVolumeId(): string;
    set bootVolumeId(value: string);
    resetBootVolumeId(): void;
    get bootVolumeIdInput(): string | undefined;
    private _bootVolumeSizeInGbs?;
    get bootVolumeSizeInGbs(): string;
    set bootVolumeSizeInGbs(value: string);
    resetBootVolumeSizeInGbs(): void;
    get bootVolumeSizeInGbsInput(): string | undefined;
    private _bootVolumeVpusPerGb?;
    get bootVolumeVpusPerGb(): string;
    set bootVolumeVpusPerGb(value: string);
    resetBootVolumeVpusPerGb(): void;
    get bootVolumeVpusPerGbInput(): string | undefined;
    private _imageId?;
    get imageId(): string;
    set imageId(value: string);
    resetImageId(): void;
    get imageIdInput(): string | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    get sourceTypeInput(): string | undefined;
    private _instanceSourceImageFilterDetails;
    get instanceSourceImageFilterDetails(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetailsOutputReference;
    putInstanceSourceImageFilterDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails): void;
    resetInstanceSourceImageFilterDetails(): void;
    get instanceSourceImageFilterDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsInstanceSourceImageFilterDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_domain CoreInstanceConfiguration#availability_domain}
    */
    readonly availabilityDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#capacity_reservation_id CoreInstanceConfiguration#capacity_reservation_id}
    */
    readonly capacityReservationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#cluster_placement_group_id CoreInstanceConfiguration#cluster_placement_group_id}
    */
    readonly clusterPlacementGroupId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#compartment_id CoreInstanceConfiguration#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#dedicated_vm_host_id CoreInstanceConfiguration#dedicated_vm_host_id}
    */
    readonly dedicatedVmHostId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#extended_metadata CoreInstanceConfiguration#extended_metadata}
    */
    readonly extendedMetadata?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#fault_domain CoreInstanceConfiguration#fault_domain}
    */
    readonly faultDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipxe_script CoreInstanceConfiguration#ipxe_script}
    */
    readonly ipxeScript?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#is_pv_encryption_in_transit_enabled CoreInstanceConfiguration#is_pv_encryption_in_transit_enabled}
    */
    readonly isPvEncryptionInTransitEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_mode CoreInstanceConfiguration#launch_mode}
    */
    readonly launchMode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#metadata CoreInstanceConfiguration#metadata}
    */
    readonly metadata?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preferred_maintenance_action CoreInstanceConfiguration#preferred_maintenance_action}
    */
    readonly preferredMaintenanceAction?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#shape CoreInstanceConfiguration#shape}
    */
    readonly shape?: string;
    /**
    * agent_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#agent_config CoreInstanceConfiguration#agent_config}
    */
    readonly agentConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig;
    /**
    * availability_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#availability_config CoreInstanceConfiguration#availability_config}
    */
    readonly availabilityConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig;
    /**
    * create_vnic_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_vnic_details CoreInstanceConfiguration#create_vnic_details}
    */
    readonly createVnicDetails?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails;
    /**
    * instance_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_options CoreInstanceConfiguration#instance_options}
    */
    readonly instanceOptions?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions;
    /**
    * launch_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_options CoreInstanceConfiguration#launch_options}
    */
    readonly launchOptions?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions;
    /**
    * platform_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#platform_config CoreInstanceConfiguration#platform_config}
    */
    readonly platformConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig;
    /**
    * preemptible_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#preemptible_instance_config CoreInstanceConfiguration#preemptible_instance_config}
    */
    readonly preemptibleInstanceConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#shape_config CoreInstanceConfiguration#shape_config}
    */
    readonly shapeConfig?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig;
    /**
    * source_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#source_details CoreInstanceConfiguration#source_details}
    */
    readonly sourceDetails?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    resetAvailabilityDomain(): void;
    get availabilityDomainInput(): string | undefined;
    private _capacityReservationId?;
    get capacityReservationId(): string;
    set capacityReservationId(value: string);
    resetCapacityReservationId(): void;
    get capacityReservationIdInput(): string | undefined;
    private _clusterPlacementGroupId?;
    get clusterPlacementGroupId(): string;
    set clusterPlacementGroupId(value: string);
    resetClusterPlacementGroupId(): void;
    get clusterPlacementGroupIdInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _dedicatedVmHostId?;
    get dedicatedVmHostId(): string;
    set dedicatedVmHostId(value: string);
    resetDedicatedVmHostId(): void;
    get dedicatedVmHostIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _extendedMetadata?;
    get extendedMetadata(): {
        [key: string]: string;
    };
    set extendedMetadata(value: {
        [key: string]: string;
    });
    resetExtendedMetadata(): void;
    get extendedMetadataInput(): {
        [key: string]: string;
    } | undefined;
    private _faultDomain?;
    get faultDomain(): string;
    set faultDomain(value: string);
    resetFaultDomain(): void;
    get faultDomainInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _ipxeScript?;
    get ipxeScript(): string;
    set ipxeScript(value: string);
    resetIpxeScript(): void;
    get ipxeScriptInput(): string | undefined;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _launchMode?;
    get launchMode(): string;
    set launchMode(value: string);
    resetLaunchMode(): void;
    get launchModeInput(): string | undefined;
    private _metadata?;
    get metadata(): {
        [key: string]: string;
    };
    set metadata(value: {
        [key: string]: string;
    });
    resetMetadata(): void;
    get metadataInput(): {
        [key: string]: string;
    } | undefined;
    private _preferredMaintenanceAction?;
    get preferredMaintenanceAction(): string;
    set preferredMaintenanceAction(value: string);
    resetPreferredMaintenanceAction(): void;
    get preferredMaintenanceActionInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    resetShape(): void;
    get shapeInput(): string | undefined;
    private _agentConfig;
    get agentConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfigOutputReference;
    putAgentConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig): void;
    resetAgentConfig(): void;
    get agentConfigInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAgentConfig | undefined;
    private _availabilityConfig;
    get availabilityConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfigOutputReference;
    putAvailabilityConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig): void;
    resetAvailabilityConfig(): void;
    get availabilityConfigInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsAvailabilityConfig | undefined;
    private _createVnicDetails;
    get createVnicDetails(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetailsOutputReference;
    putCreateVnicDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails): void;
    resetCreateVnicDetails(): void;
    get createVnicDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsCreateVnicDetails | undefined;
    private _instanceOptions;
    get instanceOptions(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptionsOutputReference;
    putInstanceOptions(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions): void;
    resetInstanceOptions(): void;
    get instanceOptionsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsInstanceOptions | undefined;
    private _launchOptions;
    get launchOptions(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptionsOutputReference;
    putLaunchOptions(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions): void;
    resetLaunchOptions(): void;
    get launchOptionsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsLaunchOptions | undefined;
    private _platformConfig;
    get platformConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfigOutputReference;
    putPlatformConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig): void;
    resetPlatformConfig(): void;
    get platformConfigInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPlatformConfig | undefined;
    private _preemptibleInstanceConfig;
    get preemptibleInstanceConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfigOutputReference;
    putPreemptibleInstanceConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig): void;
    resetPreemptibleInstanceConfig(): void;
    get preemptibleInstanceConfigInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsPreemptibleInstanceConfig | undefined;
    private _shapeConfig;
    get shapeConfig(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfigOutputReference;
    putShapeConfig(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsShapeConfig | undefined;
    private _sourceDetails;
    get sourceDetails(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetailsOutputReference;
    putSourceDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails): void;
    resetSourceDetails(): void;
    get sourceDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsSourceDetails | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address CoreInstanceConfiguration#ipv6address}
    */
    readonly ipv6Address?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6subnet_cidr CoreInstanceConfiguration#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6Address?;
    get ipv6Address(): string;
    set ipv6Address(value: string);
    resetIpv6Address(): void;
    get ipv6AddressInput(): string | undefined;
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_ipv6ip CoreInstanceConfiguration#assign_ipv6ip}
    */
    readonly assignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_private_dns_record CoreInstanceConfiguration#assign_private_dns_record}
    */
    readonly assignPrivateDnsRecord?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_public_ip CoreInstanceConfiguration#assign_public_ip}
    */
    readonly assignPublicIp?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#hostname_label CoreInstanceConfiguration#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nsg_ids CoreInstanceConfiguration#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#private_ip CoreInstanceConfiguration#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#skip_source_dest_check CoreInstanceConfiguration#skip_source_dest_check}
    */
    readonly skipSourceDestCheck?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#subnet_id CoreInstanceConfiguration#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address_ipv6subnet_cidr_pair_details CoreInstanceConfiguration#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails | undefined);
    private _assignIpv6Ip?;
    get assignIpv6Ip(): boolean | cdktf.IResolvable;
    set assignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetAssignIpv6Ip(): void;
    get assignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPrivateDnsRecord?;
    get assignPrivateDnsRecord(): boolean | cdktf.IResolvable;
    set assignPrivateDnsRecord(value: boolean | cdktf.IResolvable);
    resetAssignPrivateDnsRecord(): void;
    get assignPrivateDnsRecordInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPublicIp?;
    get assignPublicIp(): boolean | cdktf.IResolvable;
    set assignPublicIp(value: boolean | cdktf.IResolvable);
    resetAssignPublicIp(): void;
    get assignPublicIpInput(): boolean | cdktf.IResolvable | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _privateIp?;
    get privateIp(): string;
    set privateIp(value: string);
    resetPrivateIp(): void;
    get privateIpInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _skipSourceDestCheck?;
    get skipSourceDestCheck(): boolean | cdktf.IResolvable;
    set skipSourceDestCheck(value: boolean | cdktf.IResolvable);
    resetSkipSourceDestCheck(): void;
    get skipSourceDestCheckInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nic_index CoreInstanceConfiguration#nic_index}
    */
    readonly nicIndex?: number;
    /**
    * create_vnic_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_vnic_details CoreInstanceConfiguration#create_vnic_details}
    */
    readonly createVnicDetails?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics | cdktf.IResolvable | undefined);
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _nicIndex?;
    get nicIndex(): number;
    set nicIndex(value: number);
    resetNicIndex(): void;
    get nicIndexInput(): number | undefined;
    private _createVnicDetails;
    get createVnicDetails(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetailsOutputReference;
    putCreateVnicDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails): void;
    resetCreateVnicDetails(): void;
    get createVnicDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsCreateVnicDetails | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsOptions {
    /**
    * block_volumes block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#block_volumes CoreInstanceConfiguration#block_volumes}
    */
    readonly blockVolumes?: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes[] | cdktf.IResolvable;
    /**
    * launch_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_details CoreInstanceConfiguration#launch_details}
    */
    readonly launchDetails?: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails;
    /**
    * secondary_vnics block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#secondary_vnics CoreInstanceConfiguration#secondary_vnics}
    */
    readonly secondaryVnics?: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsOptionsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptions | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsOptionsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOptions | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsOptionsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsOptions | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsOptions | cdktf.IResolvable | undefined);
    private _blockVolumes;
    get blockVolumes(): CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumesList;
    putBlockVolumes(value: CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes[] | cdktf.IResolvable): void;
    resetBlockVolumes(): void;
    get blockVolumesInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsBlockVolumes[] | undefined;
    private _launchDetails;
    get launchDetails(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetailsOutputReference;
    putLaunchDetails(value: CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails): void;
    resetLaunchDetails(): void;
    get launchDetailsInput(): CoreInstanceConfigurationInstanceDetailsOptionsLaunchDetails | undefined;
    private _secondaryVnics;
    get secondaryVnics(): CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnicsList;
    putSecondaryVnics(value: CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics[] | cdktf.IResolvable): void;
    resetSecondaryVnics(): void;
    get secondaryVnicsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptionsSecondaryVnics[] | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsOptionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsOptions[] | 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): CoreInstanceConfigurationInstanceDetailsOptionsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address CoreInstanceConfiguration#ipv6address}
    */
    readonly ipv6Address?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6subnet_cidr CoreInstanceConfiguration#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6Address?;
    get ipv6Address(): string;
    set ipv6Address(value: string);
    resetIpv6Address(): void;
    get ipv6AddressInput(): string | undefined;
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_ipv6ip CoreInstanceConfiguration#assign_ipv6ip}
    */
    readonly assignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_private_dns_record CoreInstanceConfiguration#assign_private_dns_record}
    */
    readonly assignPrivateDnsRecord?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#assign_public_ip CoreInstanceConfiguration#assign_public_ip}
    */
    readonly assignPublicIp?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#defined_tags CoreInstanceConfiguration#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#freeform_tags CoreInstanceConfiguration#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#hostname_label CoreInstanceConfiguration#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nsg_ids CoreInstanceConfiguration#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#private_ip CoreInstanceConfiguration#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#security_attributes CoreInstanceConfiguration#security_attributes}
    */
    readonly securityAttributes?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#skip_source_dest_check CoreInstanceConfiguration#skip_source_dest_check}
    */
    readonly skipSourceDestCheck?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#subnet_id CoreInstanceConfiguration#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#ipv6address_ipv6subnet_cidr_pair_details CoreInstanceConfiguration#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsOutputReference | CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails | undefined);
    private _assignIpv6Ip?;
    get assignIpv6Ip(): boolean | cdktf.IResolvable;
    set assignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetAssignIpv6Ip(): void;
    get assignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPrivateDnsRecord?;
    get assignPrivateDnsRecord(): boolean | cdktf.IResolvable;
    set assignPrivateDnsRecord(value: boolean | cdktf.IResolvable);
    resetAssignPrivateDnsRecord(): void;
    get assignPrivateDnsRecordInput(): boolean | cdktf.IResolvable | undefined;
    private _assignPublicIp?;
    get assignPublicIp(): boolean | cdktf.IResolvable;
    set assignPublicIp(value: boolean | cdktf.IResolvable);
    resetAssignPublicIp(): void;
    get assignPublicIpInput(): boolean | cdktf.IResolvable | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _nsgIds?;
    get nsgIds(): string[];
    set nsgIds(value: string[]);
    resetNsgIds(): void;
    get nsgIdsInput(): string[] | undefined;
    private _privateIp?;
    get privateIp(): string;
    set privateIp(value: string);
    resetPrivateIp(): void;
    get privateIpInput(): string | undefined;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    private _skipSourceDestCheck?;
    get skipSourceDestCheck(): boolean | cdktf.IResolvable;
    set skipSourceDestCheck(value: boolean | cdktf.IResolvable);
    resetSkipSourceDestCheck(): void;
    get skipSourceDestCheckInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstanceConfigurationInstanceDetailsSecondaryVnics {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#display_name CoreInstanceConfiguration#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#nic_index CoreInstanceConfiguration#nic_index}
    */
    readonly nicIndex?: number;
    /**
    * create_vnic_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create_vnic_details CoreInstanceConfiguration#create_vnic_details}
    */
    readonly createVnicDetails?: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails;
}
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnics | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationInstanceDetailsSecondaryVnicsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsSecondaryVnics | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationInstanceDetailsSecondaryVnicsOutputReference 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(): CoreInstanceConfigurationInstanceDetailsSecondaryVnics | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnics | cdktf.IResolvable | undefined);
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _nicIndex?;
    get nicIndex(): number;
    set nicIndex(value: number);
    resetNicIndex(): void;
    get nicIndexInput(): number | undefined;
    private _createVnicDetails;
    get createVnicDetails(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetailsOutputReference;
    putCreateVnicDetails(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails): void;
    resetCreateVnicDetails(): void;
    get createVnicDetailsInput(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsCreateVnicDetails | undefined;
}
export declare class CoreInstanceConfigurationInstanceDetailsSecondaryVnicsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceConfigurationInstanceDetailsSecondaryVnics[] | 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): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsOutputReference;
}
export interface CoreInstanceConfigurationInstanceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#instance_type CoreInstanceConfiguration#instance_type}
    */
    readonly instanceType: string;
    /**
    * block_volumes block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#block_volumes CoreInstanceConfiguration#block_volumes}
    */
    readonly blockVolumes?: CoreInstanceConfigurationInstanceDetailsBlockVolumes[] | cdktf.IResolvable;
    /**
    * launch_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#launch_details CoreInstanceConfiguration#launch_details}
    */
    readonly launchDetails?: CoreInstanceConfigurationInstanceDetailsLaunchDetails;
    /**
    * options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#options CoreInstanceConfiguration#options}
    */
    readonly options?: CoreInstanceConfigurationInstanceDetailsOptions[] | cdktf.IResolvable;
    /**
    * secondary_vnics block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#secondary_vnics CoreInstanceConfiguration#secondary_vnics}
    */
    readonly secondaryVnics?: CoreInstanceConfigurationInstanceDetailsSecondaryVnics[] | cdktf.IResolvable;
}
export declare function coreInstanceConfigurationInstanceDetailsToTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOutputReference | CoreInstanceConfigurationInstanceDetails): any;
export declare function coreInstanceConfigurationInstanceDetailsToHclTerraform(struct?: CoreInstanceConfigurationInstanceDetailsOutputReference | CoreInstanceConfigurationInstanceDetails): any;
export declare class CoreInstanceConfigurationInstanceDetailsOutputReference 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(): CoreInstanceConfigurationInstanceDetails | undefined;
    set internalValue(value: CoreInstanceConfigurationInstanceDetails | undefined);
    private _instanceType?;
    get instanceType(): string;
    set instanceType(value: string);
    get instanceTypeInput(): string | undefined;
    private _blockVolumes;
    get blockVolumes(): CoreInstanceConfigurationInstanceDetailsBlockVolumesList;
    putBlockVolumes(value: CoreInstanceConfigurationInstanceDetailsBlockVolumes[] | cdktf.IResolvable): void;
    resetBlockVolumes(): void;
    get blockVolumesInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsBlockVolumes[] | undefined;
    private _launchDetails;
    get launchDetails(): CoreInstanceConfigurationInstanceDetailsLaunchDetailsOutputReference;
    putLaunchDetails(value: CoreInstanceConfigurationInstanceDetailsLaunchDetails): void;
    resetLaunchDetails(): void;
    get launchDetailsInput(): CoreInstanceConfigurationInstanceDetailsLaunchDetails | undefined;
    private _options;
    get options(): CoreInstanceConfigurationInstanceDetailsOptionsList;
    putOptions(value: CoreInstanceConfigurationInstanceDetailsOptions[] | cdktf.IResolvable): void;
    resetOptions(): void;
    get optionsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsOptions[] | undefined;
    private _secondaryVnics;
    get secondaryVnics(): CoreInstanceConfigurationInstanceDetailsSecondaryVnicsList;
    putSecondaryVnics(value: CoreInstanceConfigurationInstanceDetailsSecondaryVnics[] | cdktf.IResolvable): void;
    resetSecondaryVnics(): void;
    get secondaryVnicsInput(): cdktf.IResolvable | CoreInstanceConfigurationInstanceDetailsSecondaryVnics[] | undefined;
}
export interface CoreInstanceConfigurationTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#create CoreInstanceConfiguration#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#delete CoreInstanceConfiguration#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#update CoreInstanceConfiguration#update}
    */
    readonly update?: string;
}
export declare function coreInstanceConfigurationTimeoutsToTerraform(struct?: CoreInstanceConfigurationTimeouts | cdktf.IResolvable): any;
export declare function coreInstanceConfigurationTimeoutsToHclTerraform(struct?: CoreInstanceConfigurationTimeouts | cdktf.IResolvable): any;
export declare class CoreInstanceConfigurationTimeoutsOutputReference 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(): CoreInstanceConfigurationTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceConfigurationTimeouts | 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/core_instance_configuration oci_core_instance_configuration}
*/
export declare class CoreInstanceConfiguration extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_core_instance_configuration";
    /**
    * Generates CDKTF code for importing a CoreInstanceConfiguration 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 CoreInstanceConfiguration to import
    * @param importFromId The id of the existing CoreInstanceConfiguration that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_configuration#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CoreInstanceConfiguration 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/core_instance_configuration oci_core_instance_configuration} 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 CoreInstanceConfigurationConfig
    */
    constructor(scope: Construct, id: string, config: CoreInstanceConfigurationConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    get deferredFields(): string[];
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): 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;
    private _instanceId?;
    get instanceId(): string;
    set instanceId(value: string);
    resetInstanceId(): void;
    get instanceIdInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    resetSource(): void;
    get sourceInput(): string | undefined;
    get timeCreated(): string;
    private _instanceDetails;
    get instanceDetails(): CoreInstanceConfigurationInstanceDetailsOutputReference;
    putInstanceDetails(value: CoreInstanceConfigurationInstanceDetails): void;
    resetInstanceDetails(): void;
    get instanceDetailsInput(): CoreInstanceConfigurationInstanceDetails | undefined;
    private _timeouts;
    get timeouts(): CoreInstanceConfigurationTimeoutsOutputReference;
    putTimeouts(value: CoreInstanceConfigurationTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CoreInstanceConfigurationTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
