import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Fsu Cycle resource in Oracle Cloud Infrastructure Fleet Software Update service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/edsfu/latest/FsuCycle
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/fleetsoftwareupdate
 *
 * Creates a new Exadata Fleet Update Cycle.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testFsuCycle = new oci.fleetsoftwareupdate.FsuCycle("test_fsu_cycle", {
 *     compartmentId: compartmentId,
 *     fsuCollectionId: testFsuCollection.id,
 *     goalVersionDetails: {
 *         type: fsuCycleGoalVersionDetailsType,
 *         components: [{
 *             componentType: fsuCycleGoalVersionDetailsComponentsComponentType,
 *             goalVersionDetails: {
 *                 goalSoftwareImageId: testImage.id,
 *                 goalType: fsuCycleGoalVersionDetailsComponentsGoalVersionDetailsGoalType,
 *                 goalVersion: fsuCycleGoalVersionDetailsComponentsGoalVersionDetailsGoalVersion,
 *             },
 *             homePolicy: fsuCycleGoalVersionDetailsComponentsHomePolicy,
 *             newHomePrefix: fsuCycleGoalVersionDetailsComponentsNewHomePrefix,
 *         }],
 *         homePolicy: fsuCycleGoalVersionDetailsHomePolicy,
 *         newHomePrefix: fsuCycleGoalVersionDetailsNewHomePrefix,
 *         softwareImageId: testImage.id,
 *         version: fsuCycleGoalVersionDetailsVersion,
 *     },
 *     type: fsuCycleType,
 *     applyActionSchedule: {
 *         timeToStart: fsuCycleApplyActionScheduleTimeToStart,
 *         type: fsuCycleApplyActionScheduleType,
 *     },
 *     batchingStrategy: {
 *         isForceRolling: fsuCycleBatchingStrategyIsForceRolling === "true",
 *         isWaitForBatchResume: fsuCycleBatchingStrategyIsWaitForBatchResume === "true",
 *         percentage: Number(fsuCycleBatchingStrategyPercentage),
 *         type: fsuCycleBatchingStrategyType,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     diagnosticsCollection: {
 *         logCollectionMode: fsuCycleDiagnosticsCollectionLogCollectionMode,
 *     },
 *     displayName: fsuCycleDisplayName,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     isIgnoreMissingPatches: fsuCycleIsIgnoreMissingPatches,
 *     isIgnorePatches: fsuCycleIsIgnorePatches === "true",
 *     isKeepPlacement: fsuCycleIsKeepPlacement === "true",
 *     maxDrainTimeoutInSeconds: Number(fsuCycleMaxDrainTimeoutInSeconds),
 *     stageActionSchedule: {
 *         timeToStart: fsuCycleStageActionScheduleTimeToStart,
 *         type: fsuCycleStageActionScheduleType,
 *     },
 *     upgradeDetails: {
 *         collectionType: fsuCycleUpgradeDetailsCollectionType,
 *         isIgnorePostUpgradeErrors: fsuCycleUpgradeDetailsIsIgnorePostUpgradeErrors === "true",
 *         isIgnorePrerequisites: fsuCycleUpgradeDetailsIsIgnorePrerequisites === "true",
 *         isRecompileInvalidObjects: fsuCycleUpgradeDetailsIsRecompileInvalidObjects === "true",
 *         isTimeZoneUpgrade: fsuCycleUpgradeDetailsIsTimeZoneUpgrade === "true",
 *         maxDrainTimeoutInSeconds: Number(fsuCycleUpgradeDetailsMaxDrainTimeoutInSeconds),
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * FsuCycles can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:FleetSoftwareUpdate/fsuCycle:FsuCycle test_fsu_cycle "id"
 * ```
 */
export declare class FsuCycle extends pulumi.CustomResource {
    /**
     * Get an existing FsuCycle 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?: FsuCycleState, opts?: pulumi.CustomResourceOptions): FsuCycle;
    /**
     * Returns true if the given object is an instance of FsuCycle.  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 FsuCycle;
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    readonly applyActionSchedule: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleApplyActionSchedule>;
    /**
     * (Updatable) Batching strategy details to use during PRECHECK and APPLY Cycle Actions.
     */
    readonly batchingStrategy: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleBatchingStrategy>;
    /**
     * Type of Exadata Fleet Update collection being upgraded.
     */
    readonly collectionType: pulumi.Output<string>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Compartment.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Details to configure diagnostics collection for targets affected by this Exadata Fleet Update Maintenance Cycle.
     */
    readonly diagnosticsCollection: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleDiagnosticsCollection>;
    /**
     * (Updatable) The user-friendly name for the Exadata Fleet Update Cycle.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Action that is currently in progress, if applicable.
     */
    readonly executingFsuActionId: pulumi.Output<string>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection which will be updated by the Exadata Fleet Update Cycle being created.
     */
    readonly fsuCollectionId: pulumi.Output<string>;
    /**
     * (Updatable) Goal version or image details for the Exadata Fleet Update Cycle.
     */
    readonly goalVersionDetails: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleGoalVersionDetails>;
    /**
     * (Updatable) List of identifiers of patches to ignore. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    readonly isIgnoreMissingPatches: pulumi.Output<string[]>;
    /**
     * (Updatable) Ignore patch conflicts or missing patches between the source and goal homes. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    readonly isIgnorePatches: pulumi.Output<boolean>;
    /**
     * (Updatable) Ensure that database services are online on the same VMs before and after the maintenance update.
     */
    readonly isKeepPlacement: pulumi.Output<boolean>;
    /**
     * The latest Action type that was completed in the Exadata Fleet Update Cycle. No value would indicate that the Cycle has not completed any Action yet.
     */
    readonly lastCompletedAction: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the latest Action  in the Exadata Fleet Update Cycle.
     */
    readonly lastCompletedActionId: pulumi.Output<string>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) Timeout for session draining for database services specified in seconds.
     */
    readonly maxDrainTimeoutInSeconds: pulumi.Output<number>;
    /**
     * All possible Exadata Fleet Update Actions will be listed. The first element is the suggested Exadata Fleet Update Action.
     */
    readonly nextActionToExecutes: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleNextActionToExecute[]>;
    /**
     * Current rollback cycle state if rollback maintenance cycle action has been attempted. No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
     */
    readonly rollbackCycleState: pulumi.Output<string>;
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    readonly stageActionSchedule: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleStageActionSchedule>;
    /**
     * The current state of the Exadata Fleet Update Cycle.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The date and time the Exadata Fleet Update Cycle was created, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339), section 14.29.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the Exadata Fleet Update Cycle was finished, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339).
     */
    readonly timeFinished: pulumi.Output<string>;
    /**
     * The date and time the Exadata Fleet Update Cycle was updated, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339), section 14.29.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * (Updatable) Type of Exadata Fleet Update Cycle.
     */
    readonly type: pulumi.Output<string>;
    /**
     * (Updatable) Details of supported upgrade options for DB or GI collection.
     */
    readonly upgradeDetails: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCycleUpgradeDetails>;
    /**
     * Create a FsuCycle 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: FsuCycleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering FsuCycle resources.
 */
export interface FsuCycleState {
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    applyActionSchedule?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleApplyActionSchedule | undefined>;
    /**
     * (Updatable) Batching strategy details to use during PRECHECK and APPLY Cycle Actions.
     */
    batchingStrategy?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleBatchingStrategy | undefined>;
    /**
     * Type of Exadata Fleet Update collection being upgraded.
     */
    collectionType?: 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) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Details to configure diagnostics collection for targets affected by this Exadata Fleet Update Maintenance Cycle.
     */
    diagnosticsCollection?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleDiagnosticsCollection | undefined>;
    /**
     * (Updatable) The user-friendly name for the Exadata Fleet Update Cycle.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Action that is currently in progress, if applicable.
     */
    executingFsuActionId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection which will be updated by the Exadata Fleet Update Cycle being created.
     */
    fsuCollectionId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Goal version or image details for the Exadata Fleet Update Cycle.
     */
    goalVersionDetails?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleGoalVersionDetails | undefined>;
    /**
     * (Updatable) List of identifiers of patches to ignore. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    isIgnoreMissingPatches?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) Ignore patch conflicts or missing patches between the source and goal homes. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    isIgnorePatches?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Ensure that database services are online on the same VMs before and after the maintenance update.
     */
    isKeepPlacement?: pulumi.Input<boolean | undefined>;
    /**
     * The latest Action type that was completed in the Exadata Fleet Update Cycle. No value would indicate that the Cycle has not completed any Action yet.
     */
    lastCompletedAction?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the latest Action  in the Exadata Fleet Update Cycle.
     */
    lastCompletedActionId?: pulumi.Input<string | undefined>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Timeout for session draining for database services specified in seconds.
     */
    maxDrainTimeoutInSeconds?: pulumi.Input<number | undefined>;
    /**
     * All possible Exadata Fleet Update Actions will be listed. The first element is the suggested Exadata Fleet Update Action.
     */
    nextActionToExecutes?: pulumi.Input<pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleNextActionToExecute>[] | undefined>;
    /**
     * Current rollback cycle state if rollback maintenance cycle action has been attempted. No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
     */
    rollbackCycleState?: pulumi.Input<string | undefined>;
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    stageActionSchedule?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleStageActionSchedule | undefined>;
    /**
     * The current state of the Exadata Fleet Update Cycle.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The date and time the Exadata Fleet Update Cycle was created, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339), section 14.29.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the Exadata Fleet Update Cycle was finished, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339).
     */
    timeFinished?: pulumi.Input<string | undefined>;
    /**
     * The date and time the Exadata Fleet Update Cycle was updated, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339), section 14.29.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Type of Exadata Fleet Update Cycle.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Details of supported upgrade options for DB or GI collection.
     */
    upgradeDetails?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleUpgradeDetails | undefined>;
}
/**
 * The set of arguments for constructing a FsuCycle resource.
 */
export interface FsuCycleArgs {
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    applyActionSchedule?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleApplyActionSchedule | undefined>;
    /**
     * (Updatable) Batching strategy details to use during PRECHECK and APPLY Cycle Actions.
     */
    batchingStrategy?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleBatchingStrategy | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Compartment.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Details to configure diagnostics collection for targets affected by this Exadata Fleet Update Maintenance Cycle.
     */
    diagnosticsCollection?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleDiagnosticsCollection | undefined>;
    /**
     * (Updatable) The user-friendly name for the Exadata Fleet Update Cycle.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection which will be updated by the Exadata Fleet Update Cycle being created.
     */
    fsuCollectionId: pulumi.Input<string>;
    /**
     * (Updatable) Goal version or image details for the Exadata Fleet Update Cycle.
     */
    goalVersionDetails: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleGoalVersionDetails>;
    /**
     * (Updatable) List of identifiers of patches to ignore. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    isIgnoreMissingPatches?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) Ignore patch conflicts or missing patches between the source and goal homes. This attribute will be ignored for Exadata Image (Guest OS) maintenance update.
     */
    isIgnorePatches?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Ensure that database services are online on the same VMs before and after the maintenance update.
     */
    isKeepPlacement?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Timeout for session draining for database services specified in seconds.
     */
    maxDrainTimeoutInSeconds?: pulumi.Input<number | undefined>;
    /**
     * Scheduling related details for the Exadata Fleet Update Action during create operations. The specified time should not conflict with existing Exadata Infrastructure maintenance windows. Null scheduleDetails for Stage and Apply Actions in Exadata Fleet Update Cycle creation would not create Actions. Null scheduleDetails for CreateAction would execute the Exadata Fleet Update Action as soon as possible.
     */
    stageActionSchedule?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleStageActionSchedule | undefined>;
    /**
     * (Updatable) Type of Exadata Fleet Update Cycle.
     */
    type: pulumi.Input<string>;
    /**
     * (Updatable) Details of supported upgrade options for DB or GI collection.
     */
    upgradeDetails?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCycleUpgradeDetails | undefined>;
}
//# sourceMappingURL=fsuCycle.d.ts.map