import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Cloud Exadata Infrastructure resource in Oracle Cloud Infrastructure Database service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/database/latest/CloudExadataInfrastructure
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/database
 *
 * Creates a cloud Exadata infrastructure resource. This resource is used to create either an [Exadata Cloud Service](https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/exaoverview.htm) instance or an Autonomous AI Database on dedicated Exadata infrastructure.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testCloudExadataInfrastructure = new oci.database.CloudExadataInfrastructure("test_cloud_exadata_infrastructure", {
 *     availabilityDomain: cloudExadataInfrastructureAvailabilityDomain,
 *     compartmentId: compartmentId,
 *     displayName: cloudExadataInfrastructureDisplayName,
 *     shape: cloudExadataInfrastructureShape,
 *     clusterPlacementGroupId: cloudExadataInfrastructureClusterPlacementGroupId,
 *     computeCount: Number(cloudExadataInfrastructureComputeCount),
 *     customerContacts: [{
 *         email: cloudExadataInfrastructureCustomerContactsEmail,
 *     }],
 *     databaseServerType: cloudExadataInfrastructureDatabaseServerType,
 *     definedTags: cloudExadataInfrastructureDefinedTags,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     maintenanceVersionPreferences: {
 *         referenceResourceIdForImageUpdates: cloudExadataInfrastructureMaintenanceVersionPreferencesReferenceResourceIdForImageUpdates,
 *     },
 *     maintenanceWindow: {
 *         customActionTimeoutInMins: Number(cloudExadataInfrastructureMaintenanceWindowCustomActionTimeoutInMins),
 *         daysOfWeeks: [{
 *             name: cloudExadataInfrastructureMaintenanceWindowDaysOfWeekName,
 *         }],
 *         hoursOfDays: cloudExadataInfrastructureMaintenanceWindowHoursOfDay,
 *         isCustomActionTimeoutEnabled: cloudExadataInfrastructureMaintenanceWindowIsCustomActionTimeoutEnabled === "true",
 *         isMonthlyPatchingEnabled: cloudExadataInfrastructureMaintenanceWindowIsMonthlyPatchingEnabled === "true",
 *         leadTimeInWeeks: Number(cloudExadataInfrastructureMaintenanceWindowLeadTimeInWeeks),
 *         months: [{
 *             name: cloudExadataInfrastructureMaintenanceWindowMonthsName,
 *         }],
 *         patchingMode: cloudExadataInfrastructureMaintenanceWindowPatchingMode,
 *         preference: cloudExadataInfrastructureMaintenanceWindowPreference,
 *         weeksOfMonths: cloudExadataInfrastructureMaintenanceWindowWeeksOfMonth,
 *     },
 *     storageCount: Number(cloudExadataInfrastructureStorageCount),
 *     storageServerType: cloudExadataInfrastructureStorageServerType,
 *     subscriptionId: tenantSubscriptionId,
 * });
 * ```
 *
 * ## Import
 *
 * CloudExadataInfrastructures can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Database/cloudExadataInfrastructure:CloudExadataInfrastructure test_cloud_exadata_infrastructure "id"
 * ```
 */
export declare class CloudExadataInfrastructure extends pulumi.CustomResource {
    /**
     * Get an existing CloudExadataInfrastructure resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CloudExadataInfrastructureState, opts?: pulumi.CustomResourceOptions): CloudExadataInfrastructure;
    /**
     * Returns true if the given object is an instance of CloudExadataInfrastructure.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is CloudExadataInfrastructure;
    /**
     * The requested number of additional storage servers activated for the Exadata infrastructure.
     */
    readonly activatedStorageCount: pulumi.Output<number>;
    /**
     * The requested number of additional storage servers for the Exadata infrastructure.
     */
    readonly additionalStorageCount: pulumi.Output<number>;
    /**
     * The availability domain where the cloud Exadata infrastructure is located.
     */
    readonly availabilityDomain: pulumi.Output<string>;
    /**
     * The available storage can be allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
     */
    readonly availableStorageSizeInGbs: pulumi.Output<number>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the cluster placement group of the Exadata Infrastructure or Db System.
     */
    readonly clusterPlacementGroupId: pulumi.Output<string | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) The number of compute servers for the cloud Exadata infrastructure.
     */
    readonly computeCount: pulumi.Output<number>;
    /**
     * The compute model of the Autonomous AI Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value. ECPU compute model is the recommended model and OCPU compute model is legacy.
     */
    readonly computeModel: pulumi.Output<string>;
    /**
     * The total number of CPU cores allocated.
     */
    readonly cpuCount: pulumi.Output<number>;
    /**
     * (Updatable) Customer contacts.
     */
    readonly customerContacts: pulumi.Output<outputs.Database.CloudExadataInfrastructureCustomerContact[]>;
    /**
     * Size, in terabytes, of the DATA disk group.
     */
    readonly dataStorageSizeInTbs: pulumi.Output<number>;
    /**
     * The database server type of the Exadata infrastructure.
     */
    readonly databaseServerType: pulumi.Output<string>;
    /**
     * The local node storage allocated in GBs.
     */
    readonly dbNodeStorageSizeInGbs: pulumi.Output<number>;
    /**
     * The software version of the database servers (dom0) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    readonly dbServerVersion: pulumi.Output<string>;
    /**
     * Details of the file system configuration of the Exadata infrastructure.
     */
    readonly definedFileSystemConfigurations: pulumi.Output<outputs.Database.CloudExadataInfrastructureDefinedFileSystemConfiguration[]>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) The user-friendly name for the cloud Exadata infrastructure resource. The name does not need to be unique.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * The exascale config response details for the Exadata Cloud@Customer infrastructure or cloud Exadata infrastructure . Applies to both Exadata Cloud@Customer instances and Exadata Cloud Service instances.
     */
    readonly exascaleConfigs: pulumi.Output<outputs.Database.CloudExadataInfrastructureExascaleConfig[]>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * If true, the infrastructure is using granular maintenance scheduling preference.
     */
    readonly isSchedulingPolicyAssociated: pulumi.Output<boolean>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the last maintenance run.
     */
    readonly lastMaintenanceRunId: pulumi.Output<string>;
    /**
     * Additional information about the current lifecycle state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) The preferences for target versions of future maintenance runs.
     *
     * Currently these preferences are only supported for Monthly maintenance runs created via scheduling plans If no preferences are specified then the version will be set by default to "Latest". Changing preferences will not change versions for an already existing maintenance run.
     */
    readonly maintenanceVersionPreferences: pulumi.Output<outputs.Database.CloudExadataInfrastructureMaintenanceVersionPreferences>;
    /**
     * (Updatable) The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.
     */
    readonly maintenanceWindow: pulumi.Output<outputs.Database.CloudExadataInfrastructureMaintenanceWindow>;
    /**
     * The total number of CPU cores available.
     */
    readonly maxCpuCount: pulumi.Output<number>;
    /**
     * The total available DATA disk group size.
     */
    readonly maxDataStorageInTbs: pulumi.Output<number>;
    /**
     * The total local node storage available in GBs.
     */
    readonly maxDbNodeStorageInGbs: pulumi.Output<number>;
    /**
     * The total memory available in GBs.
     */
    readonly maxMemoryInGbs: pulumi.Output<number>;
    /**
     * The memory allocated in GBs.
     */
    readonly memorySizeInGbs: pulumi.Output<number>;
    /**
     * The monthly software version of the database servers (dom0) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    readonly monthlyDbServerVersion: pulumi.Output<string>;
    /**
     * The monthly software version of the storage servers (cells) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    readonly monthlyStorageServerVersion: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the next maintenance run.
     */
    readonly nextMaintenanceRunId: pulumi.Output<string>;
    /**
     * The shape of the cloud Exadata infrastructure resource.
     */
    readonly shape: pulumi.Output<string>;
    /**
     * The current lifecycle state of the cloud Exadata infrastructure resource.
     */
    readonly state: pulumi.Output<string>;
    /**
     * (Updatable) The number of storage servers for the cloud Exadata infrastructure.
     */
    readonly storageCount: pulumi.Output<number>;
    /**
     * The storage server type of the Exadata infrastructure.
     */
    readonly storageServerType: pulumi.Output<string>;
    /**
     * The software version of the storage servers (cells) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    readonly storageServerVersion: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subscription with which resource needs to be associated with.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly subscriptionId: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The date and time the cloud Exadata infrastructure resource was created.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The total storage allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
     */
    readonly totalStorageSizeInGbs: pulumi.Output<number>;
    /**
     * Create a CloudExadataInfrastructure resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: CloudExadataInfrastructureArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering CloudExadataInfrastructure resources.
 */
export interface CloudExadataInfrastructureState {
    /**
     * The requested number of additional storage servers activated for the Exadata infrastructure.
     */
    activatedStorageCount?: pulumi.Input<number | undefined>;
    /**
     * The requested number of additional storage servers for the Exadata infrastructure.
     */
    additionalStorageCount?: pulumi.Input<number | undefined>;
    /**
     * The availability domain where the cloud Exadata infrastructure is located.
     */
    availabilityDomain?: pulumi.Input<string | undefined>;
    /**
     * The available storage can be allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
     */
    availableStorageSizeInGbs?: pulumi.Input<number | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the cluster placement group of the Exadata Infrastructure or Db System.
     */
    clusterPlacementGroupId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The number of compute servers for the cloud Exadata infrastructure.
     */
    computeCount?: pulumi.Input<number | undefined>;
    /**
     * The compute model of the Autonomous AI Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value. ECPU compute model is the recommended model and OCPU compute model is legacy.
     */
    computeModel?: pulumi.Input<string | undefined>;
    /**
     * The total number of CPU cores allocated.
     */
    cpuCount?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Customer contacts.
     */
    customerContacts?: pulumi.Input<pulumi.Input<inputs.Database.CloudExadataInfrastructureCustomerContact>[] | undefined>;
    /**
     * Size, in terabytes, of the DATA disk group.
     */
    dataStorageSizeInTbs?: pulumi.Input<number | undefined>;
    /**
     * The database server type of the Exadata infrastructure.
     */
    databaseServerType?: pulumi.Input<string | undefined>;
    /**
     * The local node storage allocated in GBs.
     */
    dbNodeStorageSizeInGbs?: pulumi.Input<number | undefined>;
    /**
     * The software version of the database servers (dom0) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    dbServerVersion?: pulumi.Input<string | undefined>;
    /**
     * Details of the file system configuration of the Exadata infrastructure.
     */
    definedFileSystemConfigurations?: pulumi.Input<pulumi.Input<inputs.Database.CloudExadataInfrastructureDefinedFileSystemConfiguration>[] | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The user-friendly name for the cloud Exadata infrastructure resource. The name does not need to be unique.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The exascale config response details for the Exadata Cloud@Customer infrastructure or cloud Exadata infrastructure . Applies to both Exadata Cloud@Customer instances and Exadata Cloud Service instances.
     */
    exascaleConfigs?: pulumi.Input<pulumi.Input<inputs.Database.CloudExadataInfrastructureExascaleConfig>[] | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * If true, the infrastructure is using granular maintenance scheduling preference.
     */
    isSchedulingPolicyAssociated?: pulumi.Input<boolean | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the last maintenance run.
     */
    lastMaintenanceRunId?: pulumi.Input<string | undefined>;
    /**
     * Additional information about the current lifecycle state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The preferences for target versions of future maintenance runs.
     *
     * Currently these preferences are only supported for Monthly maintenance runs created via scheduling plans If no preferences are specified then the version will be set by default to "Latest". Changing preferences will not change versions for an already existing maintenance run.
     */
    maintenanceVersionPreferences?: pulumi.Input<inputs.Database.CloudExadataInfrastructureMaintenanceVersionPreferences | undefined>;
    /**
     * (Updatable) The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.
     */
    maintenanceWindow?: pulumi.Input<inputs.Database.CloudExadataInfrastructureMaintenanceWindow | undefined>;
    /**
     * The total number of CPU cores available.
     */
    maxCpuCount?: pulumi.Input<number | undefined>;
    /**
     * The total available DATA disk group size.
     */
    maxDataStorageInTbs?: pulumi.Input<number | undefined>;
    /**
     * The total local node storage available in GBs.
     */
    maxDbNodeStorageInGbs?: pulumi.Input<number | undefined>;
    /**
     * The total memory available in GBs.
     */
    maxMemoryInGbs?: pulumi.Input<number | undefined>;
    /**
     * The memory allocated in GBs.
     */
    memorySizeInGbs?: pulumi.Input<number | undefined>;
    /**
     * The monthly software version of the database servers (dom0) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    monthlyDbServerVersion?: pulumi.Input<string | undefined>;
    /**
     * The monthly software version of the storage servers (cells) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    monthlyStorageServerVersion?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the next maintenance run.
     */
    nextMaintenanceRunId?: pulumi.Input<string | undefined>;
    /**
     * The shape of the cloud Exadata infrastructure resource.
     */
    shape?: pulumi.Input<string | undefined>;
    /**
     * The current lifecycle state of the cloud Exadata infrastructure resource.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The number of storage servers for the cloud Exadata infrastructure.
     */
    storageCount?: pulumi.Input<number | undefined>;
    /**
     * The storage server type of the Exadata infrastructure.
     */
    storageServerType?: pulumi.Input<string | undefined>;
    /**
     * The software version of the storage servers (cells) in the cloud Exadata infrastructure. Example: 20.1.15
     */
    storageServerVersion?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subscription with which resource needs to be associated with.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    subscriptionId?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The date and time the cloud Exadata infrastructure resource was created.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The total storage allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
     */
    totalStorageSizeInGbs?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a CloudExadataInfrastructure resource.
 */
export interface CloudExadataInfrastructureArgs {
    /**
     * The availability domain where the cloud Exadata infrastructure is located.
     */
    availabilityDomain: pulumi.Input<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the cluster placement group of the Exadata Infrastructure or Db System.
     */
    clusterPlacementGroupId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) The number of compute servers for the cloud Exadata infrastructure.
     */
    computeCount?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Customer contacts.
     */
    customerContacts?: pulumi.Input<pulumi.Input<inputs.Database.CloudExadataInfrastructureCustomerContact>[] | undefined>;
    /**
     * The database server type of the Exadata infrastructure.
     */
    databaseServerType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The user-friendly name for the cloud Exadata infrastructure resource. The name does not need to be unique.
     */
    displayName: pulumi.Input<string>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The preferences for target versions of future maintenance runs.
     *
     * Currently these preferences are only supported for Monthly maintenance runs created via scheduling plans If no preferences are specified then the version will be set by default to "Latest". Changing preferences will not change versions for an already existing maintenance run.
     */
    maintenanceVersionPreferences?: pulumi.Input<inputs.Database.CloudExadataInfrastructureMaintenanceVersionPreferences | undefined>;
    /**
     * (Updatable) The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.
     */
    maintenanceWindow?: pulumi.Input<inputs.Database.CloudExadataInfrastructureMaintenanceWindow | undefined>;
    /**
     * The shape of the cloud Exadata infrastructure resource.
     */
    shape: pulumi.Input<string>;
    /**
     * (Updatable) The number of storage servers for the cloud Exadata infrastructure.
     */
    storageCount?: pulumi.Input<number | undefined>;
    /**
     * The storage server type of the Exadata infrastructure.
     */
    storageServerType?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subscription with which resource needs to be associated with.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    subscriptionId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=cloudExadataInfrastructure.d.ts.map