import * as pulumi from "@pulumi/pulumi";
/**
 * Manages a meeting user resource within HuaweiCloud.
 *
 * ## Example Usage
 * ### Create a user using third-party application authorization and specifies the account parameters
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const appId = config.requireObject("appId");
 * const appKey = config.requireObject("appKey");
 * const userAccount = config.requireObject("userAccount");
 * const thirdAccount = config.requireObject("thirdAccount");
 * const userName = config.requireObject("userName");
 * const userPassword = config.requireObject("userPassword");
 * const englishName = config.requireObject("englishName");
 * const signature = config.requireObject("signature");
 * const title = config.requireObject("title");
 * const test = new huaweicloud.meeting.User("test", {
 *     appId: appId,
 *     appKey: appKey,
 *     account: userAccount,
 *     thirdAccount: thirdAccount,
 *     password: userPassword,
 *     country: "chinaPR",
 *     description: "Created by script",
 *     email: "123456789@example.com",
 *     englishName: englishName,
 *     phone: "+8612345678987",
 *     signature: signature,
 *     title: title,
 *     sortLevel: 5,
 * });
 * ```
 * ### Create a user using account authorization
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const accountName = config.requireObject("accountName");
 * const accountPassword = config.requireObject("accountPassword");
 * const userName = config.requireObject("userName");
 * const userPassword = config.requireObject("userPassword");
 * const englishName = config.requireObject("englishName");
 * const signature = config.requireObject("signature");
 * const title = config.requireObject("title");
 * const test = new huaweicloud.meeting.User("test", {
 *     accountName: accountName,
 *     accountPassword: accountPassword,
 *     password: userPassword,
 *     country: "chinaPR",
 *     email: "123456789@example.com",
 *     englishName: englishName,
 *     phone: "+8612345678987",
 *     signature: signature,
 *     title: title,
 *     sortLevel: 5,
 * });
 * ```
 * ## Appendix
 *
 * <a name="phoneNumberMapping"></a>
 * The countries (or regions) and phone numbers mapping relationship supports:
 *
 * | Country Or Region | Country Code |
 * | ---- | ---- |
 * | chinaPR | +86 |
 * | chinaHKG | +852|
 * | chinaOMA | +853 |
 * | chinaTPE | +886 |
 * | BVl | +1284  |
 * | Bolivia | +591 |
 * | CZ | +420 |
 * | GB | +245 |
 * | SVGrenadines | +1784 |
 * | TAT | +1868 |
 * | UK | +44 |
 * | afghanistan | +93 |
 * | albania | +355 |
 * | algeria | +213 |
 * | andorra | +376 |
 * | angola | +244 |
 * | argentina | +54 |
 * | armenia | +374 |
 * | australia | +61 |
 * | austria | +43 |
 * | azerbaijan | +994 |
 * | bahamas | +1242 |
 * | bahrain | +973 |
 * | bangladesh | +880 |
 * | belarus | +375 |
 * | belgium | +32 |
 * | belize | +501 |
 * | benin | +229 |
 * | bosniaAndHerzegovina | +387 |
 * | botswana | +267 |
 * | brazil | +55 |
 * | brunei | +673 |
 * | bulgaria | +359 |
 * | burkinaFaso | +226 |
 * | burundi | +257 |
 * | cambodia | +855 |
 * | cameroon | +237 |
 * | canada | +1 |
 * | capeVerde | +238 |
 * | caymanIslands | +1345 |
 * | centralAfrican | +236 |
 * | chad | +235 |
 * | chile | +56 |
 * | columbia | +57 |
 * | comoros | +269 |
 * | congoB | +242 |
 * | congoJ | +243 |
 * | costarica | +506 |
 * | croatia | +385 |
 * | curacao | +599 |
 * | cyprus | +357 |
 * | denmark | +45 |
 * | djibouti | +253 |
 * | dominica | +1809 |
 * | ecuador | +593 |
 * | egypt | +20 |
 * | equatorialGuinea | +240 |
 * | estonia | +372 |
 * | finland | +358 |
 * | france | +33 |
 * | gabon | +241 |
 * | gambia | +220 |
 * | georgia | +995 |
 * | germany | +49 |
 * | ghana | +233 |
 * | greece | +30 |
 * | grenada | +1473 |
 * | guatemala | +502 |
 * | guinea | +224 |
 * | guyana | +592 |
 * | honduras | +504 |
 * | hungary | +36 |
 * | india | +91 |
 * | indonesia | +62 |
 * | iraq | +964 |
 * | ireland | +353 |
 * | israel | +972 |
 * | italy | +39 |
 * | ivoryCoast | +225 |
 * | jamaica | +1876 |
 * | japan | +81 |
 * | jordan | +962 |
 * | kazakhstan | +7 |
 * | kenya | +254 |
 * | kuwait | +965 |
 * | kyrgyzstan | +996 |
 * | laos | +856 |
 * | latvia | +371 |
 * | lebanon | +961 |
 * | lesotho | +266 |
 * | liberia | +231 |
 * | libya | +218 |
 * | lithuania | +370 |
 * | luxembourg | +352 |
 * | macedonia | +389 |
 * | madagascar | +261 |
 * | malawi | +265 |
 * | malaysia | +60 |
 * | maldives | +960 |
 * | mali | +223 |
 * | malta | +356 |
 * | mauritania | +222 |
 * | mauritius | +230 |
 * | mexico | +52 |
 * | moldova | +373 |
 * | mongolia | +976 |
 * | montenegro | +382  |
 * | morocco | +212 |
 * | mozambique | +258 |
 * | myanmar | +95 |
 * | namibia | +264 |
 * | nepal | +977 |
 * | netherlands | +31 |
 * | newZealand | +64 |
 * | nicaragua | +505 |
 * | niger | +227 |
 * | nigeria | +234 |
 * | norway | +47 |
 * | oman | +968 |
 * | pakistan | +92 |
 * | palestine | +970 |
 * | panama | +507 |
 * | papuaNewGuinea | +675 |
 * | peru | +51 |
 * | philippines | +63 |
 * | poland | +48 |
 * | portugal | +351 |
 * | puertoRico | +1787 |
 * | qatar | +974 |
 * | romania | +40 |
 * | russia | +7 |
 * | rwanda | +250 |
 * | saintMartin | +590 |
 * | salvatore | +503 |
 * | saudiArabia | +966 |
 * | senegal | +221 |
 * | serbia | +381 |
 * | seychelles | +248 |
 * | sierraLeone | +232 |
 * | singapore | +65 |
 * | slovakia | +421 |
 * | slovenia | +386 |
 * | somalia | +252 |
 * | southAfrica | +27 |
 * | southKorea | +82 |
 * | spain | +34 |
 * | sriLanka | +94 |
 * | suriname | +597 |
 * | swaziland | +268 |
 * | sweden | +46 |
 * | switzerland | +41 |
 * | tajikistan | +992 |
 * | tanzania | +255 |
 * | thailand | +66 |
 * | togo | +228 |
 * | tunisia | +216 |
 * | turkey | +90 |
 * | turkmenistan | +993 |
 * | uae | +971 |
 * | uganda | +256 |
 * | ukraine | +380 |
 * | uruguay | +598 |
 * | usa | +1 |
 * | uzbekistan | +998 |
 * | venezuela | +58 |
 * | vietNam | +84 |
 * | yemen | +967 |
 * | zambia | +260 |
 * | zimbabwe | +263 |
 *
 * ## Import
 *
 * Users can be imported using their `id` and authorization parameters, separated by slashes, e.g. Import a user and authenticated by account. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:Meeting/user:User test <id>/<account_name>/<account_password>
 * ```
 *
 *  Import a user and authenticated by `APP ID`/`APP Key`. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:Meeting/user:User test <id>/<app_id>/<app_key>/<corp_id>/<user_id>
 * ```
 *
 *  The slashes cannot be missing even corporation ID and user ID are empty. Note that some parameters do not support import due to missing API responses or privacy, such as `password`, `is_send_notify` and `is_admin`. You can ignore this change as below. hcl resource "huaweicloud_meeting_user" "test" {
 *
 *  ...
 *
 *  lifecycle {
 *
 *  ignore_changes = [
 *
 *  password, is_send_notify,
 *
 *  ]
 *
 *  } }
 */
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;
    /**
     * Specifies the user account. The value can contain `1` to `64` characters.
     * If omitted, the service will automatically generate a value.
     * Changing this parameter will create a new resource.
     */
    readonly account: pulumi.Output<string>;
    /**
     * Specifies the (HUAWEI Cloud meeting) user account name to which the
     * administrator belongs. Changing this parameter will create a new resource.
     */
    readonly accountName: pulumi.Output<string | undefined>;
    /**
     * Specifies the user password.
     * Required if `accountName` is set. Changing this parameter will create a new resource.
     */
    readonly accountPassword: pulumi.Output<string | undefined>;
    /**
     * Specifies the ID of the Third-party application.
     * Changing this parameter will create a new resource.
     */
    readonly appId: pulumi.Output<string | undefined>;
    /**
     * Specifies the Key information of the Third-party APP.
     * Required if `appId` is set. Changing this parameter will create a new resource.
     */
    readonly appKey: pulumi.Output<string | undefined>;
    /**
     * Specifies the corporation ID.
     * Required if the application is used in multiple enterprises. Only available if `appId` is set.
     * Changing this parameter will create a new resource.
     */
    readonly corpId: pulumi.Output<string>;
    /**
     * Specifies the country to which the phone number belongs to.
     */
    readonly country: pulumi.Output<string>;
    /**
     * Specifies the department code. Defaults to **1** (Root department).
     */
    readonly departmentCode: pulumi.Output<string>;
    /**
     * The department name.
     */
    readonly departmentName: pulumi.Output<string>;
    /**
     * The department full name.
     */
    readonly departmentNamePath: pulumi.Output<string>;
    /**
     * Specifies the description. The value can contain `0` to `128` characters.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Specifies the email address.
     */
    readonly email: pulumi.Output<string>;
    /**
     * Specifies the english name. The value can contain `0` to `64` characters.
     */
    readonly englishName: pulumi.Output<string>;
    /**
     * Specifies whether to hide the phone number.
     */
    readonly hidePhone: pulumi.Output<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    readonly isAdmin: pulumi.Output<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    readonly isSendNotify: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the user name. The value can contain `1` to `64` characters.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies the user password.
     * The following conditions must be met:
     */
    readonly password: pulumi.Output<string>;
    /**
     * Specifies the phone number.
     * The phone number must start with a country (region) code.
     */
    readonly phone: pulumi.Output<string>;
    /**
     * Specifies the signature. The value can contain `0` to `512` characters.
     */
    readonly signature: pulumi.Output<string>;
    /**
     * The SIP number.
     */
    readonly sipNumber: pulumi.Output<string>;
    /**
     * Specifies the address book sorting level.
     * The lower the serial number, the higher the priority.
     * The valid value is range from `1` to `10,000`. Defaults to `10,000`.
     */
    readonly sortLevel: pulumi.Output<number>;
    /**
     * Specifies the status. The valid values are as follows:
     * + **0**: Normal.
     * + **1**: Disable.
     */
    readonly status: pulumi.Output<number>;
    /**
     * Specifies the third-party account name.
     */
    readonly thirdAccount: pulumi.Output<string>;
    /**
     * Specifies the title name. The value can contain `0` to `32` characters.
     */
    readonly title: pulumi.Output<string>;
    /**
     * The user type.
     * + **2**: Enterprise member account.
     */
    readonly type: pulumi.Output<number>;
    /**
     * Specifies the user ID of the administrator.
     * Only available if `appId` is set. If omitted, the user ID of default administrator will be used.
     * Changing this parameter will create a new resource.
     */
    readonly userId: 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 {
    /**
     * Specifies the user account. The value can contain `1` to `64` characters.
     * If omitted, the service will automatically generate a value.
     * Changing this parameter will create a new resource.
     */
    account?: pulumi.Input<string>;
    /**
     * Specifies the (HUAWEI Cloud meeting) user account name to which the
     * administrator belongs. Changing this parameter will create a new resource.
     */
    accountName?: pulumi.Input<string>;
    /**
     * Specifies the user password.
     * Required if `accountName` is set. Changing this parameter will create a new resource.
     */
    accountPassword?: pulumi.Input<string>;
    /**
     * Specifies the ID of the Third-party application.
     * Changing this parameter will create a new resource.
     */
    appId?: pulumi.Input<string>;
    /**
     * Specifies the Key information of the Third-party APP.
     * Required if `appId` is set. Changing this parameter will create a new resource.
     */
    appKey?: pulumi.Input<string>;
    /**
     * Specifies the corporation ID.
     * Required if the application is used in multiple enterprises. Only available if `appId` is set.
     * Changing this parameter will create a new resource.
     */
    corpId?: pulumi.Input<string>;
    /**
     * Specifies the country to which the phone number belongs to.
     */
    country?: pulumi.Input<string>;
    /**
     * Specifies the department code. Defaults to **1** (Root department).
     */
    departmentCode?: pulumi.Input<string>;
    /**
     * The department name.
     */
    departmentName?: pulumi.Input<string>;
    /**
     * The department full name.
     */
    departmentNamePath?: pulumi.Input<string>;
    /**
     * Specifies the description. The value can contain `0` to `128` characters.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the email address.
     */
    email?: pulumi.Input<string>;
    /**
     * Specifies the english name. The value can contain `0` to `64` characters.
     */
    englishName?: pulumi.Input<string>;
    /**
     * Specifies whether to hide the phone number.
     */
    hidePhone?: pulumi.Input<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    isAdmin?: pulumi.Input<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    isSendNotify?: pulumi.Input<boolean>;
    /**
     * Specifies the user name. The value can contain `1` to `64` characters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the user password.
     * The following conditions must be met:
     */
    password?: pulumi.Input<string>;
    /**
     * Specifies the phone number.
     * The phone number must start with a country (region) code.
     */
    phone?: pulumi.Input<string>;
    /**
     * Specifies the signature. The value can contain `0` to `512` characters.
     */
    signature?: pulumi.Input<string>;
    /**
     * The SIP number.
     */
    sipNumber?: pulumi.Input<string>;
    /**
     * Specifies the address book sorting level.
     * The lower the serial number, the higher the priority.
     * The valid value is range from `1` to `10,000`. Defaults to `10,000`.
     */
    sortLevel?: pulumi.Input<number>;
    /**
     * Specifies the status. The valid values are as follows:
     * + **0**: Normal.
     * + **1**: Disable.
     */
    status?: pulumi.Input<number>;
    /**
     * Specifies the third-party account name.
     */
    thirdAccount?: pulumi.Input<string>;
    /**
     * Specifies the title name. The value can contain `0` to `32` characters.
     */
    title?: pulumi.Input<string>;
    /**
     * The user type.
     * + **2**: Enterprise member account.
     */
    type?: pulumi.Input<number>;
    /**
     * Specifies the user ID of the administrator.
     * Only available if `appId` is set. If omitted, the user ID of default administrator will be used.
     * Changing this parameter will create a new resource.
     */
    userId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a User resource.
 */
export interface UserArgs {
    /**
     * Specifies the user account. The value can contain `1` to `64` characters.
     * If omitted, the service will automatically generate a value.
     * Changing this parameter will create a new resource.
     */
    account?: pulumi.Input<string>;
    /**
     * Specifies the (HUAWEI Cloud meeting) user account name to which the
     * administrator belongs. Changing this parameter will create a new resource.
     */
    accountName?: pulumi.Input<string>;
    /**
     * Specifies the user password.
     * Required if `accountName` is set. Changing this parameter will create a new resource.
     */
    accountPassword?: pulumi.Input<string>;
    /**
     * Specifies the ID of the Third-party application.
     * Changing this parameter will create a new resource.
     */
    appId?: pulumi.Input<string>;
    /**
     * Specifies the Key information of the Third-party APP.
     * Required if `appId` is set. Changing this parameter will create a new resource.
     */
    appKey?: pulumi.Input<string>;
    /**
     * Specifies the corporation ID.
     * Required if the application is used in multiple enterprises. Only available if `appId` is set.
     * Changing this parameter will create a new resource.
     */
    corpId?: pulumi.Input<string>;
    /**
     * Specifies the country to which the phone number belongs to.
     */
    country?: pulumi.Input<string>;
    /**
     * Specifies the department code. Defaults to **1** (Root department).
     */
    departmentCode?: pulumi.Input<string>;
    /**
     * Specifies the description. The value can contain `0` to `128` characters.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the email address.
     */
    email?: pulumi.Input<string>;
    /**
     * Specifies the english name. The value can contain `0` to `64` characters.
     */
    englishName?: pulumi.Input<string>;
    /**
     * Specifies whether to hide the phone number.
     */
    hidePhone?: pulumi.Input<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    isAdmin?: pulumi.Input<boolean>;
    /**
     * Specifies whether to send email and SMS notifications for account opening.
     * Defaults to **true**.
     */
    isSendNotify?: pulumi.Input<boolean>;
    /**
     * Specifies the user name. The value can contain `1` to `64` characters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the user password.
     * The following conditions must be met:
     */
    password: pulumi.Input<string>;
    /**
     * Specifies the phone number.
     * The phone number must start with a country (region) code.
     */
    phone?: pulumi.Input<string>;
    /**
     * Specifies the signature. The value can contain `0` to `512` characters.
     */
    signature?: pulumi.Input<string>;
    /**
     * Specifies the address book sorting level.
     * The lower the serial number, the higher the priority.
     * The valid value is range from `1` to `10,000`. Defaults to `10,000`.
     */
    sortLevel?: pulumi.Input<number>;
    /**
     * Specifies the status. The valid values are as follows:
     * + **0**: Normal.
     * + **1**: Disable.
     */
    status?: pulumi.Input<number>;
    /**
     * Specifies the third-party account name.
     */
    thirdAccount?: pulumi.Input<string>;
    /**
     * Specifies the title name. The value can contain `0` to `32` characters.
     */
    title?: pulumi.Input<string>;
    /**
     * Specifies the user ID of the administrator.
     * Only available if `appId` is set. If omitted, the user ID of default administrator will be used.
     * Changing this parameter will create a new resource.
     */
    userId?: pulumi.Input<string>;
}
