import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Managed Instance Group Manage Module Streams Management resource in Oracle Cloud Infrastructure Os Management Hub service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/os-management/latest/ManagedInstanceGroupManageModuleStreamsManagement
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/os_management_hub
 *
 * Enables or disables module streams and installs or removes module stream profiles. Once complete, the state of the modules, streams, and profiles will match the state indicated in the operation. See [ManageModuleStreamsOnManagedInstanceGroupDetails](https://docs.cloud.oracle.com/iaas/api/#/en/osmh/latest/datatypes/ManageModuleStreamsOnManagedInstanceGroupDetails) for more information.
 * You can preform this operation as a dry run. For a dry run, the service evaluates the operation against the current module, stream, and profile state on the managed instance, but does not commit the changes. Instead, the service returns work request log or error entries indicating the impact of the operation.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testManagedInstanceGroupManageModuleStreamsManagement = new oci.osmanagementhub.ManagedInstanceGroupManageModuleStreamsManagement("test_managed_instance_group_manage_module_streams_management", {
 *     managedInstanceGroupId: testManagedInstanceGroup.id,
 *     disables: [{
 *         moduleName: managedInstanceGroupManageModuleStreamsManagementDisableModuleName,
 *         streamName: testStream.name,
 *         softwareSourceId: testSoftwareSource.id,
 *     }],
 *     enables: [{
 *         moduleName: managedInstanceGroupManageModuleStreamsManagementEnableModuleName,
 *         streamName: testStream.name,
 *         softwareSourceId: testSoftwareSource.id,
 *     }],
 *     installs: [{
 *         moduleName: managedInstanceGroupManageModuleStreamsManagementInstallModuleName,
 *         profileName: testProfile.name,
 *         streamName: testStream.name,
 *         softwareSourceId: testSoftwareSource.id,
 *     }],
 *     isDryRun: managedInstanceGroupManageModuleStreamsManagementIsDryRun === "true",
 *     removes: [{
 *         moduleName: managedInstanceGroupManageModuleStreamsManagementRemoveModuleName,
 *         profileName: testProfile.name,
 *         streamName: testStream.name,
 *         softwareSourceId: testSoftwareSource.id,
 *     }],
 *     workRequestDetails: {
 *         description: managedInstanceGroupManageModuleStreamsManagementWorkRequestDetailsDescription,
 *         displayName: managedInstanceGroupManageModuleStreamsManagementWorkRequestDetailsDisplayName,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * ManagedInstanceGroupManageModuleStreamsManagement can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:OsManagementHub/managedInstanceGroupManageModuleStreamsManagement:ManagedInstanceGroupManageModuleStreamsManagement test_managed_instance_group_manage_module_streams_management "id"
 * ```
 */
export declare class ManagedInstanceGroupManageModuleStreamsManagement extends pulumi.CustomResource {
    /**
     * Get an existing ManagedInstanceGroupManageModuleStreamsManagement 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?: ManagedInstanceGroupManageModuleStreamsManagementState, opts?: pulumi.CustomResourceOptions): ManagedInstanceGroupManageModuleStreamsManagement;
    /**
     * Returns true if the given object is an instance of ManagedInstanceGroupManageModuleStreamsManagement.  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 ManagedInstanceGroupManageModuleStreamsManagement;
    /**
     * The set of module streams to disable.
     */
    readonly disables: pulumi.Output<outputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementDisable[]>;
    /**
     * The set of module streams to enable.
     */
    readonly enables: pulumi.Output<outputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementEnable[]>;
    /**
     * The set of module stream profiles to install.
     */
    readonly installs: pulumi.Output<outputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementInstall[]>;
    /**
     * Indicates if this operation is a dry run or if the operation should be committed.  If set to true, the result of the operation will be evaluated but not committed.  If set to false, the operation is committed to the managed instance(s).  The default is false.
     */
    readonly isDryRun: pulumi.Output<boolean>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the managed instance group.
     */
    readonly managedInstanceGroupId: pulumi.Output<string>;
    /**
     * The set of module stream profiles to remove.
     */
    readonly removes: pulumi.Output<outputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementRemove[]>;
    /**
     * Provides the name and description of the job.
     */
    readonly workRequestDetails: pulumi.Output<outputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementWorkRequestDetails>;
    /**
     * Create a ManagedInstanceGroupManageModuleStreamsManagement 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: ManagedInstanceGroupManageModuleStreamsManagementArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ManagedInstanceGroupManageModuleStreamsManagement resources.
 */
export interface ManagedInstanceGroupManageModuleStreamsManagementState {
    /**
     * The set of module streams to disable.
     */
    disables?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementDisable>[] | undefined>;
    /**
     * The set of module streams to enable.
     */
    enables?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementEnable>[] | undefined>;
    /**
     * The set of module stream profiles to install.
     */
    installs?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementInstall>[] | undefined>;
    /**
     * Indicates if this operation is a dry run or if the operation should be committed.  If set to true, the result of the operation will be evaluated but not committed.  If set to false, the operation is committed to the managed instance(s).  The default is false.
     */
    isDryRun?: pulumi.Input<boolean | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the managed instance group.
     */
    managedInstanceGroupId?: pulumi.Input<string | undefined>;
    /**
     * The set of module stream profiles to remove.
     */
    removes?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementRemove>[] | undefined>;
    /**
     * Provides the name and description of the job.
     */
    workRequestDetails?: pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementWorkRequestDetails | undefined>;
}
/**
 * The set of arguments for constructing a ManagedInstanceGroupManageModuleStreamsManagement resource.
 */
export interface ManagedInstanceGroupManageModuleStreamsManagementArgs {
    /**
     * The set of module streams to disable.
     */
    disables?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementDisable>[] | undefined>;
    /**
     * The set of module streams to enable.
     */
    enables?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementEnable>[] | undefined>;
    /**
     * The set of module stream profiles to install.
     */
    installs?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementInstall>[] | undefined>;
    /**
     * Indicates if this operation is a dry run or if the operation should be committed.  If set to true, the result of the operation will be evaluated but not committed.  If set to false, the operation is committed to the managed instance(s).  The default is false.
     */
    isDryRun?: pulumi.Input<boolean | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the managed instance group.
     */
    managedInstanceGroupId: pulumi.Input<string>;
    /**
     * The set of module stream profiles to remove.
     */
    removes?: pulumi.Input<pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementRemove>[] | undefined>;
    /**
     * Provides the name and description of the job.
     */
    workRequestDetails?: pulumi.Input<inputs.OsManagementHub.ManagedInstanceGroupManageModuleStreamsManagementWorkRequestDetails | undefined>;
}
//# sourceMappingURL=managedInstanceGroupManageModuleStreamsManagement.d.ts.map