import * as core from "@terrascript/core"; export interface PhoneConfigArgs extends core.SchemaArgs { afterContactWorkTimeLimit?: number | core.NumberOut; autoAccept?: boolean | core.BooleanOut; deskPhoneNumber?: string | core.StringOut; phoneType: string | core.StringOut; } export class PhoneConfig extends core.Schema { @core.attr(Number) public afterContactWorkTimeLimit?: number | core.NumberOut; @core.attr(Boolean) public autoAccept?: boolean | core.BooleanOut; @core.attr(String) public deskPhoneNumber?: string | core.StringOut; @core.attr(String) public phoneType!: string | core.StringOut; } export interface IdentityInfoArgs extends core.SchemaArgs { email?: string | core.StringOut; firstName?: string | core.StringOut; lastName?: string | core.StringOut; } export class IdentityInfo extends core.Schema { @core.attr(String) public email?: string | core.StringOut; @core.attr(String) public firstName?: string | core.StringOut; @core.attr(String) public lastName?: string | core.StringOut; } export interface UserArgs extends core.ResourceArgs { /** * (Optional) The identifier of the user account in the directory used for identity management. If Amaz * on Connect cannot access the directory, you can specify this identifier to authenticate users. If yo * u include the identifier, we assume that Amazon Connect cannot access the directory. Otherwise, the * identity information is used to authenticate users from your directory. This parameter is required i * f you are using an existing directory for identity management in Amazon Connect when Amazon Connect * cannot access your directory to authenticate users. If you are using SAML for identity management an * d include this parameter, an error is returned. */ directoryUserId?: string | core.StringOut; /** * (Optional) The identifier of the hierarchy group for the user. */ hierarchyGroupId?: string | core.StringOut; /** * (Optional) A block that contains information about the identity of the user. Documented below. */ identityInfo?: IdentityInfo; /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ instanceId: string | core.StringOut; /** * (Required) The user name for the account. For instances not using SAML for identity management, the * user name can include up to 20 characters. If you are using SAML for identity management, the user n * ame can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`. */ name: string | core.StringOut; /** * (Optional) The password for the user account. A password is required if you are using Amazon Connect * for identity management. Otherwise, it is an error to include a password. */ password?: string | core.StringOut; /** * (Required) A block that contains information about the phone settings for the user. Documented below * . */ phoneConfig: PhoneConfig; /** * (Required) The identifier of the routing profile for the user. */ routingProfileId: string | core.StringOut; /** * (Required) A list of identifiers for the security profiles for the user. Specify a minimum of 1 and * maximum of 10 security profile ids. For more information, see [Best Practices for Security Profiles] * (https://docs.aws.amazon.com/connect/latest/adminguide/security-profile-best-practices.html) in the * Amazon Connect Administrator Guide. */ securityProfileIds: core.Array | core.ArrayOut; /** * (Optional) Tags to apply to the user. If configured with a provider */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class User extends core.Resource { /** * The Amazon Resource Name (ARN) of the user. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The identifier of the user account in the directory used for identity management. If Amaz * on Connect cannot access the directory, you can specify this identifier to authenticate users. If yo * u include the identifier, we assume that Amazon Connect cannot access the directory. Otherwise, the * identity information is used to authenticate users from your directory. This parameter is required i * f you are using an existing directory for identity management in Amazon Connect when Amazon Connect * cannot access your directory to authenticate users. If you are using SAML for identity management an * d include this parameter, an error is returned. */ @core.attr(String, { computed: true }) public directoryUserId?: string | core.StringOut; /** * (Optional) The identifier of the hierarchy group for the user. */ @core.attr(String) public hierarchyGroupId?: string | core.StringOut; /** * The identifier of the hosting Amazon Connect Instance and identifier of the user */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A block that contains information about the identity of the user. Documented below. */ @core.attr(IdentityInfo) public identityInfo?: IdentityInfo; /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ @core.attr(String) public instanceId!: string | core.StringOut; /** * (Required) The user name for the account. For instances not using SAML for identity management, the * user name can include up to 20 characters. If you are using SAML for identity management, the user n * ame can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) The password for the user account. A password is required if you are using Amazon Connect * for identity management. Otherwise, it is an error to include a password. */ @core.attr(String) public password?: string | core.StringOut; /** * (Required) A block that contains information about the phone settings for the user. Documented below * . */ @core.attr(PhoneConfig) public phoneConfig!: PhoneConfig; /** * (Required) The identifier of the routing profile for the user. */ @core.attr(String) public routingProfileId!: string | core.StringOut; /** * (Required) A list of identifiers for the security profiles for the user. Specify a minimum of 1 and * maximum of 10 security profile ids. For more information, see [Best Practices for Security Profiles] * (https://docs.aws.amazon.com/connect/latest/adminguide/security-profile-best-practices.html) in the * Amazon Connect Administrator Guide. */ @core.attr(String, { kind: "array" }) public securityProfileIds!: | core.Array | core.ArrayOut; /** * (Optional) Tags to apply to the user. If configured with a provider */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * The identifier for the user. */ @core.attr(String, { computed: true }) public userId!: string | core.StringOut; constructor(name: string, args?: UserArgs) { super(name, "aws_connect_user", args); } public override getNamespace(): string { return "aws_connect"; } }