import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Manages a User within Opsgenie.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as opsgenie from "@pulumi/opsgenie";
 *
 * const test = new opsgenie.User("test", {
 *     username: "user@domain.com",
 *     fullName: "Test User",
 *     role: "User",
 *     locale: "en_US",
 *     timezone: "America/New_York",
 *     tags: [
 *         "sre",
 *         "opsgenie",
 *     ],
 *     skypeUsername: "skypename",
 *     userAddresses: [{
 *         country: "Country",
 *         state: "State",
 *         city: "City",
 *         line: "Line",
 *         zipcode: "998877",
 *     }],
 *     userDetails: {
 *         key1: "val1,val2",
 *         key2: "val3,val4",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * Users can be imported using the `userId`, e.g.
 *
 * `$ terraform import opsgenie_user.user userId`
 */
export declare class User extends pulumi.CustomResource {
    /**
     * Get an existing User 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?: UserState, opts?: pulumi.CustomResourceOptions): User;
    /**
     * Returns true if the given object is an instance of User.  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 User;
    /**
     * The Full Name of the User.
     */
    readonly fullName: pulumi.Output<string>;
    /**
     * Location information for the user. Please look at [Supported Locale Ids](https://docs.opsgenie.com/docs/supported-locales) for available locales.
     */
    readonly locale: pulumi.Output<string | undefined>;
    /**
     * The Role assigned to the User. Either a built-in such as 'Admin' or 'User' - or the name of a custom role.
     */
    readonly role: pulumi.Output<string>;
    /**
     * Skype username of the user.
     */
    readonly skypeUsername: pulumi.Output<string | undefined>;
    /**
     * A list of tags to be associated with the user.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * Timezone information of the user. Please look at [Supported Timezone Ids](https://docs.opsgenie.com/docs/supported-timezone-ids) for available timezones.
     */
    readonly timezone: pulumi.Output<string | undefined>;
    /**
     * Address of the user.
     */
    readonly userAddresses: pulumi.Output<outputs.UserUserAddress[] | undefined>;
    /**
     * Details about the user in form of key and list. of values.
     */
    readonly userDetails: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The email address associated with this user. Opsgenie defines that this must not be longer than 100 characters and must contain lowercase characters only.
     */
    readonly username: pulumi.Output<string>;
    /**
     * Create a User 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: UserArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering User resources.
 */
export interface UserState {
    /**
     * The Full Name of the User.
     */
    fullName?: pulumi.Input<string | undefined>;
    /**
     * Location information for the user. Please look at [Supported Locale Ids](https://docs.opsgenie.com/docs/supported-locales) for available locales.
     */
    locale?: pulumi.Input<string | undefined>;
    /**
     * The Role assigned to the User. Either a built-in such as 'Admin' or 'User' - or the name of a custom role.
     */
    role?: pulumi.Input<string | undefined>;
    /**
     * Skype username of the user.
     */
    skypeUsername?: pulumi.Input<string | undefined>;
    /**
     * A list of tags to be associated with the user.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timezone information of the user. Please look at [Supported Timezone Ids](https://docs.opsgenie.com/docs/supported-timezone-ids) for available timezones.
     */
    timezone?: pulumi.Input<string | undefined>;
    /**
     * Address of the user.
     */
    userAddresses?: pulumi.Input<pulumi.Input<inputs.UserUserAddress>[] | undefined>;
    /**
     * Details about the user in form of key and list. of values.
     */
    userDetails?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The email address associated with this user. Opsgenie defines that this must not be longer than 100 characters and must contain lowercase characters only.
     */
    username?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a User resource.
 */
export interface UserArgs {
    /**
     * The Full Name of the User.
     */
    fullName: pulumi.Input<string>;
    /**
     * Location information for the user. Please look at [Supported Locale Ids](https://docs.opsgenie.com/docs/supported-locales) for available locales.
     */
    locale?: pulumi.Input<string | undefined>;
    /**
     * The Role assigned to the User. Either a built-in such as 'Admin' or 'User' - or the name of a custom role.
     */
    role: pulumi.Input<string>;
    /**
     * Skype username of the user.
     */
    skypeUsername?: pulumi.Input<string | undefined>;
    /**
     * A list of tags to be associated with the user.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Timezone information of the user. Please look at [Supported Timezone Ids](https://docs.opsgenie.com/docs/supported-timezone-ids) for available timezones.
     */
    timezone?: pulumi.Input<string | undefined>;
    /**
     * Address of the user.
     */
    userAddresses?: pulumi.Input<pulumi.Input<inputs.UserUserAddress>[] | undefined>;
    /**
     * Details about the user in form of key and list. of values.
     */
    userDetails?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The email address associated with this user. Opsgenie defines that this must not be longer than 100 characters and must contain lowercase characters only.
     */
    username: pulumi.Input<string>;
}
//# sourceMappingURL=user.d.ts.map