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 }