github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/user.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package connect
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an Amazon Connect User resource. For more information see
    16  // [Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html)
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Basic
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := connect.NewUser(ctx, "example", &connect.UserArgs{
    36  //				InstanceId:       pulumi.Any(exampleAwsConnectInstance.Id),
    37  //				Name:             pulumi.String("example"),
    38  //				Password:         pulumi.String("Password123"),
    39  //				RoutingProfileId: pulumi.Any(exampleAwsConnectRoutingProfile.RoutingProfileId),
    40  //				SecurityProfileIds: pulumi.StringArray{
    41  //					exampleAwsConnectSecurityProfile.SecurityProfileId,
    42  //				},
    43  //				IdentityInfo: &connect.UserIdentityInfoArgs{
    44  //					FirstName: pulumi.String("example"),
    45  //					LastName:  pulumi.String("example2"),
    46  //				},
    47  //				PhoneConfig: &connect.UserPhoneConfigArgs{
    48  //					AfterContactWorkTimeLimit: pulumi.Int(0),
    49  //					PhoneType:                 pulumi.String("SOFT_PHONE"),
    50  //				},
    51  //			})
    52  //			if err != nil {
    53  //				return err
    54  //			}
    55  //			return nil
    56  //		})
    57  //	}
    58  //
    59  // ```
    60  // <!--End PulumiCodeChooser -->
    61  //
    62  // ### With hierarchyGroupId
    63  //
    64  // <!--Start PulumiCodeChooser -->
    65  // ```go
    66  // package main
    67  //
    68  // import (
    69  //
    70  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
    71  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    72  //
    73  // )
    74  //
    75  //	func main() {
    76  //		pulumi.Run(func(ctx *pulumi.Context) error {
    77  //			_, err := connect.NewUser(ctx, "example", &connect.UserArgs{
    78  //				InstanceId:       pulumi.Any(exampleAwsConnectInstance.Id),
    79  //				Name:             pulumi.String("example"),
    80  //				Password:         pulumi.String("Password123"),
    81  //				RoutingProfileId: pulumi.Any(exampleAwsConnectRoutingProfile.RoutingProfileId),
    82  //				HierarchyGroupId: pulumi.Any(exampleAwsConnectUserHierarchyGroup.HierarchyGroupId),
    83  //				SecurityProfileIds: pulumi.StringArray{
    84  //					exampleAwsConnectSecurityProfile.SecurityProfileId,
    85  //				},
    86  //				IdentityInfo: &connect.UserIdentityInfoArgs{
    87  //					FirstName: pulumi.String("example"),
    88  //					LastName:  pulumi.String("example2"),
    89  //				},
    90  //				PhoneConfig: &connect.UserPhoneConfigArgs{
    91  //					AfterContactWorkTimeLimit: pulumi.Int(0),
    92  //					PhoneType:                 pulumi.String("SOFT_PHONE"),
    93  //				},
    94  //			})
    95  //			if err != nil {
    96  //				return err
    97  //			}
    98  //			return nil
    99  //		})
   100  //	}
   101  //
   102  // ```
   103  // <!--End PulumiCodeChooser -->
   104  //
   105  // ### With identityInfo filled
   106  //
   107  // <!--Start PulumiCodeChooser -->
   108  // ```go
   109  // package main
   110  //
   111  // import (
   112  //
   113  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
   114  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   115  //
   116  // )
   117  //
   118  //	func main() {
   119  //		pulumi.Run(func(ctx *pulumi.Context) error {
   120  //			_, err := connect.NewUser(ctx, "example", &connect.UserArgs{
   121  //				InstanceId:       pulumi.Any(exampleAwsConnectInstance.Id),
   122  //				Name:             pulumi.String("example"),
   123  //				Password:         pulumi.String("Password123"),
   124  //				RoutingProfileId: pulumi.Any(exampleAwsConnectRoutingProfile.RoutingProfileId),
   125  //				SecurityProfileIds: pulumi.StringArray{
   126  //					exampleAwsConnectSecurityProfile.SecurityProfileId,
   127  //				},
   128  //				IdentityInfo: &connect.UserIdentityInfoArgs{
   129  //					Email:     pulumi.String("example@example.com"),
   130  //					FirstName: pulumi.String("example"),
   131  //					LastName:  pulumi.String("example2"),
   132  //				},
   133  //				PhoneConfig: &connect.UserPhoneConfigArgs{
   134  //					AfterContactWorkTimeLimit: pulumi.Int(0),
   135  //					PhoneType:                 pulumi.String("SOFT_PHONE"),
   136  //				},
   137  //			})
   138  //			if err != nil {
   139  //				return err
   140  //			}
   141  //			return nil
   142  //		})
   143  //	}
   144  //
   145  // ```
   146  // <!--End PulumiCodeChooser -->
   147  //
   148  // ### With phoneConfig phone type as desk phone
   149  //
   150  // <!--Start PulumiCodeChooser -->
   151  // ```go
   152  // package main
   153  //
   154  // import (
   155  //
   156  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
   157  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   158  //
   159  // )
   160  //
   161  //	func main() {
   162  //		pulumi.Run(func(ctx *pulumi.Context) error {
   163  //			_, err := connect.NewUser(ctx, "example", &connect.UserArgs{
   164  //				InstanceId:       pulumi.Any(exampleAwsConnectInstance.Id),
   165  //				Name:             pulumi.String("example"),
   166  //				Password:         pulumi.String("Password123"),
   167  //				RoutingProfileId: pulumi.Any(exampleAwsConnectRoutingProfile.RoutingProfileId),
   168  //				SecurityProfileIds: pulumi.StringArray{
   169  //					exampleAwsConnectSecurityProfile.SecurityProfileId,
   170  //				},
   171  //				PhoneConfig: &connect.UserPhoneConfigArgs{
   172  //					AfterContactWorkTimeLimit: pulumi.Int(0),
   173  //					PhoneType:                 pulumi.String("SOFT_PHONE"),
   174  //				},
   175  //			})
   176  //			if err != nil {
   177  //				return err
   178  //			}
   179  //			return nil
   180  //		})
   181  //	}
   182  //
   183  // ```
   184  // <!--End PulumiCodeChooser -->
   185  //
   186  // ### With multiple Security profile ids specified in securityProfileIds
   187  //
   188  // <!--Start PulumiCodeChooser -->
   189  // ```go
   190  // package main
   191  //
   192  // import (
   193  //
   194  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
   195  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   196  //
   197  // )
   198  //
   199  //	func main() {
   200  //		pulumi.Run(func(ctx *pulumi.Context) error {
   201  //			_, err := connect.NewUser(ctx, "example", &connect.UserArgs{
   202  //				InstanceId:       pulumi.Any(exampleAwsConnectInstance.Id),
   203  //				Name:             pulumi.String("example"),
   204  //				Password:         pulumi.String("Password123"),
   205  //				RoutingProfileId: pulumi.Any(exampleAwsConnectRoutingProfile.RoutingProfileId),
   206  //				SecurityProfileIds: pulumi.StringArray{
   207  //					exampleAwsConnectSecurityProfile.SecurityProfileId,
   208  //					example2.SecurityProfileId,
   209  //				},
   210  //				PhoneConfig: &connect.UserPhoneConfigArgs{
   211  //					AfterContactWorkTimeLimit: pulumi.Int(0),
   212  //					AutoAccept:                pulumi.Bool(false),
   213  //					DeskPhoneNumber:           pulumi.String("+112345678912"),
   214  //					PhoneType:                 pulumi.String("DESK_PHONE"),
   215  //				},
   216  //			})
   217  //			if err != nil {
   218  //				return err
   219  //			}
   220  //			return nil
   221  //		})
   222  //	}
   223  //
   224  // ```
   225  // <!--End PulumiCodeChooser -->
   226  //
   227  // ## Import
   228  //
   229  // Using `pulumi import`, import Amazon Connect Users using the `instance_id` and `user_id` separated by a colon (`:`). For example:
   230  //
   231  // ```sh
   232  // $ pulumi import aws:connect/user:User example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5
   233  // ```
   234  type User struct {
   235  	pulumi.CustomResourceState
   236  
   237  	// The Amazon Resource Name (ARN) of the user.
   238  	Arn pulumi.StringOutput `pulumi:"arn"`
   239  	// The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   240  	DirectoryUserId pulumi.StringOutput `pulumi:"directoryUserId"`
   241  	// The identifier of the hierarchy group for the user.
   242  	HierarchyGroupId pulumi.StringPtrOutput `pulumi:"hierarchyGroupId"`
   243  	// A block that contains information about the identity of the user. Documented below.
   244  	IdentityInfo UserIdentityInfoPtrOutput `pulumi:"identityInfo"`
   245  	// Specifies the identifier of the hosting Amazon Connect Instance.
   246  	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
   247  	// 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   248  	Name pulumi.StringOutput `pulumi:"name"`
   249  	// 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.
   250  	Password pulumi.StringPtrOutput `pulumi:"password"`
   251  	// A block that contains information about the phone settings for the user. Documented below.
   252  	PhoneConfig UserPhoneConfigOutput `pulumi:"phoneConfig"`
   253  	// The identifier of the routing profile for the user.
   254  	RoutingProfileId pulumi.StringOutput `pulumi:"routingProfileId"`
   255  	// 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.
   256  	SecurityProfileIds pulumi.StringArrayOutput `pulumi:"securityProfileIds"`
   257  	// Tags to apply to the user. If configured with a provider
   258  	// `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   259  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   260  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   261  	//
   262  	// Deprecated: Please use `tags` instead.
   263  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   264  	// The identifier for the user.
   265  	UserId pulumi.StringOutput `pulumi:"userId"`
   266  }
   267  
   268  // NewUser registers a new resource with the given unique name, arguments, and options.
   269  func NewUser(ctx *pulumi.Context,
   270  	name string, args *UserArgs, opts ...pulumi.ResourceOption) (*User, error) {
   271  	if args == nil {
   272  		return nil, errors.New("missing one or more required arguments")
   273  	}
   274  
   275  	if args.InstanceId == nil {
   276  		return nil, errors.New("invalid value for required argument 'InstanceId'")
   277  	}
   278  	if args.PhoneConfig == nil {
   279  		return nil, errors.New("invalid value for required argument 'PhoneConfig'")
   280  	}
   281  	if args.RoutingProfileId == nil {
   282  		return nil, errors.New("invalid value for required argument 'RoutingProfileId'")
   283  	}
   284  	if args.SecurityProfileIds == nil {
   285  		return nil, errors.New("invalid value for required argument 'SecurityProfileIds'")
   286  	}
   287  	if args.Password != nil {
   288  		args.Password = pulumi.ToSecret(args.Password).(pulumi.StringPtrInput)
   289  	}
   290  	secrets := pulumi.AdditionalSecretOutputs([]string{
   291  		"password",
   292  	})
   293  	opts = append(opts, secrets)
   294  	opts = internal.PkgResourceDefaultOpts(opts)
   295  	var resource User
   296  	err := ctx.RegisterResource("aws:connect/user:User", name, args, &resource, opts...)
   297  	if err != nil {
   298  		return nil, err
   299  	}
   300  	return &resource, nil
   301  }
   302  
   303  // GetUser gets an existing User resource's state with the given name, ID, and optional
   304  // state properties that are used to uniquely qualify the lookup (nil if not required).
   305  func GetUser(ctx *pulumi.Context,
   306  	name string, id pulumi.IDInput, state *UserState, opts ...pulumi.ResourceOption) (*User, error) {
   307  	var resource User
   308  	err := ctx.ReadResource("aws:connect/user:User", name, id, state, &resource, opts...)
   309  	if err != nil {
   310  		return nil, err
   311  	}
   312  	return &resource, nil
   313  }
   314  
   315  // Input properties used for looking up and filtering User resources.
   316  type userState struct {
   317  	// The Amazon Resource Name (ARN) of the user.
   318  	Arn *string `pulumi:"arn"`
   319  	// The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   320  	DirectoryUserId *string `pulumi:"directoryUserId"`
   321  	// The identifier of the hierarchy group for the user.
   322  	HierarchyGroupId *string `pulumi:"hierarchyGroupId"`
   323  	// A block that contains information about the identity of the user. Documented below.
   324  	IdentityInfo *UserIdentityInfo `pulumi:"identityInfo"`
   325  	// Specifies the identifier of the hosting Amazon Connect Instance.
   326  	InstanceId *string `pulumi:"instanceId"`
   327  	// 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   328  	Name *string `pulumi:"name"`
   329  	// 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.
   330  	Password *string `pulumi:"password"`
   331  	// A block that contains information about the phone settings for the user. Documented below.
   332  	PhoneConfig *UserPhoneConfig `pulumi:"phoneConfig"`
   333  	// The identifier of the routing profile for the user.
   334  	RoutingProfileId *string `pulumi:"routingProfileId"`
   335  	// 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.
   336  	SecurityProfileIds []string `pulumi:"securityProfileIds"`
   337  	// Tags to apply to the user. If configured with a provider
   338  	// `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   339  	Tags map[string]string `pulumi:"tags"`
   340  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   341  	//
   342  	// Deprecated: Please use `tags` instead.
   343  	TagsAll map[string]string `pulumi:"tagsAll"`
   344  	// The identifier for the user.
   345  	UserId *string `pulumi:"userId"`
   346  }
   347  
   348  type UserState struct {
   349  	// The Amazon Resource Name (ARN) of the user.
   350  	Arn pulumi.StringPtrInput
   351  	// The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   352  	DirectoryUserId pulumi.StringPtrInput
   353  	// The identifier of the hierarchy group for the user.
   354  	HierarchyGroupId pulumi.StringPtrInput
   355  	// A block that contains information about the identity of the user. Documented below.
   356  	IdentityInfo UserIdentityInfoPtrInput
   357  	// Specifies the identifier of the hosting Amazon Connect Instance.
   358  	InstanceId pulumi.StringPtrInput
   359  	// 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   360  	Name pulumi.StringPtrInput
   361  	// 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.
   362  	Password pulumi.StringPtrInput
   363  	// A block that contains information about the phone settings for the user. Documented below.
   364  	PhoneConfig UserPhoneConfigPtrInput
   365  	// The identifier of the routing profile for the user.
   366  	RoutingProfileId pulumi.StringPtrInput
   367  	// 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.
   368  	SecurityProfileIds pulumi.StringArrayInput
   369  	// Tags to apply to the user. If configured with a provider
   370  	// `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   371  	Tags pulumi.StringMapInput
   372  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   373  	//
   374  	// Deprecated: Please use `tags` instead.
   375  	TagsAll pulumi.StringMapInput
   376  	// The identifier for the user.
   377  	UserId pulumi.StringPtrInput
   378  }
   379  
   380  func (UserState) ElementType() reflect.Type {
   381  	return reflect.TypeOf((*userState)(nil)).Elem()
   382  }
   383  
   384  type userArgs struct {
   385  	// The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   386  	DirectoryUserId *string `pulumi:"directoryUserId"`
   387  	// The identifier of the hierarchy group for the user.
   388  	HierarchyGroupId *string `pulumi:"hierarchyGroupId"`
   389  	// A block that contains information about the identity of the user. Documented below.
   390  	IdentityInfo *UserIdentityInfo `pulumi:"identityInfo"`
   391  	// Specifies the identifier of the hosting Amazon Connect Instance.
   392  	InstanceId string `pulumi:"instanceId"`
   393  	// 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   394  	Name *string `pulumi:"name"`
   395  	// 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.
   396  	Password *string `pulumi:"password"`
   397  	// A block that contains information about the phone settings for the user. Documented below.
   398  	PhoneConfig UserPhoneConfig `pulumi:"phoneConfig"`
   399  	// The identifier of the routing profile for the user.
   400  	RoutingProfileId string `pulumi:"routingProfileId"`
   401  	// 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.
   402  	SecurityProfileIds []string `pulumi:"securityProfileIds"`
   403  	// Tags to apply to the user. If configured with a provider
   404  	// `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   405  	Tags map[string]string `pulumi:"tags"`
   406  }
   407  
   408  // The set of arguments for constructing a User resource.
   409  type UserArgs struct {
   410  	// The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   411  	DirectoryUserId pulumi.StringPtrInput
   412  	// The identifier of the hierarchy group for the user.
   413  	HierarchyGroupId pulumi.StringPtrInput
   414  	// A block that contains information about the identity of the user. Documented below.
   415  	IdentityInfo UserIdentityInfoPtrInput
   416  	// Specifies the identifier of the hosting Amazon Connect Instance.
   417  	InstanceId pulumi.StringInput
   418  	// 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   419  	Name pulumi.StringPtrInput
   420  	// 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.
   421  	Password pulumi.StringPtrInput
   422  	// A block that contains information about the phone settings for the user. Documented below.
   423  	PhoneConfig UserPhoneConfigInput
   424  	// The identifier of the routing profile for the user.
   425  	RoutingProfileId pulumi.StringInput
   426  	// 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.
   427  	SecurityProfileIds pulumi.StringArrayInput
   428  	// Tags to apply to the user. If configured with a provider
   429  	// `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   430  	Tags pulumi.StringMapInput
   431  }
   432  
   433  func (UserArgs) ElementType() reflect.Type {
   434  	return reflect.TypeOf((*userArgs)(nil)).Elem()
   435  }
   436  
   437  type UserInput interface {
   438  	pulumi.Input
   439  
   440  	ToUserOutput() UserOutput
   441  	ToUserOutputWithContext(ctx context.Context) UserOutput
   442  }
   443  
   444  func (*User) ElementType() reflect.Type {
   445  	return reflect.TypeOf((**User)(nil)).Elem()
   446  }
   447  
   448  func (i *User) ToUserOutput() UserOutput {
   449  	return i.ToUserOutputWithContext(context.Background())
   450  }
   451  
   452  func (i *User) ToUserOutputWithContext(ctx context.Context) UserOutput {
   453  	return pulumi.ToOutputWithContext(ctx, i).(UserOutput)
   454  }
   455  
   456  // UserArrayInput is an input type that accepts UserArray and UserArrayOutput values.
   457  // You can construct a concrete instance of `UserArrayInput` via:
   458  //
   459  //	UserArray{ UserArgs{...} }
   460  type UserArrayInput interface {
   461  	pulumi.Input
   462  
   463  	ToUserArrayOutput() UserArrayOutput
   464  	ToUserArrayOutputWithContext(context.Context) UserArrayOutput
   465  }
   466  
   467  type UserArray []UserInput
   468  
   469  func (UserArray) ElementType() reflect.Type {
   470  	return reflect.TypeOf((*[]*User)(nil)).Elem()
   471  }
   472  
   473  func (i UserArray) ToUserArrayOutput() UserArrayOutput {
   474  	return i.ToUserArrayOutputWithContext(context.Background())
   475  }
   476  
   477  func (i UserArray) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput {
   478  	return pulumi.ToOutputWithContext(ctx, i).(UserArrayOutput)
   479  }
   480  
   481  // UserMapInput is an input type that accepts UserMap and UserMapOutput values.
   482  // You can construct a concrete instance of `UserMapInput` via:
   483  //
   484  //	UserMap{ "key": UserArgs{...} }
   485  type UserMapInput interface {
   486  	pulumi.Input
   487  
   488  	ToUserMapOutput() UserMapOutput
   489  	ToUserMapOutputWithContext(context.Context) UserMapOutput
   490  }
   491  
   492  type UserMap map[string]UserInput
   493  
   494  func (UserMap) ElementType() reflect.Type {
   495  	return reflect.TypeOf((*map[string]*User)(nil)).Elem()
   496  }
   497  
   498  func (i UserMap) ToUserMapOutput() UserMapOutput {
   499  	return i.ToUserMapOutputWithContext(context.Background())
   500  }
   501  
   502  func (i UserMap) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput {
   503  	return pulumi.ToOutputWithContext(ctx, i).(UserMapOutput)
   504  }
   505  
   506  type UserOutput struct{ *pulumi.OutputState }
   507  
   508  func (UserOutput) ElementType() reflect.Type {
   509  	return reflect.TypeOf((**User)(nil)).Elem()
   510  }
   511  
   512  func (o UserOutput) ToUserOutput() UserOutput {
   513  	return o
   514  }
   515  
   516  func (o UserOutput) ToUserOutputWithContext(ctx context.Context) UserOutput {
   517  	return o
   518  }
   519  
   520  // The Amazon Resource Name (ARN) of the user.
   521  func (o UserOutput) Arn() pulumi.StringOutput {
   522  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   523  }
   524  
   525  // The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you 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 if 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 and include this parameter, an error is returned.
   526  func (o UserOutput) DirectoryUserId() pulumi.StringOutput {
   527  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.DirectoryUserId }).(pulumi.StringOutput)
   528  }
   529  
   530  // The identifier of the hierarchy group for the user.
   531  func (o UserOutput) HierarchyGroupId() pulumi.StringPtrOutput {
   532  	return o.ApplyT(func(v *User) pulumi.StringPtrOutput { return v.HierarchyGroupId }).(pulumi.StringPtrOutput)
   533  }
   534  
   535  // A block that contains information about the identity of the user. Documented below.
   536  func (o UserOutput) IdentityInfo() UserIdentityInfoPtrOutput {
   537  	return o.ApplyT(func(v *User) UserIdentityInfoPtrOutput { return v.IdentityInfo }).(UserIdentityInfoPtrOutput)
   538  }
   539  
   540  // Specifies the identifier of the hosting Amazon Connect Instance.
   541  func (o UserOutput) InstanceId() pulumi.StringOutput {
   542  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput)
   543  }
   544  
   545  // 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 name can include up to 64 characters from `[a-zA-Z0-9_-.\@]+`.
   546  func (o UserOutput) Name() pulumi.StringOutput {
   547  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   548  }
   549  
   550  // 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.
   551  func (o UserOutput) Password() pulumi.StringPtrOutput {
   552  	return o.ApplyT(func(v *User) pulumi.StringPtrOutput { return v.Password }).(pulumi.StringPtrOutput)
   553  }
   554  
   555  // A block that contains information about the phone settings for the user. Documented below.
   556  func (o UserOutput) PhoneConfig() UserPhoneConfigOutput {
   557  	return o.ApplyT(func(v *User) UserPhoneConfigOutput { return v.PhoneConfig }).(UserPhoneConfigOutput)
   558  }
   559  
   560  // The identifier of the routing profile for the user.
   561  func (o UserOutput) RoutingProfileId() pulumi.StringOutput {
   562  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.RoutingProfileId }).(pulumi.StringOutput)
   563  }
   564  
   565  // 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.
   566  func (o UserOutput) SecurityProfileIds() pulumi.StringArrayOutput {
   567  	return o.ApplyT(func(v *User) pulumi.StringArrayOutput { return v.SecurityProfileIds }).(pulumi.StringArrayOutput)
   568  }
   569  
   570  // Tags to apply to the user. If configured with a provider
   571  // `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   572  func (o UserOutput) Tags() pulumi.StringMapOutput {
   573  	return o.ApplyT(func(v *User) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   574  }
   575  
   576  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   577  //
   578  // Deprecated: Please use `tags` instead.
   579  func (o UserOutput) TagsAll() pulumi.StringMapOutput {
   580  	return o.ApplyT(func(v *User) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   581  }
   582  
   583  // The identifier for the user.
   584  func (o UserOutput) UserId() pulumi.StringOutput {
   585  	return o.ApplyT(func(v *User) pulumi.StringOutput { return v.UserId }).(pulumi.StringOutput)
   586  }
   587  
   588  type UserArrayOutput struct{ *pulumi.OutputState }
   589  
   590  func (UserArrayOutput) ElementType() reflect.Type {
   591  	return reflect.TypeOf((*[]*User)(nil)).Elem()
   592  }
   593  
   594  func (o UserArrayOutput) ToUserArrayOutput() UserArrayOutput {
   595  	return o
   596  }
   597  
   598  func (o UserArrayOutput) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput {
   599  	return o
   600  }
   601  
   602  func (o UserArrayOutput) Index(i pulumi.IntInput) UserOutput {
   603  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *User {
   604  		return vs[0].([]*User)[vs[1].(int)]
   605  	}).(UserOutput)
   606  }
   607  
   608  type UserMapOutput struct{ *pulumi.OutputState }
   609  
   610  func (UserMapOutput) ElementType() reflect.Type {
   611  	return reflect.TypeOf((*map[string]*User)(nil)).Elem()
   612  }
   613  
   614  func (o UserMapOutput) ToUserMapOutput() UserMapOutput {
   615  	return o
   616  }
   617  
   618  func (o UserMapOutput) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput {
   619  	return o
   620  }
   621  
   622  func (o UserMapOutput) MapIndex(k pulumi.StringInput) UserOutput {
   623  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *User {
   624  		return vs[0].(map[string]*User)[vs[1].(string)]
   625  	}).(UserOutput)
   626  }
   627  
   628  func init() {
   629  	pulumi.RegisterInputType(reflect.TypeOf((*UserInput)(nil)).Elem(), &User{})
   630  	pulumi.RegisterInputType(reflect.TypeOf((*UserArrayInput)(nil)).Elem(), UserArray{})
   631  	pulumi.RegisterInputType(reflect.TypeOf((*UserMapInput)(nil)).Elem(), UserMap{})
   632  	pulumi.RegisterOutputType(UserOutput{})
   633  	pulumi.RegisterOutputType(UserArrayOutput{})
   634  	pulumi.RegisterOutputType(UserMapOutput{})
   635  }