import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CoreInstanceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#async CoreInstance#async}
    */
    readonly async?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#availability_domain CoreInstance#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#capacity_reservation_id CoreInstance#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#cluster_placement_group_id CoreInstance#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#compartment_id CoreInstance#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#compute_cluster_id CoreInstance#compute_cluster_id}
    */
    readonly computeClusterId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#dedicated_vm_host_id CoreInstance#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#defined_tags CoreInstance#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#display_name CoreInstance#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#extended_metadata CoreInstance#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#fault_domain CoreInstance#fault_domain}
    */
    readonly faultDomain?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#freeform_tags CoreInstance#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#hostname_label CoreInstance#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#id CoreInstance#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#image CoreInstance#image}
    */
    readonly image?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#instance_configuration_id CoreInstance#instance_configuration_id}
    */
    readonly instanceConfigurationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#ipxe_script CoreInstance#ipxe_script}
    */
    readonly ipxeScript?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#is_pv_encryption_in_transit_enabled CoreInstance#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#metadata CoreInstance#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#preserve_boot_volume CoreInstance#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#preserve_data_volumes_created_at_launch CoreInstance#preserve_data_volumes_created_at_launch}
    */
    readonly preserveDataVolumesCreatedAtLaunch?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#security_attributes CoreInstance#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#shape CoreInstance#shape}
    */
    readonly shape?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#state CoreInstance#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#subnet_id CoreInstance#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#update_operation_constraint CoreInstance#update_operation_constraint}
    */
    readonly updateOperationConstraint?: string;
    /**
    * agent_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#agent_config CoreInstance#agent_config}
    */
    readonly agentConfig?: CoreInstanceAgentConfig;
    /**
    * availability_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#availability_config CoreInstance#availability_config}
    */
    readonly availabilityConfig?: CoreInstanceAvailabilityConfig;
    /**
    * create_vnic_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#create_vnic_details CoreInstance#create_vnic_details}
    */
    readonly createVnicDetails?: CoreInstanceCreateVnicDetails;
    /**
    * instance_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#instance_options CoreInstance#instance_options}
    */
    readonly instanceOptions?: CoreInstanceInstanceOptions;
    /**
    * launch_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#launch_options CoreInstance#launch_options}
    */
    readonly launchOptions?: CoreInstanceLaunchOptions;
    /**
    * launch_volume_attachments block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#launch_volume_attachments CoreInstance#launch_volume_attachments}
    */
    readonly launchVolumeAttachments?: CoreInstanceLaunchVolumeAttachments[] | cdktf.IResolvable;
    /**
    * platform_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#platform_config CoreInstance#platform_config}
    */
    readonly platformConfig?: CoreInstancePlatformConfig;
    /**
    * preemptible_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#preemptible_instance_config CoreInstance#preemptible_instance_config}
    */
    readonly preemptibleInstanceConfig?: CoreInstancePreemptibleInstanceConfig;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#shape_config CoreInstance#shape_config}
    */
    readonly shapeConfig?: CoreInstanceShapeConfig;
    /**
    * source_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#source_details CoreInstance#source_details}
    */
    readonly sourceDetails?: CoreInstanceSourceDetails;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#timeouts CoreInstance#timeouts}
    */
    readonly timeouts?: CoreInstanceTimeouts;
}
export interface CoreInstanceAgentConfigPluginsConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#desired_state CoreInstance#desired_state}
    */
    readonly desiredState: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#name CoreInstance#name}
    */
    readonly name: string;
}
export declare function coreInstanceAgentConfigPluginsConfigToTerraform(struct?: CoreInstanceAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare function coreInstanceAgentConfigPluginsConfigToHclTerraform(struct?: CoreInstanceAgentConfigPluginsConfig | cdktf.IResolvable): any;
export declare class CoreInstanceAgentConfigPluginsConfigOutputReference 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(): CoreInstanceAgentConfigPluginsConfig | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceAgentConfigPluginsConfig | cdktf.IResolvable | undefined);
    private _desiredState?;
    get desiredState(): string;
    set desiredState(value: string);
    get desiredStateInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
}
export declare class CoreInstanceAgentConfigPluginsConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceAgentConfigPluginsConfig[] | 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): CoreInstanceAgentConfigPluginsConfigOutputReference;
}
export interface CoreInstanceAgentConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#are_all_plugins_disabled CoreInstance#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#is_management_disabled CoreInstance#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#is_monitoring_disabled CoreInstance#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#plugins_config CoreInstance#plugins_config}
    */
    readonly pluginsConfig?: CoreInstanceAgentConfigPluginsConfig[] | cdktf.IResolvable;
}
export declare function coreInstanceAgentConfigToTerraform(struct?: CoreInstanceAgentConfigOutputReference | CoreInstanceAgentConfig): any;
export declare function coreInstanceAgentConfigToHclTerraform(struct?: CoreInstanceAgentConfigOutputReference | CoreInstanceAgentConfig): any;
export declare class CoreInstanceAgentConfigOutputReference 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(): CoreInstanceAgentConfig | undefined;
    set internalValue(value: CoreInstanceAgentConfig | 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(): CoreInstanceAgentConfigPluginsConfigList;
    putPluginsConfig(value: CoreInstanceAgentConfigPluginsConfig[] | cdktf.IResolvable): void;
    resetPluginsConfig(): void;
    get pluginsConfigInput(): cdktf.IResolvable | CoreInstanceAgentConfigPluginsConfig[] | undefined;
}
export interface CoreInstanceAvailabilityConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#is_live_migration_preferred CoreInstance#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#recovery_action CoreInstance#recovery_action}
    */
    readonly recoveryAction?: string;
}
export declare function coreInstanceAvailabilityConfigToTerraform(struct?: CoreInstanceAvailabilityConfigOutputReference | CoreInstanceAvailabilityConfig): any;
export declare function coreInstanceAvailabilityConfigToHclTerraform(struct?: CoreInstanceAvailabilityConfigOutputReference | CoreInstanceAvailabilityConfig): any;
export declare class CoreInstanceAvailabilityConfigOutputReference 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(): CoreInstanceAvailabilityConfig | undefined;
    set internalValue(value: CoreInstanceAvailabilityConfig | 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 CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#ipv6address CoreInstance#ipv6address}
    */
    readonly ipv6Address?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#ipv6subnet_cidr CoreInstance#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails | 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 CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstanceCreateVnicDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#assign_ipv6ip CoreInstance#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#assign_private_dns_record CoreInstance#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#assign_public_ip CoreInstance#assign_public_ip}
    */
    readonly assignPublicIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#defined_tags CoreInstance#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#display_name CoreInstance#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#freeform_tags CoreInstance#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#hostname_label CoreInstance#hostname_label}
    */
    readonly hostnameLabel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#nsg_ids CoreInstance#nsg_ids}
    */
    readonly nsgIds?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#private_ip CoreInstance#private_ip}
    */
    readonly privateIp?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#security_attributes CoreInstance#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#skip_source_dest_check CoreInstance#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#subnet_id CoreInstance#subnet_id}
    */
    readonly subnetId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#vlan_id CoreInstance#vlan_id}
    */
    readonly vlanId?: 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#ipv6address_ipv6subnet_cidr_pair_details CoreInstance#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstanceCreateVnicDetailsToTerraform(struct?: CoreInstanceCreateVnicDetailsOutputReference | CoreInstanceCreateVnicDetails): any;
export declare function coreInstanceCreateVnicDetailsToHclTerraform(struct?: CoreInstanceCreateVnicDetailsOutputReference | CoreInstanceCreateVnicDetails): any;
export declare class CoreInstanceCreateVnicDetailsOutputReference 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(): CoreInstanceCreateVnicDetails | undefined;
    set internalValue(value: CoreInstanceCreateVnicDetails | 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(): string;
    set assignPublicIp(value: string);
    resetAssignPublicIp(): void;
    get assignPublicIpInput(): 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 _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 _vlanId?;
    get vlanId(): string;
    set vlanId(value: string);
    resetVlanId(): void;
    get vlanIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstanceCreateVnicDetailsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstanceInstanceOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#are_legacy_imds_endpoints_disabled CoreInstance#are_legacy_imds_endpoints_disabled}
    */
    readonly areLegacyImdsEndpointsDisabled?: boolean | cdktf.IResolvable;
}
export declare function coreInstanceInstanceOptionsToTerraform(struct?: CoreInstanceInstanceOptionsOutputReference | CoreInstanceInstanceOptions): any;
export declare function coreInstanceInstanceOptionsToHclTerraform(struct?: CoreInstanceInstanceOptionsOutputReference | CoreInstanceInstanceOptions): any;
export declare class CoreInstanceInstanceOptionsOutputReference 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(): CoreInstanceInstanceOptions | undefined;
    set internalValue(value: CoreInstanceInstanceOptions | undefined);
    private _areLegacyImdsEndpointsDisabled?;
    get areLegacyImdsEndpointsDisabled(): boolean | cdktf.IResolvable;
    set areLegacyImdsEndpointsDisabled(value: boolean | cdktf.IResolvable);
    resetAreLegacyImdsEndpointsDisabled(): void;
    get areLegacyImdsEndpointsDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface CoreInstanceLaunchOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#boot_volume_type CoreInstance#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#firmware CoreInstance#firmware}
    */
    readonly firmware?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#is_consistent_volume_naming_enabled CoreInstance#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#is_pv_encryption_in_transit_enabled CoreInstance#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#network_type CoreInstance#network_type}
    */
    readonly networkType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#remote_data_volume_type CoreInstance#remote_data_volume_type}
    */
    readonly remoteDataVolumeType?: string;
}
export declare function coreInstanceLaunchOptionsToTerraform(struct?: CoreInstanceLaunchOptionsOutputReference | CoreInstanceLaunchOptions): any;
export declare function coreInstanceLaunchOptionsToHclTerraform(struct?: CoreInstanceLaunchOptionsOutputReference | CoreInstanceLaunchOptions): any;
export declare class CoreInstanceLaunchOptionsOutputReference 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(): CoreInstanceLaunchOptions | undefined;
    set internalValue(value: CoreInstanceLaunchOptions | 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 CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#compartment_id CoreInstance#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#display_name CoreInstance#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#kms_key_id CoreInstance#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#size_in_gbs CoreInstance#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#volume_creation_type CoreInstance#volume_creation_type}
    */
    readonly volumeCreationType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#vpus_per_gb CoreInstance#vpus_per_gb}
    */
    readonly vpusPerGb?: string;
}
export declare function coreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsToTerraform(struct?: CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsOutputReference | CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails): any;
export declare function coreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsToHclTerraform(struct?: CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsOutputReference | CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails): any;
export declare class CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsOutputReference 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(): CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails | undefined;
    set internalValue(value: CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | 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);
    get sizeInGbsInput(): string | undefined;
    private _volumeCreationType?;
    get volumeCreationType(): string;
    set volumeCreationType(value: string);
    get volumeCreationTypeInput(): string | undefined;
    private _vpusPerGb?;
    get vpusPerGb(): string;
    set vpusPerGb(value: string);
    resetVpusPerGb(): void;
    get vpusPerGbInput(): string | undefined;
}
export interface CoreInstanceLaunchVolumeAttachments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#device CoreInstance#device}
    */
    readonly device?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#display_name CoreInstance#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#encryption_in_transit_type CoreInstance#encryption_in_transit_type}
    */
    readonly encryptionInTransitType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#is_agent_auto_iscsi_login_enabled CoreInstance#is_agent_auto_iscsi_login_enabled}
    */
    readonly isAgentAutoIscsiLoginEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#is_pv_encryption_in_transit_enabled CoreInstance#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#is_read_only CoreInstance#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#is_shareable CoreInstance#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#type CoreInstance#type}
    */
    readonly type: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#use_chap CoreInstance#use_chap}
    */
    readonly useChap?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#volume_id CoreInstance#volume_id}
    */
    readonly volumeId?: string;
    /**
    * launch_create_volume_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#launch_create_volume_details CoreInstance#launch_create_volume_details}
    */
    readonly launchCreateVolumeDetails?: CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails;
}
export declare function coreInstanceLaunchVolumeAttachmentsToTerraform(struct?: CoreInstanceLaunchVolumeAttachments | cdktf.IResolvable): any;
export declare function coreInstanceLaunchVolumeAttachmentsToHclTerraform(struct?: CoreInstanceLaunchVolumeAttachments | cdktf.IResolvable): any;
export declare class CoreInstanceLaunchVolumeAttachmentsOutputReference 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(): CoreInstanceLaunchVolumeAttachments | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceLaunchVolumeAttachments | cdktf.IResolvable | 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 _encryptionInTransitType?;
    get encryptionInTransitType(): string;
    set encryptionInTransitType(value: string);
    resetEncryptionInTransitType(): void;
    get encryptionInTransitTypeInput(): string | undefined;
    private _isAgentAutoIscsiLoginEnabled?;
    get isAgentAutoIscsiLoginEnabled(): boolean | cdktf.IResolvable;
    set isAgentAutoIscsiLoginEnabled(value: boolean | cdktf.IResolvable);
    resetIsAgentAutoIscsiLoginEnabled(): void;
    get isAgentAutoIscsiLoginEnabledInput(): 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 _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;
    private _volumeId?;
    get volumeId(): string;
    set volumeId(value: string);
    resetVolumeId(): void;
    get volumeIdInput(): string | undefined;
    private _launchCreateVolumeDetails;
    get launchCreateVolumeDetails(): CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetailsOutputReference;
    putLaunchCreateVolumeDetails(value: CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails): void;
    resetLaunchCreateVolumeDetails(): void;
    get launchCreateVolumeDetailsInput(): CoreInstanceLaunchVolumeAttachmentsLaunchCreateVolumeDetails | undefined;
}
export declare class CoreInstanceLaunchVolumeAttachmentsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstanceLaunchVolumeAttachments[] | 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): CoreInstanceLaunchVolumeAttachmentsOutputReference;
}
export interface CoreInstancePlatformConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#are_virtual_instructions_enabled CoreInstance#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#config_map CoreInstance#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#is_access_control_service_enabled CoreInstance#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#is_input_output_memory_management_unit_enabled CoreInstance#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#is_measured_boot_enabled CoreInstance#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#is_memory_encryption_enabled CoreInstance#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#is_secure_boot_enabled CoreInstance#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#is_symmetric_multi_threading_enabled CoreInstance#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#is_trusted_platform_module_enabled CoreInstance#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#numa_nodes_per_socket CoreInstance#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#percentage_of_cores_enabled CoreInstance#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#type CoreInstance#type}
    */
    readonly type: string;
}
export declare function coreInstancePlatformConfigToTerraform(struct?: CoreInstancePlatformConfigOutputReference | CoreInstancePlatformConfig): any;
export declare function coreInstancePlatformConfigToHclTerraform(struct?: CoreInstancePlatformConfigOutputReference | CoreInstancePlatformConfig): any;
export declare class CoreInstancePlatformConfigOutputReference 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(): CoreInstancePlatformConfig | undefined;
    set internalValue(value: CoreInstancePlatformConfig | 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 CoreInstancePreemptibleInstanceConfigPreemptionAction {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#preserve_boot_volume CoreInstance#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#type CoreInstance#type}
    */
    readonly type: string;
}
export declare function coreInstancePreemptibleInstanceConfigPreemptionActionToTerraform(struct?: CoreInstancePreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstancePreemptibleInstanceConfigPreemptionAction): any;
export declare function coreInstancePreemptibleInstanceConfigPreemptionActionToHclTerraform(struct?: CoreInstancePreemptibleInstanceConfigPreemptionActionOutputReference | CoreInstancePreemptibleInstanceConfigPreemptionAction): any;
export declare class CoreInstancePreemptibleInstanceConfigPreemptionActionOutputReference 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(): CoreInstancePreemptibleInstanceConfigPreemptionAction | undefined;
    set internalValue(value: CoreInstancePreemptibleInstanceConfigPreemptionAction | 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 CoreInstancePreemptibleInstanceConfig {
    /**
    * preemption_action block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#preemption_action CoreInstance#preemption_action}
    */
    readonly preemptionAction: CoreInstancePreemptibleInstanceConfigPreemptionAction;
}
export declare function coreInstancePreemptibleInstanceConfigToTerraform(struct?: CoreInstancePreemptibleInstanceConfigOutputReference | CoreInstancePreemptibleInstanceConfig): any;
export declare function coreInstancePreemptibleInstanceConfigToHclTerraform(struct?: CoreInstancePreemptibleInstanceConfigOutputReference | CoreInstancePreemptibleInstanceConfig): any;
export declare class CoreInstancePreemptibleInstanceConfigOutputReference 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(): CoreInstancePreemptibleInstanceConfig | undefined;
    set internalValue(value: CoreInstancePreemptibleInstanceConfig | undefined);
    private _preemptionAction;
    get preemptionAction(): CoreInstancePreemptibleInstanceConfigPreemptionActionOutputReference;
    putPreemptionAction(value: CoreInstancePreemptibleInstanceConfigPreemptionAction): void;
    get preemptionActionInput(): CoreInstancePreemptibleInstanceConfigPreemptionAction | undefined;
}
export interface CoreInstanceShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#baseline_ocpu_utilization CoreInstance#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#memory_in_gbs CoreInstance#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#nvmes CoreInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#ocpus CoreInstance#ocpus}
    */
    readonly ocpus?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#vcpus CoreInstance#vcpus}
    */
    readonly vcpus?: number;
}
export declare function coreInstanceShapeConfigToTerraform(struct?: CoreInstanceShapeConfigOutputReference | CoreInstanceShapeConfig): any;
export declare function coreInstanceShapeConfigToHclTerraform(struct?: CoreInstanceShapeConfigOutputReference | CoreInstanceShapeConfig): any;
export declare class CoreInstanceShapeConfigOutputReference 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(): CoreInstanceShapeConfig | undefined;
    set internalValue(value: CoreInstanceShapeConfig | undefined);
    private _baselineOcpuUtilization?;
    get baselineOcpuUtilization(): string;
    set baselineOcpuUtilization(value: string);
    resetBaselineOcpuUtilization(): void;
    get baselineOcpuUtilizationInput(): string | undefined;
    get gpuDescription(): string;
    get gpus(): number;
    get localDiskDescription(): string;
    get localDisks(): number;
    get localDisksTotalSizeInGbs(): number;
    get maxVnicAttachments(): number;
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    get networkingBandwidthInGbps(): number;
    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;
    get processorDescription(): string;
    private _vcpus?;
    get vcpus(): number;
    set vcpus(value: number);
    resetVcpus(): void;
    get vcpusInput(): number | undefined;
}
export interface CoreInstanceSourceDetailsInstanceSourceImageFilterDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#compartment_id CoreInstance#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#defined_tags_filter CoreInstance#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#operating_system CoreInstance#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#operating_system_version CoreInstance#operating_system_version}
    */
    readonly operatingSystemVersion?: string;
}
export declare function coreInstanceSourceDetailsInstanceSourceImageFilterDetailsToTerraform(struct?: CoreInstanceSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceSourceDetailsInstanceSourceImageFilterDetails): any;
export declare function coreInstanceSourceDetailsInstanceSourceImageFilterDetailsToHclTerraform(struct?: CoreInstanceSourceDetailsInstanceSourceImageFilterDetailsOutputReference | CoreInstanceSourceDetailsInstanceSourceImageFilterDetails): any;
export declare class CoreInstanceSourceDetailsInstanceSourceImageFilterDetailsOutputReference 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(): CoreInstanceSourceDetailsInstanceSourceImageFilterDetails | undefined;
    set internalValue(value: CoreInstanceSourceDetailsInstanceSourceImageFilterDetails | undefined);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    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 CoreInstanceSourceDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#boot_volume_size_in_gbs CoreInstance#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#boot_volume_vpus_per_gb CoreInstance#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#is_preserve_boot_volume_enabled CoreInstance#is_preserve_boot_volume_enabled}
    */
    readonly isPreserveBootVolumeEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#kms_key_id CoreInstance#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#source_id CoreInstance#source_id}
    */
    readonly sourceId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#source_type CoreInstance#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#instance_source_image_filter_details CoreInstance#instance_source_image_filter_details}
    */
    readonly instanceSourceImageFilterDetails?: CoreInstanceSourceDetailsInstanceSourceImageFilterDetails;
}
export declare function coreInstanceSourceDetailsToTerraform(struct?: CoreInstanceSourceDetailsOutputReference | CoreInstanceSourceDetails): any;
export declare function coreInstanceSourceDetailsToHclTerraform(struct?: CoreInstanceSourceDetailsOutputReference | CoreInstanceSourceDetails): any;
export declare class CoreInstanceSourceDetailsOutputReference 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(): CoreInstanceSourceDetails | undefined;
    set internalValue(value: CoreInstanceSourceDetails | 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 _isPreserveBootVolumeEnabled?;
    get isPreserveBootVolumeEnabled(): boolean | cdktf.IResolvable;
    set isPreserveBootVolumeEnabled(value: boolean | cdktf.IResolvable);
    resetIsPreserveBootVolumeEnabled(): void;
    get isPreserveBootVolumeEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _sourceId?;
    get sourceId(): string;
    set sourceId(value: string);
    resetSourceId(): void;
    get sourceIdInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    get sourceTypeInput(): string | undefined;
    private _instanceSourceImageFilterDetails;
    get instanceSourceImageFilterDetails(): CoreInstanceSourceDetailsInstanceSourceImageFilterDetailsOutputReference;
    putInstanceSourceImageFilterDetails(value: CoreInstanceSourceDetailsInstanceSourceImageFilterDetails): void;
    resetInstanceSourceImageFilterDetails(): void;
    get instanceSourceImageFilterDetailsInput(): CoreInstanceSourceDetailsInstanceSourceImageFilterDetails | undefined;
}
export interface CoreInstanceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#create CoreInstance#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#delete CoreInstance#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#update CoreInstance#update}
    */
    readonly update?: string;
}
export declare function coreInstanceTimeoutsToTerraform(struct?: CoreInstanceTimeouts | cdktf.IResolvable): any;
export declare function coreInstanceTimeoutsToHclTerraform(struct?: CoreInstanceTimeouts | cdktf.IResolvable): any;
export declare class CoreInstanceTimeoutsOutputReference 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(): CoreInstanceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstanceTimeouts | 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 oci_core_instance}
*/
export declare class CoreInstance extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_core_instance";
    /**
    * Generates CDKTF code for importing a CoreInstance 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 CoreInstance to import
    * @param importFromId The id of the existing CoreInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CoreInstance 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 oci_core_instance} 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 CoreInstanceConfig
    */
    constructor(scope: Construct, id: string, config: CoreInstanceConfig);
    private _async?;
    get async(): boolean | cdktf.IResolvable;
    set async(value: boolean | cdktf.IResolvable);
    resetAsync(): void;
    get asyncInput(): boolean | cdktf.IResolvable | undefined;
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    get bootVolumeId(): string;
    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);
    get compartmentIdInput(): string | undefined;
    private _computeClusterId?;
    get computeClusterId(): string;
    set computeClusterId(value: string);
    resetComputeClusterId(): void;
    get computeClusterIdInput(): 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 _hostnameLabel?;
    get hostnameLabel(): string;
    set hostnameLabel(value: string);
    resetHostnameLabel(): void;
    get hostnameLabelInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _image?;
    get image(): string;
    set image(value: string);
    resetImage(): void;
    get imageInput(): string | undefined;
    private _instanceConfigurationId?;
    get instanceConfigurationId(): string;
    set instanceConfigurationId(value: string);
    resetInstanceConfigurationId(): void;
    get instanceConfigurationIdInput(): string | undefined;
    private _ipxeScript?;
    get ipxeScript(): string;
    set ipxeScript(value: string);
    resetIpxeScript(): void;
    get ipxeScriptInput(): string | undefined;
    get isCrossNumaNode(): cdktf.IResolvable;
    private _isPvEncryptionInTransitEnabled?;
    get isPvEncryptionInTransitEnabled(): boolean | cdktf.IResolvable;
    set isPvEncryptionInTransitEnabled(value: boolean | cdktf.IResolvable);
    resetIsPvEncryptionInTransitEnabled(): void;
    get isPvEncryptionInTransitEnabledInput(): boolean | cdktf.IResolvable | undefined;
    get launchMode(): string;
    private _metadata?;
    get metadata(): {
        [key: string]: string;
    };
    set metadata(value: {
        [key: string]: string;
    });
    resetMetadata(): void;
    get metadataInput(): {
        [key: string]: string;
    } | undefined;
    private _preserveBootVolume?;
    get preserveBootVolume(): boolean | cdktf.IResolvable;
    set preserveBootVolume(value: boolean | cdktf.IResolvable);
    resetPreserveBootVolume(): void;
    get preserveBootVolumeInput(): boolean | cdktf.IResolvable | undefined;
    private _preserveDataVolumesCreatedAtLaunch?;
    get preserveDataVolumesCreatedAtLaunch(): boolean | cdktf.IResolvable;
    set preserveDataVolumesCreatedAtLaunch(value: boolean | cdktf.IResolvable);
    resetPreserveDataVolumesCreatedAtLaunch(): void;
    get preserveDataVolumesCreatedAtLaunchInput(): boolean | cdktf.IResolvable | undefined;
    get privateIp(): string;
    get publicIp(): string;
    get region(): string;
    private _securityAttributes?;
    get securityAttributes(): {
        [key: string]: string;
    };
    set securityAttributes(value: {
        [key: string]: string;
    });
    resetSecurityAttributes(): void;
    get securityAttributesInput(): {
        [key: string]: string;
    } | undefined;
    get securityAttributesState(): string;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    resetShape(): void;
    get shapeInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    resetSubnetId(): void;
    get subnetIdInput(): string | undefined;
    private _systemTags;
    get systemTags(): cdktf.StringMap;
    get timeCreated(): string;
    get timeMaintenanceRebootDue(): string;
    private _updateOperationConstraint?;
    get updateOperationConstraint(): string;
    set updateOperationConstraint(value: string);
    resetUpdateOperationConstraint(): void;
    get updateOperationConstraintInput(): string | undefined;
    private _agentConfig;
    get agentConfig(): CoreInstanceAgentConfigOutputReference;
    putAgentConfig(value: CoreInstanceAgentConfig): void;
    resetAgentConfig(): void;
    get agentConfigInput(): CoreInstanceAgentConfig | undefined;
    private _availabilityConfig;
    get availabilityConfig(): CoreInstanceAvailabilityConfigOutputReference;
    putAvailabilityConfig(value: CoreInstanceAvailabilityConfig): void;
    resetAvailabilityConfig(): void;
    get availabilityConfigInput(): CoreInstanceAvailabilityConfig | undefined;
    private _createVnicDetails;
    get createVnicDetails(): CoreInstanceCreateVnicDetailsOutputReference;
    putCreateVnicDetails(value: CoreInstanceCreateVnicDetails): void;
    resetCreateVnicDetails(): void;
    get createVnicDetailsInput(): CoreInstanceCreateVnicDetails | undefined;
    private _instanceOptions;
    get instanceOptions(): CoreInstanceInstanceOptionsOutputReference;
    putInstanceOptions(value: CoreInstanceInstanceOptions): void;
    resetInstanceOptions(): void;
    get instanceOptionsInput(): CoreInstanceInstanceOptions | undefined;
    private _launchOptions;
    get launchOptions(): CoreInstanceLaunchOptionsOutputReference;
    putLaunchOptions(value: CoreInstanceLaunchOptions): void;
    resetLaunchOptions(): void;
    get launchOptionsInput(): CoreInstanceLaunchOptions | undefined;
    private _launchVolumeAttachments;
    get launchVolumeAttachments(): CoreInstanceLaunchVolumeAttachmentsList;
    putLaunchVolumeAttachments(value: CoreInstanceLaunchVolumeAttachments[] | cdktf.IResolvable): void;
    resetLaunchVolumeAttachments(): void;
    get launchVolumeAttachmentsInput(): cdktf.IResolvable | CoreInstanceLaunchVolumeAttachments[] | undefined;
    private _platformConfig;
    get platformConfig(): CoreInstancePlatformConfigOutputReference;
    putPlatformConfig(value: CoreInstancePlatformConfig): void;
    resetPlatformConfig(): void;
    get platformConfigInput(): CoreInstancePlatformConfig | undefined;
    private _preemptibleInstanceConfig;
    get preemptibleInstanceConfig(): CoreInstancePreemptibleInstanceConfigOutputReference;
    putPreemptibleInstanceConfig(value: CoreInstancePreemptibleInstanceConfig): void;
    resetPreemptibleInstanceConfig(): void;
    get preemptibleInstanceConfigInput(): CoreInstancePreemptibleInstanceConfig | undefined;
    private _shapeConfig;
    get shapeConfig(): CoreInstanceShapeConfigOutputReference;
    putShapeConfig(value: CoreInstanceShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): CoreInstanceShapeConfig | undefined;
    private _sourceDetails;
    get sourceDetails(): CoreInstanceSourceDetailsOutputReference;
    putSourceDetails(value: CoreInstanceSourceDetails): void;
    resetSourceDetails(): void;
    get sourceDetailsInput(): CoreInstanceSourceDetails | undefined;
    private _timeouts;
    get timeouts(): CoreInstanceTimeoutsOutputReference;
    putTimeouts(value: CoreInstanceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CoreInstanceTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
