import * as pulumi from "@pulumi/pulumi";
/**
 * Provides a Wavefront Maintenance Window Resource. This allows maintenance windows to be created, updated, and deleted.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as wavefront from "@pulumi/wavefront";
 *
 * const basic = new wavefront.MaintenanceWindow("basic", {
 *     reason: "Routine maintenance for 2020",
 *     title: "Routine maintenance",
 *     startTimeInSeconds: 1600123456,
 *     endTimeInSeconds: 1601123456,
 *     relevantHostNames: [
 *         "my_hostname",
 *         "my_other_hostname",
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * Maintenance windows can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import wavefront:index/maintenanceWindow:MaintenanceWindow basic 1600383357095
 * ```
 */
export declare class MaintenanceWindow extends pulumi.CustomResource {
    /**
     * Get an existing MaintenanceWindow 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?: MaintenanceWindowState, opts?: pulumi.CustomResourceOptions): MaintenanceWindow;
    /**
     * Returns true if the given object is an instance of MaintenanceWindow.  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 MaintenanceWindow;
    /**
     * end time in seconds after 1 Jan 1970 GMT.
     */
    readonly endTimeInSeconds: pulumi.Output<number>;
    /**
     * If `true`, a source/host must be in `relevantHostNames`
     * and have tags matching the specification formed by `relevantHostTags` and `relevantHostTagsAnded` in
     * order for this maintenance window to apply. If `false`, a source/host must either be in `relevantHostNames`
     * or match `relevantHostTags` and `relevantHostTagsAnded`. Default: `false`.
     */
    readonly hostTagGroupHostNamesGroupAnded: pulumi.Output<boolean | undefined>;
    /**
     * The reason for the maintenance window.
     */
    readonly reason: pulumi.Output<string>;
    /**
     * List of alert tags whose matching alerts will be put into maintenance because
     * of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    readonly relevantCustomerTags: pulumi.Output<string[] | undefined>;
    /**
     * List of source/host names that will be put into maintenance because of this
     * maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    readonly relevantHostNames: pulumi.Output<string[] | undefined>;
    /**
     * List of source/host tags whose matching sources/hosts will be put into maintenance
     * because of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or
     * `relevantHostNames` is required.
     */
    readonly relevantHostTags: pulumi.Output<string[] | undefined>;
    /**
     * Whether to AND source/host tags listed in `relevantHostTags`.
     * If `true`, a source/host must contain all tags in order for the maintenance window to apply. If `false`,
     * the tags are OR'ed, and a source/host must contain one of the tags. Default: `false`.
     */
    readonly relevantHostTagsAnded: pulumi.Output<boolean | undefined>;
    /**
     * start time in seconds after 1 Jan 1970 GMT.
     */
    readonly startTimeInSeconds: pulumi.Output<number>;
    /**
     * The title of the maintenance window.
     */
    readonly title: pulumi.Output<string>;
    /**
     * Create a MaintenanceWindow 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: MaintenanceWindowArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering MaintenanceWindow resources.
 */
export interface MaintenanceWindowState {
    /**
     * end time in seconds after 1 Jan 1970 GMT.
     */
    endTimeInSeconds?: pulumi.Input<number>;
    /**
     * If `true`, a source/host must be in `relevantHostNames`
     * and have tags matching the specification formed by `relevantHostTags` and `relevantHostTagsAnded` in
     * order for this maintenance window to apply. If `false`, a source/host must either be in `relevantHostNames`
     * or match `relevantHostTags` and `relevantHostTagsAnded`. Default: `false`.
     */
    hostTagGroupHostNamesGroupAnded?: pulumi.Input<boolean>;
    /**
     * The reason for the maintenance window.
     */
    reason?: pulumi.Input<string>;
    /**
     * List of alert tags whose matching alerts will be put into maintenance because
     * of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    relevantCustomerTags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of source/host names that will be put into maintenance because of this
     * maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    relevantHostNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of source/host tags whose matching sources/hosts will be put into maintenance
     * because of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or
     * `relevantHostNames` is required.
     */
    relevantHostTags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Whether to AND source/host tags listed in `relevantHostTags`.
     * If `true`, a source/host must contain all tags in order for the maintenance window to apply. If `false`,
     * the tags are OR'ed, and a source/host must contain one of the tags. Default: `false`.
     */
    relevantHostTagsAnded?: pulumi.Input<boolean>;
    /**
     * start time in seconds after 1 Jan 1970 GMT.
     */
    startTimeInSeconds?: pulumi.Input<number>;
    /**
     * The title of the maintenance window.
     */
    title?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a MaintenanceWindow resource.
 */
export interface MaintenanceWindowArgs {
    /**
     * end time in seconds after 1 Jan 1970 GMT.
     */
    endTimeInSeconds: pulumi.Input<number>;
    /**
     * If `true`, a source/host must be in `relevantHostNames`
     * and have tags matching the specification formed by `relevantHostTags` and `relevantHostTagsAnded` in
     * order for this maintenance window to apply. If `false`, a source/host must either be in `relevantHostNames`
     * or match `relevantHostTags` and `relevantHostTagsAnded`. Default: `false`.
     */
    hostTagGroupHostNamesGroupAnded?: pulumi.Input<boolean>;
    /**
     * The reason for the maintenance window.
     */
    reason: pulumi.Input<string>;
    /**
     * List of alert tags whose matching alerts will be put into maintenance because
     * of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    relevantCustomerTags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of source/host names that will be put into maintenance because of this
     * maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or `relevantHostNames`
     * is required.
     */
    relevantHostNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * List of source/host tags whose matching sources/hosts will be put into maintenance
     * because of this maintenance window. At least one of `relevantCustomerTags`, `relevantHostTags`, or
     * `relevantHostNames` is required.
     */
    relevantHostTags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Whether to AND source/host tags listed in `relevantHostTags`.
     * If `true`, a source/host must contain all tags in order for the maintenance window to apply. If `false`,
     * the tags are OR'ed, and a source/host must contain one of the tags. Default: `false`.
     */
    relevantHostTagsAnded?: pulumi.Input<boolean>;
    /**
     * start time in seconds after 1 Jan 1970 GMT.
     */
    startTimeInSeconds: pulumi.Input<number>;
    /**
     * The title of the maintenance window.
     */
    title: pulumi.Input<string>;
}
