import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Fsu Collection resource in Oracle Cloud Infrastructure Fleet Software Update service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/edsfu/latest/FsuCollection
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/fleetsoftwareupdate
 *
 * Creates a new Exadata Fleet Update Collection.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testFsuCollection = new oci.fleetsoftwareupdate.FsuCollection("test_fsu_collection", {
 *     compartmentId: compartmentId,
 *     serviceType: fsuCollectionServiceType,
 *     type: fsuCollectionType,
 *     components: [{
 *         componentType: fsuCollectionComponentsComponentType,
 *         sourceMajorVersion: fsuCollectionComponentsSourceMajorVersion,
 *         fleetDiscovery: {
 *             strategy: fsuCollectionComponentsFleetDiscoveryStrategy,
 *             filters: [{
 *                 type: fsuCollectionComponentsFleetDiscoveryFiltersType,
 *                 entityType: fsuCollectionComponentsFleetDiscoveryFiltersEntityType,
 *                 exadataReleases: fsuCollectionComponentsFleetDiscoveryFiltersExadataReleases,
 *                 identifiers: fsuCollectionComponentsFleetDiscoveryFiltersIdentifiers,
 *                 mode: fsuCollectionComponentsFleetDiscoveryFiltersMode,
 *                 operator: fsuCollectionComponentsFleetDiscoveryFiltersOperator,
 *                 tags: [{
 *                     key: fsuCollectionComponentsFleetDiscoveryFiltersTagsKey,
 *                     namespace: fsuCollectionComponentsFleetDiscoveryFiltersTagsNamespace,
 *                     value: fsuCollectionComponentsFleetDiscoveryFiltersTagsValue,
 *                 }],
 *                 versions: fsuCollectionComponentsFleetDiscoveryFiltersVersions,
 *             }],
 *             fsuDiscoveryId: testFsuDiscovery.id,
 *             query: fsuCollectionComponentsFleetDiscoveryQuery,
 *             targets: fsuCollectionComponentsFleetDiscoveryTargets,
 *         },
 *     }],
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     displayName: fsuCollectionDisplayName,
 *     fleetDiscovery: {
 *         strategy: fsuCollectionFleetDiscoveryStrategy,
 *         filters: [{
 *             type: fsuCollectionFleetDiscoveryFiltersType,
 *             entityType: fsuCollectionFleetDiscoveryFiltersEntityType,
 *             exadataReleases: fsuCollectionFleetDiscoveryFiltersExadataReleases,
 *             identifiers: fsuCollectionFleetDiscoveryFiltersIdentifiers,
 *             mode: fsuCollectionFleetDiscoveryFiltersMode,
 *             names: fsuCollectionFleetDiscoveryFiltersNames,
 *             operator: fsuCollectionFleetDiscoveryFiltersOperator,
 *             tags: [{
 *                 key: fsuCollectionFleetDiscoveryFiltersTagsKey,
 *                 namespace: fsuCollectionFleetDiscoveryFiltersTagsNamespace,
 *                 value: fsuCollectionFleetDiscoveryFiltersTagsValue,
 *             }],
 *             versions: fsuCollectionFleetDiscoveryFiltersVersions,
 *         }],
 *         fsuDiscoveryId: testFsuDiscovery.id,
 *         query: fsuCollectionFleetDiscoveryQuery,
 *         targets: fsuCollectionFleetDiscoveryTargets,
 *     },
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     sourceMajorVersion: fsuCollectionSourceMajorVersion,
 * });
 * ```
 *
 * ## Import
 *
 * FsuCollections can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:FleetSoftwareUpdate/fsuCollection:FsuCollection test_fsu_collection "id"
 * ```
 */
export declare class FsuCollection extends pulumi.CustomResource {
    /**
     * Get an existing FsuCollection 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?: FsuCollectionState, opts?: pulumi.CustomResourceOptions): FsuCollection;
    /**
     * Returns true if the given object is an instance of FsuCollection.  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 FsuCollection;
    /**
     * Active Exadata Fleet Update Cycle resource for this Collection. Object would be null if there is no active Cycle.
     */
    readonly activeFsuCycles: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCollectionActiveFsuCycle[]>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Compartment.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Details of components in an Exadata software stack.
     */
    readonly components: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCollectionComponent[]>;
    /**
     * (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) The user-friendly name for the Exadata Fleet Update Collection.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Fleet discovery strategies for a 'GUEST_OS' collection of Exadata VM Clusters. If specified for an UpdateCollection request, discovery for Exadata VM Clusters will be rerun.
     */
    readonly fleetDiscovery: pulumi.Output<outputs.FleetSoftwareUpdate.FsuCollectionFleetDiscovery>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection.
     */
    readonly fleetSoftwareUpdateFsuCollectionId: 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 last completed FSU Cycle.
     */
    readonly lastCompletedFsuCycleId: 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>;
    /**
     * Exadata service type for the target resource members.
     */
    readonly serviceType: pulumi.Output<string>;
    /**
     * Major version of Exadata Image (Guest OS) release for Exadata VM Cluster targets to be included in the Exadata Fleet Update Collection. Only Exadata VM Clusters whose 'systemVersion' is related to the major version will be added to the Exadata Fleet Update Collection. For more details, refer to [Oracle document 2075007.1](https://support.oracle.com/knowledge/Oracle%20Database%20Products/2075007_1.html)
     */
    readonly sourceMajorVersion: pulumi.Output<string>;
    /**
     * The current state of the Exadata Fleet Update Collection.
     */
    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;
    }>;
    /**
     * Number of targets that are members of this Collection.
     */
    readonly targetCount: pulumi.Output<number>;
    /**
     * The time the Exadata Fleet Update Collection was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time the Exadata Fleet Update Collection was updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Collection type. DB: Only Database entity type resources allowed. GI: CloudVMCluster and VMCluster entity type resources allowed. GUEST_OS: CloudVmCluster and VmCluster entity type resources are allowed. EXADB_STACK: CloudVmCluster and VmCluster entity type resources are allowed.
     *
     *
     * ** 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 type: pulumi.Output<string>;
    /**
     * Create a FsuCollection 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: FsuCollectionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering FsuCollection resources.
 */
export interface FsuCollectionState {
    /**
     * Active Exadata Fleet Update Cycle resource for this Collection. Object would be null if there is no active Cycle.
     */
    activeFsuCycles?: pulumi.Input<pulumi.Input<inputs.FleetSoftwareUpdate.FsuCollectionActiveFsuCycle>[] | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Compartment.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Details of components in an Exadata software stack.
     */
    components?: pulumi.Input<pulumi.Input<inputs.FleetSoftwareUpdate.FsuCollectionComponent>[] | 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) The user-friendly name for the Exadata Fleet Update Collection.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Fleet discovery strategies for a 'GUEST_OS' collection of Exadata VM Clusters. If specified for an UpdateCollection request, discovery for Exadata VM Clusters will be rerun.
     */
    fleetDiscovery?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCollectionFleetDiscovery | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection.
     */
    fleetSoftwareUpdateFsuCollectionId?: 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 last completed FSU Cycle.
     */
    lastCompletedFsuCycleId?: 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>;
    /**
     * Exadata service type for the target resource members.
     */
    serviceType?: pulumi.Input<string | undefined>;
    /**
     * Major version of Exadata Image (Guest OS) release for Exadata VM Cluster targets to be included in the Exadata Fleet Update Collection. Only Exadata VM Clusters whose 'systemVersion' is related to the major version will be added to the Exadata Fleet Update Collection. For more details, refer to [Oracle document 2075007.1](https://support.oracle.com/knowledge/Oracle%20Database%20Products/2075007_1.html)
     */
    sourceMajorVersion?: pulumi.Input<string | undefined>;
    /**
     * The current state of the Exadata Fleet Update Collection.
     */
    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>;
    /**
     * Number of targets that are members of this Collection.
     */
    targetCount?: pulumi.Input<number | undefined>;
    /**
     * The time the Exadata Fleet Update Collection was created. An RFC3339 formatted datetime string.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the Exadata Fleet Update Collection was updated. An RFC3339 formatted datetime string.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * Collection type. DB: Only Database entity type resources allowed. GI: CloudVMCluster and VMCluster entity type resources allowed. GUEST_OS: CloudVmCluster and VmCluster entity type resources are allowed. EXADB_STACK: CloudVmCluster and VmCluster entity type resources are allowed.
     *
     *
     * ** 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
     */
    type?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a FsuCollection resource.
 */
export interface FsuCollectionArgs {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Compartment.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * Details of components in an Exadata software stack.
     */
    components?: pulumi.Input<pulumi.Input<inputs.FleetSoftwareUpdate.FsuCollectionComponent>[] | 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) The user-friendly name for the Exadata Fleet Update Collection.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Fleet discovery strategies for a 'GUEST_OS' collection of Exadata VM Clusters. If specified for an UpdateCollection request, discovery for Exadata VM Clusters will be rerun.
     */
    fleetDiscovery?: pulumi.Input<inputs.FleetSoftwareUpdate.FsuCollectionFleetDiscovery | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exadata Fleet Update Collection.
     */
    fleetSoftwareUpdateFsuCollectionId?: 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>;
    /**
     * Exadata service type for the target resource members.
     */
    serviceType: pulumi.Input<string>;
    /**
     * Major version of Exadata Image (Guest OS) release for Exadata VM Cluster targets to be included in the Exadata Fleet Update Collection. Only Exadata VM Clusters whose 'systemVersion' is related to the major version will be added to the Exadata Fleet Update Collection. For more details, refer to [Oracle document 2075007.1](https://support.oracle.com/knowledge/Oracle%20Database%20Products/2075007_1.html)
     */
    sourceMajorVersion?: pulumi.Input<string | undefined>;
    /**
     * Collection type. DB: Only Database entity type resources allowed. GI: CloudVMCluster and VMCluster entity type resources allowed. GUEST_OS: CloudVmCluster and VmCluster entity type resources are allowed. EXADB_STACK: CloudVmCluster and VmCluster entity type resources are allowed.
     *
     *
     * ** 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
     */
    type: pulumi.Input<string>;
}
//# sourceMappingURL=fsuCollection.d.ts.map