import * as pulumi from "@pulumi/pulumi";
/**
 * Provides an AliKafka Sasl User resource.
 *
 * For information about AliKafka Sasl User and how to use it, see [What is Sasl User](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/api-alikafka-2019-09-16-createsasluser).
 *
 * > **NOTE:** Available since v1.66.0.
 *
 * ## Example Usage
 *
 * Basic Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as alicloud from "@pulumi/alicloud";
 * import * as random from "@pulumi/random";
 *
 * const config = new pulumi.Config();
 * const name = config.get("name") || "terraform-example";
 * const _default = alicloud.getZones({
 *     availableResourceCreation: "VSwitch",
 * });
 * const defaultNetwork = new alicloud.vpc.Network("default", {
 *     vpcName: name,
 *     cidrBlock: "10.4.0.0/16",
 * });
 * const defaultSwitch = new alicloud.vpc.Switch("default", {
 *     vswitchName: name,
 *     cidrBlock: "10.4.0.0/24",
 *     vpcId: defaultNetwork.id,
 *     zoneId: _default.then(_default => _default.zones?.[0]?.id),
 * });
 * const defaultSecurityGroup = new alicloud.ecs.SecurityGroup("default", {vpcId: defaultNetwork.id});
 * const defaultInteger = new random.index.Integer("default", {
 *     min: 10000,
 *     max: 99999,
 * });
 * const defaultInstance = new alicloud.alikafka.Instance("default", {
 *     name: `${name}-${defaultInteger.result}`,
 *     partitionNum: 50,
 *     diskType: 1,
 *     diskSize: 500,
 *     deployType: 5,
 *     ioMax: 20,
 *     specType: "professional",
 *     serviceVersion: "2.2.0",
 *     vswitchId: defaultSwitch.id,
 *     securityGroup: defaultSecurityGroup.id,
 *     config: `  {
 *     \\"enable.acl\\": \\"true\\"
 *   }
 * `,
 * });
 * const defaultSaslUser = new alicloud.alikafka.SaslUser("default", {
 *     instanceId: defaultInstance.id,
 *     username: name,
 *     password: "tf_example123",
 * });
 * ```
 *
 * 📚 Need more examples? VIEW MORE EXAMPLES
 *
 * ## Import
 *
 * AliKafka Sasl User can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import alicloud:alikafka/saslUser:SaslUser example <instance_id>:<username>
 * ```
 */
export declare class SaslUser extends pulumi.CustomResource {
    /**
     * Get an existing SaslUser 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?: SaslUserState, opts?: pulumi.CustomResourceOptions): SaslUser;
    /**
     * Returns true if the given object is an instance of SaslUser.  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 SaslUser;
    /**
     * The instance ID.
     */
    readonly instanceId: pulumi.Output<string>;
    /**
     * An KMS encrypts password used to a db account. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    readonly kmsEncryptedPassword: pulumi.Output<string | undefined>;
    /**
     * An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a user with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
     */
    readonly kmsEncryptionContext: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The encryption method. Valid values:
     * - SCRAM-SHA-512. This is the default value.
     * - SCRAM-SHA-256
     * > **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.
     */
    readonly mechanism: pulumi.Output<string>;
    /**
     * The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    readonly password: pulumi.Output<string>;
    /**
     * The authentication mechanism. Default value: `plain`. Valid values:
     */
    readonly type: pulumi.Output<string>;
    /**
     * The name of the SASL user. The length should between `1` to `64` characters. The characters can only contain `a`-`z`, `A`-`Z`, `0`-`9`, `_` and `-`.
     */
    readonly username: pulumi.Output<string>;
    /**
     * Create a SaslUser 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: SaslUserArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SaslUser resources.
 */
export interface SaslUserState {
    /**
     * The instance ID.
     */
    instanceId?: pulumi.Input<string | undefined>;
    /**
     * An KMS encrypts password used to a db account. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    kmsEncryptedPassword?: pulumi.Input<string | undefined>;
    /**
     * An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a user with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
     */
    kmsEncryptionContext?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The encryption method. Valid values:
     * - SCRAM-SHA-512. This is the default value.
     * - SCRAM-SHA-256
     * > **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.
     */
    mechanism?: pulumi.Input<string | undefined>;
    /**
     * The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The authentication mechanism. Default value: `plain`. Valid values:
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The name of the SASL user. The length should between `1` to `64` characters. The characters can only contain `a`-`z`, `A`-`Z`, `0`-`9`, `_` and `-`.
     */
    username?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a SaslUser resource.
 */
export interface SaslUserArgs {
    /**
     * The instance ID.
     */
    instanceId: pulumi.Input<string>;
    /**
     * An KMS encrypts password used to a db account. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    kmsEncryptedPassword?: pulumi.Input<string | undefined>;
    /**
     * An KMS encryption context used to decrypt `kmsEncryptedPassword` before creating or updating a user with `kmsEncryptedPassword`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kmsEncryptedPassword` is set.
     */
    kmsEncryptionContext?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The encryption method. Valid values:
     * - SCRAM-SHA-512. This is the default value.
     * - SCRAM-SHA-256
     * > **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.
     */
    mechanism?: pulumi.Input<string | undefined>;
    /**
     * The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of `password` and `kmsEncryptedPassword` fields.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The authentication mechanism. Default value: `plain`. Valid values:
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The name of the SASL user. The length should between `1` to `64` characters. The characters can only contain `a`-`z`, `A`-`Z`, `0`-`9`, `_` and `-`.
     */
    username: pulumi.Input<string>;
}
//# sourceMappingURL=saslUser.d.ts.map