import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Provides the ability to create, read, delete, and update folders for [Monitors](https://help.sumologic.com/?cid=10020).
 * > If Fine Grain Permission (FGP) feature is enabled with Monitors Content at one's Sumo Logic account, one can also set those permission details under this monitor folder resource. For further details about FGP, please see this [Monitor Permission document](https://help.sumologic.com/Visualizations-and-Alerts/Alerts/Monitors#configure-permissions-to-monitors-folders).
 *
 * ## Example Monitor Folder
 *
 * NOTE: Monitor folders are considered a different resource from Library content folders.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as sumologic from "@pulumi/sumologic";
 *
 * const tfMonitorFolder1 = new sumologic.MonitorFolder("tf_monitor_folder_1", {
 *     name: "Terraform Managed Monitors",
 *     description: "A folder for monitors managed by terraform.",
 * });
 * ```
 *
 * ## Import
 *
 * Monitor folders can be imported using the monitor folder identifier, such as:
 *
 * hcl
 *
 * ```sh
 * $ pulumi import sumologic:index/monitorFolder:MonitorFolder tf_monitor_folder_1 0000000000ABC123
 * ```
 *
 * [1]: https://help.sumologic.com/?cid=10020
 *
 * [2]: https://help.sumologic.com/Visualizations-and-Alerts/Alerts/Monitors#configure-permissions-to-monitors-folders
 */
export declare class MonitorFolder extends pulumi.CustomResource {
    /**
     * Get an existing MonitorFolder 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?: MonitorFolderState, opts?: pulumi.CustomResourceOptions): MonitorFolder;
    /**
     * Returns true if the given object is an instance of MonitorFolder.  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 MonitorFolder;
    readonly contentType: pulumi.Output<string | undefined>;
    readonly createdAt: pulumi.Output<string>;
    readonly createdBy: pulumi.Output<string>;
    /**
     * The description of the monitor folder.
     */
    readonly description: pulumi.Output<string>;
    readonly isLocked: pulumi.Output<boolean | undefined>;
    readonly isMutable: pulumi.Output<boolean>;
    readonly isSystem: pulumi.Output<boolean>;
    readonly modifiedAt: pulumi.Output<string>;
    readonly modifiedBy: pulumi.Output<string>;
    /**
     * The name of the monitor folder. The name must be alphanumeric.
     */
    readonly name: pulumi.Output<string>;
    /**
     * `objPermission` construct represents a Permission Statement associated with this Folder. A set of `objPermission` constructs can be specified under a single Folder. An `objPermission` construct can be used to control permissions Explicitly associated with a Folder. But, it cannot be used to control permissions Inherited from a Parent / Ancestor Folder.  Default FGP would be still set to the Folder upon creation (e.g. the creating user would have full permission), even if no `objPermission` construct is specified at a Folder and the FGP feature is enabled at the account.
     */
    readonly objPermissions: pulumi.Output<outputs.MonitorFolderObjPermission[] | undefined>;
    /**
     * The identifier of the Monitor Folder that contains this Monitor Folder. Defaults to the root folder.
     */
    readonly parentId: pulumi.Output<string>;
    readonly postRequestMap: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The type of object model. Valid value:
     * - `MonitorsLibraryFolder`
     */
    readonly type: pulumi.Output<string | undefined>;
    readonly version: pulumi.Output<number>;
    /**
     * Create a MonitorFolder 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: MonitorFolderArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering MonitorFolder resources.
 */
export interface MonitorFolderState {
    contentType?: pulumi.Input<string>;
    createdAt?: pulumi.Input<string>;
    createdBy?: pulumi.Input<string>;
    /**
     * The description of the monitor folder.
     */
    description?: pulumi.Input<string>;
    isLocked?: pulumi.Input<boolean>;
    isMutable?: pulumi.Input<boolean>;
    isSystem?: pulumi.Input<boolean>;
    modifiedAt?: pulumi.Input<string>;
    modifiedBy?: pulumi.Input<string>;
    /**
     * The name of the monitor folder. The name must be alphanumeric.
     */
    name?: pulumi.Input<string>;
    /**
     * `objPermission` construct represents a Permission Statement associated with this Folder. A set of `objPermission` constructs can be specified under a single Folder. An `objPermission` construct can be used to control permissions Explicitly associated with a Folder. But, it cannot be used to control permissions Inherited from a Parent / Ancestor Folder.  Default FGP would be still set to the Folder upon creation (e.g. the creating user would have full permission), even if no `objPermission` construct is specified at a Folder and the FGP feature is enabled at the account.
     */
    objPermissions?: pulumi.Input<pulumi.Input<inputs.MonitorFolderObjPermission>[]>;
    /**
     * The identifier of the Monitor Folder that contains this Monitor Folder. Defaults to the root folder.
     */
    parentId?: pulumi.Input<string>;
    postRequestMap?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The type of object model. Valid value:
     * - `MonitorsLibraryFolder`
     */
    type?: pulumi.Input<string>;
    version?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a MonitorFolder resource.
 */
export interface MonitorFolderArgs {
    contentType?: pulumi.Input<string>;
    createdAt?: pulumi.Input<string>;
    createdBy?: pulumi.Input<string>;
    /**
     * The description of the monitor folder.
     */
    description: pulumi.Input<string>;
    isLocked?: pulumi.Input<boolean>;
    isMutable?: pulumi.Input<boolean>;
    isSystem?: pulumi.Input<boolean>;
    modifiedAt?: pulumi.Input<string>;
    modifiedBy?: pulumi.Input<string>;
    /**
     * The name of the monitor folder. The name must be alphanumeric.
     */
    name?: pulumi.Input<string>;
    /**
     * `objPermission` construct represents a Permission Statement associated with this Folder. A set of `objPermission` constructs can be specified under a single Folder. An `objPermission` construct can be used to control permissions Explicitly associated with a Folder. But, it cannot be used to control permissions Inherited from a Parent / Ancestor Folder.  Default FGP would be still set to the Folder upon creation (e.g. the creating user would have full permission), even if no `objPermission` construct is specified at a Folder and the FGP feature is enabled at the account.
     */
    objPermissions?: pulumi.Input<pulumi.Input<inputs.MonitorFolderObjPermission>[]>;
    /**
     * The identifier of the Monitor Folder that contains this Monitor Folder. Defaults to the root folder.
     */
    parentId?: pulumi.Input<string>;
    postRequestMap?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The type of object model. Valid value:
     * - `MonitorsLibraryFolder`
     */
    type?: pulumi.Input<string>;
    version?: pulumi.Input<number>;
}
