github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/userHierarchyStructure.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 Hierarchy Structure 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.NewUserHierarchyStructure(ctx, "example", &connect.UserHierarchyStructureArgs{
    36  //				InstanceId: pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
    37  //				HierarchyStructure: &connect.UserHierarchyStructureHierarchyStructureArgs{
    38  //					LevelOne: &connect.UserHierarchyStructureHierarchyStructureLevelOneArgs{
    39  //						Name: pulumi.String("levelone"),
    40  //					},
    41  //				},
    42  //			})
    43  //			if err != nil {
    44  //				return err
    45  //			}
    46  //			return nil
    47  //		})
    48  //	}
    49  //
    50  // ```
    51  // <!--End PulumiCodeChooser -->
    52  //
    53  // ### With Five Levels
    54  //
    55  // <!--Start PulumiCodeChooser -->
    56  // ```go
    57  // package main
    58  //
    59  // import (
    60  //
    61  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
    62  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    63  //
    64  // )
    65  //
    66  //	func main() {
    67  //		pulumi.Run(func(ctx *pulumi.Context) error {
    68  //			_, err := connect.NewUserHierarchyStructure(ctx, "example", &connect.UserHierarchyStructureArgs{
    69  //				InstanceId: pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
    70  //				HierarchyStructure: &connect.UserHierarchyStructureHierarchyStructureArgs{
    71  //					LevelOne: &connect.UserHierarchyStructureHierarchyStructureLevelOneArgs{
    72  //						Name: pulumi.String("levelone"),
    73  //					},
    74  //					LevelTwo: &connect.UserHierarchyStructureHierarchyStructureLevelTwoArgs{
    75  //						Name: pulumi.String("leveltwo"),
    76  //					},
    77  //					LevelThree: &connect.UserHierarchyStructureHierarchyStructureLevelThreeArgs{
    78  //						Name: pulumi.String("levelthree"),
    79  //					},
    80  //					LevelFour: &connect.UserHierarchyStructureHierarchyStructureLevelFourArgs{
    81  //						Name: pulumi.String("levelfour"),
    82  //					},
    83  //					LevelFive: &connect.UserHierarchyStructureHierarchyStructureLevelFiveArgs{
    84  //						Name: pulumi.String("levelfive"),
    85  //					},
    86  //				},
    87  //			})
    88  //			if err != nil {
    89  //				return err
    90  //			}
    91  //			return nil
    92  //		})
    93  //	}
    94  //
    95  // ```
    96  // <!--End PulumiCodeChooser -->
    97  //
    98  // ## Import
    99  //
   100  // Using `pulumi import`, import Amazon Connect User Hierarchy Structures using the `instance_id`. For example:
   101  //
   102  // ```sh
   103  // $ pulumi import aws:connect/userHierarchyStructure:UserHierarchyStructure example f1288a1f-6193-445a-b47e-af739b2
   104  // ```
   105  type UserHierarchyStructure struct {
   106  	pulumi.CustomResourceState
   107  
   108  	// A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   109  	HierarchyStructure UserHierarchyStructureHierarchyStructureOutput `pulumi:"hierarchyStructure"`
   110  	// Specifies the identifier of the hosting Amazon Connect Instance.
   111  	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
   112  }
   113  
   114  // NewUserHierarchyStructure registers a new resource with the given unique name, arguments, and options.
   115  func NewUserHierarchyStructure(ctx *pulumi.Context,
   116  	name string, args *UserHierarchyStructureArgs, opts ...pulumi.ResourceOption) (*UserHierarchyStructure, error) {
   117  	if args == nil {
   118  		return nil, errors.New("missing one or more required arguments")
   119  	}
   120  
   121  	if args.HierarchyStructure == nil {
   122  		return nil, errors.New("invalid value for required argument 'HierarchyStructure'")
   123  	}
   124  	if args.InstanceId == nil {
   125  		return nil, errors.New("invalid value for required argument 'InstanceId'")
   126  	}
   127  	opts = internal.PkgResourceDefaultOpts(opts)
   128  	var resource UserHierarchyStructure
   129  	err := ctx.RegisterResource("aws:connect/userHierarchyStructure:UserHierarchyStructure", name, args, &resource, opts...)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &resource, nil
   134  }
   135  
   136  // GetUserHierarchyStructure gets an existing UserHierarchyStructure resource's state with the given name, ID, and optional
   137  // state properties that are used to uniquely qualify the lookup (nil if not required).
   138  func GetUserHierarchyStructure(ctx *pulumi.Context,
   139  	name string, id pulumi.IDInput, state *UserHierarchyStructureState, opts ...pulumi.ResourceOption) (*UserHierarchyStructure, error) {
   140  	var resource UserHierarchyStructure
   141  	err := ctx.ReadResource("aws:connect/userHierarchyStructure:UserHierarchyStructure", name, id, state, &resource, opts...)
   142  	if err != nil {
   143  		return nil, err
   144  	}
   145  	return &resource, nil
   146  }
   147  
   148  // Input properties used for looking up and filtering UserHierarchyStructure resources.
   149  type userHierarchyStructureState struct {
   150  	// A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   151  	HierarchyStructure *UserHierarchyStructureHierarchyStructure `pulumi:"hierarchyStructure"`
   152  	// Specifies the identifier of the hosting Amazon Connect Instance.
   153  	InstanceId *string `pulumi:"instanceId"`
   154  }
   155  
   156  type UserHierarchyStructureState struct {
   157  	// A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   158  	HierarchyStructure UserHierarchyStructureHierarchyStructurePtrInput
   159  	// Specifies the identifier of the hosting Amazon Connect Instance.
   160  	InstanceId pulumi.StringPtrInput
   161  }
   162  
   163  func (UserHierarchyStructureState) ElementType() reflect.Type {
   164  	return reflect.TypeOf((*userHierarchyStructureState)(nil)).Elem()
   165  }
   166  
   167  type userHierarchyStructureArgs struct {
   168  	// A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   169  	HierarchyStructure UserHierarchyStructureHierarchyStructure `pulumi:"hierarchyStructure"`
   170  	// Specifies the identifier of the hosting Amazon Connect Instance.
   171  	InstanceId string `pulumi:"instanceId"`
   172  }
   173  
   174  // The set of arguments for constructing a UserHierarchyStructure resource.
   175  type UserHierarchyStructureArgs struct {
   176  	// A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   177  	HierarchyStructure UserHierarchyStructureHierarchyStructureInput
   178  	// Specifies the identifier of the hosting Amazon Connect Instance.
   179  	InstanceId pulumi.StringInput
   180  }
   181  
   182  func (UserHierarchyStructureArgs) ElementType() reflect.Type {
   183  	return reflect.TypeOf((*userHierarchyStructureArgs)(nil)).Elem()
   184  }
   185  
   186  type UserHierarchyStructureInput interface {
   187  	pulumi.Input
   188  
   189  	ToUserHierarchyStructureOutput() UserHierarchyStructureOutput
   190  	ToUserHierarchyStructureOutputWithContext(ctx context.Context) UserHierarchyStructureOutput
   191  }
   192  
   193  func (*UserHierarchyStructure) ElementType() reflect.Type {
   194  	return reflect.TypeOf((**UserHierarchyStructure)(nil)).Elem()
   195  }
   196  
   197  func (i *UserHierarchyStructure) ToUserHierarchyStructureOutput() UserHierarchyStructureOutput {
   198  	return i.ToUserHierarchyStructureOutputWithContext(context.Background())
   199  }
   200  
   201  func (i *UserHierarchyStructure) ToUserHierarchyStructureOutputWithContext(ctx context.Context) UserHierarchyStructureOutput {
   202  	return pulumi.ToOutputWithContext(ctx, i).(UserHierarchyStructureOutput)
   203  }
   204  
   205  // UserHierarchyStructureArrayInput is an input type that accepts UserHierarchyStructureArray and UserHierarchyStructureArrayOutput values.
   206  // You can construct a concrete instance of `UserHierarchyStructureArrayInput` via:
   207  //
   208  //	UserHierarchyStructureArray{ UserHierarchyStructureArgs{...} }
   209  type UserHierarchyStructureArrayInput interface {
   210  	pulumi.Input
   211  
   212  	ToUserHierarchyStructureArrayOutput() UserHierarchyStructureArrayOutput
   213  	ToUserHierarchyStructureArrayOutputWithContext(context.Context) UserHierarchyStructureArrayOutput
   214  }
   215  
   216  type UserHierarchyStructureArray []UserHierarchyStructureInput
   217  
   218  func (UserHierarchyStructureArray) ElementType() reflect.Type {
   219  	return reflect.TypeOf((*[]*UserHierarchyStructure)(nil)).Elem()
   220  }
   221  
   222  func (i UserHierarchyStructureArray) ToUserHierarchyStructureArrayOutput() UserHierarchyStructureArrayOutput {
   223  	return i.ToUserHierarchyStructureArrayOutputWithContext(context.Background())
   224  }
   225  
   226  func (i UserHierarchyStructureArray) ToUserHierarchyStructureArrayOutputWithContext(ctx context.Context) UserHierarchyStructureArrayOutput {
   227  	return pulumi.ToOutputWithContext(ctx, i).(UserHierarchyStructureArrayOutput)
   228  }
   229  
   230  // UserHierarchyStructureMapInput is an input type that accepts UserHierarchyStructureMap and UserHierarchyStructureMapOutput values.
   231  // You can construct a concrete instance of `UserHierarchyStructureMapInput` via:
   232  //
   233  //	UserHierarchyStructureMap{ "key": UserHierarchyStructureArgs{...} }
   234  type UserHierarchyStructureMapInput interface {
   235  	pulumi.Input
   236  
   237  	ToUserHierarchyStructureMapOutput() UserHierarchyStructureMapOutput
   238  	ToUserHierarchyStructureMapOutputWithContext(context.Context) UserHierarchyStructureMapOutput
   239  }
   240  
   241  type UserHierarchyStructureMap map[string]UserHierarchyStructureInput
   242  
   243  func (UserHierarchyStructureMap) ElementType() reflect.Type {
   244  	return reflect.TypeOf((*map[string]*UserHierarchyStructure)(nil)).Elem()
   245  }
   246  
   247  func (i UserHierarchyStructureMap) ToUserHierarchyStructureMapOutput() UserHierarchyStructureMapOutput {
   248  	return i.ToUserHierarchyStructureMapOutputWithContext(context.Background())
   249  }
   250  
   251  func (i UserHierarchyStructureMap) ToUserHierarchyStructureMapOutputWithContext(ctx context.Context) UserHierarchyStructureMapOutput {
   252  	return pulumi.ToOutputWithContext(ctx, i).(UserHierarchyStructureMapOutput)
   253  }
   254  
   255  type UserHierarchyStructureOutput struct{ *pulumi.OutputState }
   256  
   257  func (UserHierarchyStructureOutput) ElementType() reflect.Type {
   258  	return reflect.TypeOf((**UserHierarchyStructure)(nil)).Elem()
   259  }
   260  
   261  func (o UserHierarchyStructureOutput) ToUserHierarchyStructureOutput() UserHierarchyStructureOutput {
   262  	return o
   263  }
   264  
   265  func (o UserHierarchyStructureOutput) ToUserHierarchyStructureOutputWithContext(ctx context.Context) UserHierarchyStructureOutput {
   266  	return o
   267  }
   268  
   269  // A block that defines the hierarchy structure's levels. The `hierarchyStructure` block is documented below.
   270  func (o UserHierarchyStructureOutput) HierarchyStructure() UserHierarchyStructureHierarchyStructureOutput {
   271  	return o.ApplyT(func(v *UserHierarchyStructure) UserHierarchyStructureHierarchyStructureOutput {
   272  		return v.HierarchyStructure
   273  	}).(UserHierarchyStructureHierarchyStructureOutput)
   274  }
   275  
   276  // Specifies the identifier of the hosting Amazon Connect Instance.
   277  func (o UserHierarchyStructureOutput) InstanceId() pulumi.StringOutput {
   278  	return o.ApplyT(func(v *UserHierarchyStructure) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput)
   279  }
   280  
   281  type UserHierarchyStructureArrayOutput struct{ *pulumi.OutputState }
   282  
   283  func (UserHierarchyStructureArrayOutput) ElementType() reflect.Type {
   284  	return reflect.TypeOf((*[]*UserHierarchyStructure)(nil)).Elem()
   285  }
   286  
   287  func (o UserHierarchyStructureArrayOutput) ToUserHierarchyStructureArrayOutput() UserHierarchyStructureArrayOutput {
   288  	return o
   289  }
   290  
   291  func (o UserHierarchyStructureArrayOutput) ToUserHierarchyStructureArrayOutputWithContext(ctx context.Context) UserHierarchyStructureArrayOutput {
   292  	return o
   293  }
   294  
   295  func (o UserHierarchyStructureArrayOutput) Index(i pulumi.IntInput) UserHierarchyStructureOutput {
   296  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserHierarchyStructure {
   297  		return vs[0].([]*UserHierarchyStructure)[vs[1].(int)]
   298  	}).(UserHierarchyStructureOutput)
   299  }
   300  
   301  type UserHierarchyStructureMapOutput struct{ *pulumi.OutputState }
   302  
   303  func (UserHierarchyStructureMapOutput) ElementType() reflect.Type {
   304  	return reflect.TypeOf((*map[string]*UserHierarchyStructure)(nil)).Elem()
   305  }
   306  
   307  func (o UserHierarchyStructureMapOutput) ToUserHierarchyStructureMapOutput() UserHierarchyStructureMapOutput {
   308  	return o
   309  }
   310  
   311  func (o UserHierarchyStructureMapOutput) ToUserHierarchyStructureMapOutputWithContext(ctx context.Context) UserHierarchyStructureMapOutput {
   312  	return o
   313  }
   314  
   315  func (o UserHierarchyStructureMapOutput) MapIndex(k pulumi.StringInput) UserHierarchyStructureOutput {
   316  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserHierarchyStructure {
   317  		return vs[0].(map[string]*UserHierarchyStructure)[vs[1].(string)]
   318  	}).(UserHierarchyStructureOutput)
   319  }
   320  
   321  func init() {
   322  	pulumi.RegisterInputType(reflect.TypeOf((*UserHierarchyStructureInput)(nil)).Elem(), &UserHierarchyStructure{})
   323  	pulumi.RegisterInputType(reflect.TypeOf((*UserHierarchyStructureArrayInput)(nil)).Elem(), UserHierarchyStructureArray{})
   324  	pulumi.RegisterInputType(reflect.TypeOf((*UserHierarchyStructureMapInput)(nil)).Elem(), UserHierarchyStructureMap{})
   325  	pulumi.RegisterOutputType(UserHierarchyStructureOutput{})
   326  	pulumi.RegisterOutputType(UserHierarchyStructureArrayOutput{})
   327  	pulumi.RegisterOutputType(UserHierarchyStructureMapOutput{})
   328  }