github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/iot/provisioningTemplate.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 iot 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 // Manages an IoT fleet provisioning template. For more info, see the AWS documentation on [fleet provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html). 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "encoding/json" 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iot" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // iotAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 36 // Statements: []iam.GetPolicyDocumentStatement{ 37 // { 38 // Actions: []string{ 39 // "sts:AssumeRole", 40 // }, 41 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 42 // { 43 // Type: "Service", 44 // Identifiers: []string{ 45 // "iot.amazonaws.com", 46 // }, 47 // }, 48 // }, 49 // }, 50 // }, 51 // }, nil) 52 // if err != nil { 53 // return err 54 // } 55 // iotFleetProvisioning, err := iam.NewRole(ctx, "iot_fleet_provisioning", &iam.RoleArgs{ 56 // Name: pulumi.String("IoTProvisioningServiceRole"), 57 // Path: pulumi.String("/service-role/"), 58 // AssumeRolePolicy: pulumi.String(iotAssumeRolePolicy.Json), 59 // }) 60 // if err != nil { 61 // return err 62 // } 63 // _, err = iam.NewRolePolicyAttachment(ctx, "iot_fleet_provisioning_registration", &iam.RolePolicyAttachmentArgs{ 64 // Role: iotFleetProvisioning.Name, 65 // PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration"), 66 // }) 67 // if err != nil { 68 // return err 69 // } 70 // devicePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 71 // Statements: []iam.GetPolicyDocumentStatement{ 72 // { 73 // Actions: []string{ 74 // "iot:Subscribe", 75 // }, 76 // Resources: []string{ 77 // "*", 78 // }, 79 // }, 80 // }, 81 // }, nil) 82 // if err != nil { 83 // return err 84 // } 85 // devicePolicyPolicy, err := iot.NewPolicy(ctx, "device_policy", &iot.PolicyArgs{ 86 // Name: pulumi.String("DevicePolicy"), 87 // Policy: pulumi.String(devicePolicy.Json), 88 // }) 89 // if err != nil { 90 // return err 91 // } 92 // _, err = iot.NewProvisioningTemplate(ctx, "fleet", &iot.ProvisioningTemplateArgs{ 93 // Name: pulumi.String("FleetTemplate"), 94 // Description: pulumi.String("My provisioning template"), 95 // ProvisioningRoleArn: iotFleetProvisioning.Arn, 96 // Enabled: pulumi.Bool(true), 97 // TemplateBody: devicePolicyPolicy.Name.ApplyT(func(name string) (pulumi.String, error) { 98 // var _zero pulumi.String 99 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 100 // "Parameters": map[string]interface{}{ 101 // "SerialNumber": map[string]interface{}{ 102 // "Type": "String", 103 // }, 104 // }, 105 // "Resources": map[string]interface{}{ 106 // "certificate": map[string]interface{}{ 107 // "Properties": map[string]interface{}{ 108 // "CertificateId": map[string]interface{}{ 109 // "Ref": "AWS::IoT::Certificate::Id", 110 // }, 111 // "Status": "Active", 112 // }, 113 // "Type": "AWS::IoT::Certificate", 114 // }, 115 // "policy": map[string]interface{}{ 116 // "Properties": map[string]interface{}{ 117 // "PolicyName": name, 118 // }, 119 // "Type": "AWS::IoT::Policy", 120 // }, 121 // }, 122 // }) 123 // if err != nil { 124 // return _zero, err 125 // } 126 // json0 := string(tmpJSON0) 127 // return pulumi.String(json0), nil 128 // }).(pulumi.StringOutput), 129 // }) 130 // if err != nil { 131 // return err 132 // } 133 // return nil 134 // }) 135 // } 136 // 137 // ``` 138 // <!--End PulumiCodeChooser --> 139 // 140 // ## Import 141 // 142 // Using `pulumi import`, import IoT fleet provisioning templates using the `name`. For example: 143 // 144 // ```sh 145 // $ pulumi import aws:iot/provisioningTemplate:ProvisioningTemplate fleet FleetProvisioningTemplate 146 // ``` 147 type ProvisioningTemplate struct { 148 pulumi.CustomResourceState 149 150 // The ARN that identifies the provisioning template. 151 Arn pulumi.StringOutput `pulumi:"arn"` 152 // The default version of the fleet provisioning template. 153 DefaultVersionId pulumi.IntOutput `pulumi:"defaultVersionId"` 154 // The description of the fleet provisioning template. 155 Description pulumi.StringPtrOutput `pulumi:"description"` 156 // True to enable the fleet provisioning template, otherwise false. 157 Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` 158 // The name of the fleet provisioning template. 159 Name pulumi.StringOutput `pulumi:"name"` 160 // Creates a pre-provisioning hook template. Details below. 161 PreProvisioningHook ProvisioningTemplatePreProvisioningHookPtrOutput `pulumi:"preProvisioningHook"` 162 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 163 ProvisioningRoleArn pulumi.StringOutput `pulumi:"provisioningRoleArn"` 164 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 165 Tags pulumi.StringMapOutput `pulumi:"tags"` 166 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 167 // 168 // Deprecated: Please use `tags` instead. 169 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 170 // The JSON formatted contents of the fleet provisioning template. 171 TemplateBody pulumi.StringOutput `pulumi:"templateBody"` 172 // The type you define in a provisioning template. 173 Type pulumi.StringOutput `pulumi:"type"` 174 } 175 176 // NewProvisioningTemplate registers a new resource with the given unique name, arguments, and options. 177 func NewProvisioningTemplate(ctx *pulumi.Context, 178 name string, args *ProvisioningTemplateArgs, opts ...pulumi.ResourceOption) (*ProvisioningTemplate, error) { 179 if args == nil { 180 return nil, errors.New("missing one or more required arguments") 181 } 182 183 if args.ProvisioningRoleArn == nil { 184 return nil, errors.New("invalid value for required argument 'ProvisioningRoleArn'") 185 } 186 if args.TemplateBody == nil { 187 return nil, errors.New("invalid value for required argument 'TemplateBody'") 188 } 189 opts = internal.PkgResourceDefaultOpts(opts) 190 var resource ProvisioningTemplate 191 err := ctx.RegisterResource("aws:iot/provisioningTemplate:ProvisioningTemplate", name, args, &resource, opts...) 192 if err != nil { 193 return nil, err 194 } 195 return &resource, nil 196 } 197 198 // GetProvisioningTemplate gets an existing ProvisioningTemplate resource's state with the given name, ID, and optional 199 // state properties that are used to uniquely qualify the lookup (nil if not required). 200 func GetProvisioningTemplate(ctx *pulumi.Context, 201 name string, id pulumi.IDInput, state *ProvisioningTemplateState, opts ...pulumi.ResourceOption) (*ProvisioningTemplate, error) { 202 var resource ProvisioningTemplate 203 err := ctx.ReadResource("aws:iot/provisioningTemplate:ProvisioningTemplate", name, id, state, &resource, opts...) 204 if err != nil { 205 return nil, err 206 } 207 return &resource, nil 208 } 209 210 // Input properties used for looking up and filtering ProvisioningTemplate resources. 211 type provisioningTemplateState struct { 212 // The ARN that identifies the provisioning template. 213 Arn *string `pulumi:"arn"` 214 // The default version of the fleet provisioning template. 215 DefaultVersionId *int `pulumi:"defaultVersionId"` 216 // The description of the fleet provisioning template. 217 Description *string `pulumi:"description"` 218 // True to enable the fleet provisioning template, otherwise false. 219 Enabled *bool `pulumi:"enabled"` 220 // The name of the fleet provisioning template. 221 Name *string `pulumi:"name"` 222 // Creates a pre-provisioning hook template. Details below. 223 PreProvisioningHook *ProvisioningTemplatePreProvisioningHook `pulumi:"preProvisioningHook"` 224 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 225 ProvisioningRoleArn *string `pulumi:"provisioningRoleArn"` 226 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 227 Tags map[string]string `pulumi:"tags"` 228 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 229 // 230 // Deprecated: Please use `tags` instead. 231 TagsAll map[string]string `pulumi:"tagsAll"` 232 // The JSON formatted contents of the fleet provisioning template. 233 TemplateBody *string `pulumi:"templateBody"` 234 // The type you define in a provisioning template. 235 Type *string `pulumi:"type"` 236 } 237 238 type ProvisioningTemplateState struct { 239 // The ARN that identifies the provisioning template. 240 Arn pulumi.StringPtrInput 241 // The default version of the fleet provisioning template. 242 DefaultVersionId pulumi.IntPtrInput 243 // The description of the fleet provisioning template. 244 Description pulumi.StringPtrInput 245 // True to enable the fleet provisioning template, otherwise false. 246 Enabled pulumi.BoolPtrInput 247 // The name of the fleet provisioning template. 248 Name pulumi.StringPtrInput 249 // Creates a pre-provisioning hook template. Details below. 250 PreProvisioningHook ProvisioningTemplatePreProvisioningHookPtrInput 251 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 252 ProvisioningRoleArn pulumi.StringPtrInput 253 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 254 Tags pulumi.StringMapInput 255 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 256 // 257 // Deprecated: Please use `tags` instead. 258 TagsAll pulumi.StringMapInput 259 // The JSON formatted contents of the fleet provisioning template. 260 TemplateBody pulumi.StringPtrInput 261 // The type you define in a provisioning template. 262 Type pulumi.StringPtrInput 263 } 264 265 func (ProvisioningTemplateState) ElementType() reflect.Type { 266 return reflect.TypeOf((*provisioningTemplateState)(nil)).Elem() 267 } 268 269 type provisioningTemplateArgs struct { 270 // The description of the fleet provisioning template. 271 Description *string `pulumi:"description"` 272 // True to enable the fleet provisioning template, otherwise false. 273 Enabled *bool `pulumi:"enabled"` 274 // The name of the fleet provisioning template. 275 Name *string `pulumi:"name"` 276 // Creates a pre-provisioning hook template. Details below. 277 PreProvisioningHook *ProvisioningTemplatePreProvisioningHook `pulumi:"preProvisioningHook"` 278 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 279 ProvisioningRoleArn string `pulumi:"provisioningRoleArn"` 280 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 281 Tags map[string]string `pulumi:"tags"` 282 // The JSON formatted contents of the fleet provisioning template. 283 TemplateBody string `pulumi:"templateBody"` 284 // The type you define in a provisioning template. 285 Type *string `pulumi:"type"` 286 } 287 288 // The set of arguments for constructing a ProvisioningTemplate resource. 289 type ProvisioningTemplateArgs struct { 290 // The description of the fleet provisioning template. 291 Description pulumi.StringPtrInput 292 // True to enable the fleet provisioning template, otherwise false. 293 Enabled pulumi.BoolPtrInput 294 // The name of the fleet provisioning template. 295 Name pulumi.StringPtrInput 296 // Creates a pre-provisioning hook template. Details below. 297 PreProvisioningHook ProvisioningTemplatePreProvisioningHookPtrInput 298 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 299 ProvisioningRoleArn pulumi.StringInput 300 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 301 Tags pulumi.StringMapInput 302 // The JSON formatted contents of the fleet provisioning template. 303 TemplateBody pulumi.StringInput 304 // The type you define in a provisioning template. 305 Type pulumi.StringPtrInput 306 } 307 308 func (ProvisioningTemplateArgs) ElementType() reflect.Type { 309 return reflect.TypeOf((*provisioningTemplateArgs)(nil)).Elem() 310 } 311 312 type ProvisioningTemplateInput interface { 313 pulumi.Input 314 315 ToProvisioningTemplateOutput() ProvisioningTemplateOutput 316 ToProvisioningTemplateOutputWithContext(ctx context.Context) ProvisioningTemplateOutput 317 } 318 319 func (*ProvisioningTemplate) ElementType() reflect.Type { 320 return reflect.TypeOf((**ProvisioningTemplate)(nil)).Elem() 321 } 322 323 func (i *ProvisioningTemplate) ToProvisioningTemplateOutput() ProvisioningTemplateOutput { 324 return i.ToProvisioningTemplateOutputWithContext(context.Background()) 325 } 326 327 func (i *ProvisioningTemplate) ToProvisioningTemplateOutputWithContext(ctx context.Context) ProvisioningTemplateOutput { 328 return pulumi.ToOutputWithContext(ctx, i).(ProvisioningTemplateOutput) 329 } 330 331 // ProvisioningTemplateArrayInput is an input type that accepts ProvisioningTemplateArray and ProvisioningTemplateArrayOutput values. 332 // You can construct a concrete instance of `ProvisioningTemplateArrayInput` via: 333 // 334 // ProvisioningTemplateArray{ ProvisioningTemplateArgs{...} } 335 type ProvisioningTemplateArrayInput interface { 336 pulumi.Input 337 338 ToProvisioningTemplateArrayOutput() ProvisioningTemplateArrayOutput 339 ToProvisioningTemplateArrayOutputWithContext(context.Context) ProvisioningTemplateArrayOutput 340 } 341 342 type ProvisioningTemplateArray []ProvisioningTemplateInput 343 344 func (ProvisioningTemplateArray) ElementType() reflect.Type { 345 return reflect.TypeOf((*[]*ProvisioningTemplate)(nil)).Elem() 346 } 347 348 func (i ProvisioningTemplateArray) ToProvisioningTemplateArrayOutput() ProvisioningTemplateArrayOutput { 349 return i.ToProvisioningTemplateArrayOutputWithContext(context.Background()) 350 } 351 352 func (i ProvisioningTemplateArray) ToProvisioningTemplateArrayOutputWithContext(ctx context.Context) ProvisioningTemplateArrayOutput { 353 return pulumi.ToOutputWithContext(ctx, i).(ProvisioningTemplateArrayOutput) 354 } 355 356 // ProvisioningTemplateMapInput is an input type that accepts ProvisioningTemplateMap and ProvisioningTemplateMapOutput values. 357 // You can construct a concrete instance of `ProvisioningTemplateMapInput` via: 358 // 359 // ProvisioningTemplateMap{ "key": ProvisioningTemplateArgs{...} } 360 type ProvisioningTemplateMapInput interface { 361 pulumi.Input 362 363 ToProvisioningTemplateMapOutput() ProvisioningTemplateMapOutput 364 ToProvisioningTemplateMapOutputWithContext(context.Context) ProvisioningTemplateMapOutput 365 } 366 367 type ProvisioningTemplateMap map[string]ProvisioningTemplateInput 368 369 func (ProvisioningTemplateMap) ElementType() reflect.Type { 370 return reflect.TypeOf((*map[string]*ProvisioningTemplate)(nil)).Elem() 371 } 372 373 func (i ProvisioningTemplateMap) ToProvisioningTemplateMapOutput() ProvisioningTemplateMapOutput { 374 return i.ToProvisioningTemplateMapOutputWithContext(context.Background()) 375 } 376 377 func (i ProvisioningTemplateMap) ToProvisioningTemplateMapOutputWithContext(ctx context.Context) ProvisioningTemplateMapOutput { 378 return pulumi.ToOutputWithContext(ctx, i).(ProvisioningTemplateMapOutput) 379 } 380 381 type ProvisioningTemplateOutput struct{ *pulumi.OutputState } 382 383 func (ProvisioningTemplateOutput) ElementType() reflect.Type { 384 return reflect.TypeOf((**ProvisioningTemplate)(nil)).Elem() 385 } 386 387 func (o ProvisioningTemplateOutput) ToProvisioningTemplateOutput() ProvisioningTemplateOutput { 388 return o 389 } 390 391 func (o ProvisioningTemplateOutput) ToProvisioningTemplateOutputWithContext(ctx context.Context) ProvisioningTemplateOutput { 392 return o 393 } 394 395 // The ARN that identifies the provisioning template. 396 func (o ProvisioningTemplateOutput) Arn() pulumi.StringOutput { 397 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 398 } 399 400 // The default version of the fleet provisioning template. 401 func (o ProvisioningTemplateOutput) DefaultVersionId() pulumi.IntOutput { 402 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.IntOutput { return v.DefaultVersionId }).(pulumi.IntOutput) 403 } 404 405 // The description of the fleet provisioning template. 406 func (o ProvisioningTemplateOutput) Description() pulumi.StringPtrOutput { 407 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 408 } 409 410 // True to enable the fleet provisioning template, otherwise false. 411 func (o ProvisioningTemplateOutput) Enabled() pulumi.BoolPtrOutput { 412 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput) 413 } 414 415 // The name of the fleet provisioning template. 416 func (o ProvisioningTemplateOutput) Name() pulumi.StringOutput { 417 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 418 } 419 420 // Creates a pre-provisioning hook template. Details below. 421 func (o ProvisioningTemplateOutput) PreProvisioningHook() ProvisioningTemplatePreProvisioningHookPtrOutput { 422 return o.ApplyT(func(v *ProvisioningTemplate) ProvisioningTemplatePreProvisioningHookPtrOutput { 423 return v.PreProvisioningHook 424 }).(ProvisioningTemplatePreProvisioningHookPtrOutput) 425 } 426 427 // The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device. 428 func (o ProvisioningTemplateOutput) ProvisioningRoleArn() pulumi.StringOutput { 429 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringOutput { return v.ProvisioningRoleArn }).(pulumi.StringOutput) 430 } 431 432 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 433 func (o ProvisioningTemplateOutput) Tags() pulumi.StringMapOutput { 434 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 435 } 436 437 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 438 // 439 // Deprecated: Please use `tags` instead. 440 func (o ProvisioningTemplateOutput) TagsAll() pulumi.StringMapOutput { 441 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 442 } 443 444 // The JSON formatted contents of the fleet provisioning template. 445 func (o ProvisioningTemplateOutput) TemplateBody() pulumi.StringOutput { 446 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringOutput { return v.TemplateBody }).(pulumi.StringOutput) 447 } 448 449 // The type you define in a provisioning template. 450 func (o ProvisioningTemplateOutput) Type() pulumi.StringOutput { 451 return o.ApplyT(func(v *ProvisioningTemplate) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 452 } 453 454 type ProvisioningTemplateArrayOutput struct{ *pulumi.OutputState } 455 456 func (ProvisioningTemplateArrayOutput) ElementType() reflect.Type { 457 return reflect.TypeOf((*[]*ProvisioningTemplate)(nil)).Elem() 458 } 459 460 func (o ProvisioningTemplateArrayOutput) ToProvisioningTemplateArrayOutput() ProvisioningTemplateArrayOutput { 461 return o 462 } 463 464 func (o ProvisioningTemplateArrayOutput) ToProvisioningTemplateArrayOutputWithContext(ctx context.Context) ProvisioningTemplateArrayOutput { 465 return o 466 } 467 468 func (o ProvisioningTemplateArrayOutput) Index(i pulumi.IntInput) ProvisioningTemplateOutput { 469 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ProvisioningTemplate { 470 return vs[0].([]*ProvisioningTemplate)[vs[1].(int)] 471 }).(ProvisioningTemplateOutput) 472 } 473 474 type ProvisioningTemplateMapOutput struct{ *pulumi.OutputState } 475 476 func (ProvisioningTemplateMapOutput) ElementType() reflect.Type { 477 return reflect.TypeOf((*map[string]*ProvisioningTemplate)(nil)).Elem() 478 } 479 480 func (o ProvisioningTemplateMapOutput) ToProvisioningTemplateMapOutput() ProvisioningTemplateMapOutput { 481 return o 482 } 483 484 func (o ProvisioningTemplateMapOutput) ToProvisioningTemplateMapOutputWithContext(ctx context.Context) ProvisioningTemplateMapOutput { 485 return o 486 } 487 488 func (o ProvisioningTemplateMapOutput) MapIndex(k pulumi.StringInput) ProvisioningTemplateOutput { 489 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ProvisioningTemplate { 490 return vs[0].(map[string]*ProvisioningTemplate)[vs[1].(string)] 491 }).(ProvisioningTemplateOutput) 492 } 493 494 func init() { 495 pulumi.RegisterInputType(reflect.TypeOf((*ProvisioningTemplateInput)(nil)).Elem(), &ProvisioningTemplate{}) 496 pulumi.RegisterInputType(reflect.TypeOf((*ProvisioningTemplateArrayInput)(nil)).Elem(), ProvisioningTemplateArray{}) 497 pulumi.RegisterInputType(reflect.TypeOf((*ProvisioningTemplateMapInput)(nil)).Elem(), ProvisioningTemplateMap{}) 498 pulumi.RegisterOutputType(ProvisioningTemplateOutput{}) 499 pulumi.RegisterOutputType(ProvisioningTemplateArrayOutput{}) 500 pulumi.RegisterOutputType(ProvisioningTemplateMapOutput{}) 501 }