github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/backup/selection.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 backup 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 selection conditions for AWS Backup plan resources. 16 // 17 // ## Example Usage 18 // 19 // ### IAM Role 20 // 21 // > For more information about creating and managing IAM Roles for backups and restores, see the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/iam-service-roles.html). 22 // 23 // The below example creates an IAM role with the default managed IAM Policy for allowing AWS Backup to create backups. 24 // 25 // <!--Start PulumiCodeChooser --> 26 // ```go 27 // package main 28 // 29 // import ( 30 // 31 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 32 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 33 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 34 // 35 // ) 36 // 37 // func main() { 38 // pulumi.Run(func(ctx *pulumi.Context) error { 39 // assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 40 // Statements: []iam.GetPolicyDocumentStatement{ 41 // { 42 // Effect: pulumi.StringRef("Allow"), 43 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 44 // { 45 // Type: "Service", 46 // Identifiers: []string{ 47 // "backup.amazonaws.com", 48 // }, 49 // }, 50 // }, 51 // Actions: []string{ 52 // "sts:AssumeRole", 53 // }, 54 // }, 55 // }, 56 // }, nil) 57 // if err != nil { 58 // return err 59 // } 60 // example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ 61 // Name: pulumi.String("example"), 62 // AssumeRolePolicy: pulumi.String(assumeRole.Json), 63 // }) 64 // if err != nil { 65 // return err 66 // } 67 // _, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{ 68 // PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup"), 69 // Role: example.Name, 70 // }) 71 // if err != nil { 72 // return err 73 // } 74 // _, err = backup.NewSelection(ctx, "example", &backup.SelectionArgs{ 75 // IamRoleArn: example.Arn, 76 // }) 77 // if err != nil { 78 // return err 79 // } 80 // return nil 81 // }) 82 // } 83 // 84 // ``` 85 // <!--End PulumiCodeChooser --> 86 // 87 // ### Selecting Backups By Tag 88 // 89 // <!--Start PulumiCodeChooser --> 90 // ```go 91 // package main 92 // 93 // import ( 94 // 95 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 96 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 97 // 98 // ) 99 // 100 // func main() { 101 // pulumi.Run(func(ctx *pulumi.Context) error { 102 // _, err := backup.NewSelection(ctx, "example", &backup.SelectionArgs{ 103 // IamRoleArn: pulumi.Any(exampleAwsIamRole.Arn), 104 // Name: pulumi.String("my_example_backup_selection"), 105 // PlanId: pulumi.Any(exampleAwsBackupPlan.Id), 106 // SelectionTags: backup.SelectionSelectionTagArray{ 107 // &backup.SelectionSelectionTagArgs{ 108 // Type: pulumi.String("STRINGEQUALS"), 109 // Key: pulumi.String("foo"), 110 // Value: pulumi.String("bar"), 111 // }, 112 // }, 113 // }) 114 // if err != nil { 115 // return err 116 // } 117 // return nil 118 // }) 119 // } 120 // 121 // ``` 122 // <!--End PulumiCodeChooser --> 123 // 124 // ### Selecting Backups By Conditions 125 // 126 // <!--Start PulumiCodeChooser --> 127 // ```go 128 // package main 129 // 130 // import ( 131 // 132 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 133 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 134 // 135 // ) 136 // 137 // func main() { 138 // pulumi.Run(func(ctx *pulumi.Context) error { 139 // _, err := backup.NewSelection(ctx, "example", &backup.SelectionArgs{ 140 // IamRoleArn: pulumi.Any(exampleAwsIamRole.Arn), 141 // Name: pulumi.String("my_example_backup_selection"), 142 // PlanId: pulumi.Any(exampleAwsBackupPlan.Id), 143 // Resources: pulumi.StringArray{ 144 // pulumi.String("*"), 145 // }, 146 // Conditions: backup.SelectionConditionArray{ 147 // &backup.SelectionConditionArgs{ 148 // StringEquals: backup.SelectionConditionStringEqualArray{ 149 // &backup.SelectionConditionStringEqualArgs{ 150 // Key: pulumi.String("aws:ResourceTag/Component"), 151 // Value: pulumi.String("rds"), 152 // }, 153 // }, 154 // StringLikes: backup.SelectionConditionStringLikeArray{ 155 // &backup.SelectionConditionStringLikeArgs{ 156 // Key: pulumi.String("aws:ResourceTag/Application"), 157 // Value: pulumi.String("app*"), 158 // }, 159 // }, 160 // StringNotEquals: backup.SelectionConditionStringNotEqualArray{ 161 // &backup.SelectionConditionStringNotEqualArgs{ 162 // Key: pulumi.String("aws:ResourceTag/Backup"), 163 // Value: pulumi.String("false"), 164 // }, 165 // }, 166 // StringNotLikes: backup.SelectionConditionStringNotLikeArray{ 167 // &backup.SelectionConditionStringNotLikeArgs{ 168 // Key: pulumi.String("aws:ResourceTag/Environment"), 169 // Value: pulumi.String("test*"), 170 // }, 171 // }, 172 // }, 173 // }, 174 // }) 175 // if err != nil { 176 // return err 177 // } 178 // return nil 179 // }) 180 // } 181 // 182 // ``` 183 // <!--End PulumiCodeChooser --> 184 // 185 // ### Selecting Backups By Resource 186 // 187 // <!--Start PulumiCodeChooser --> 188 // ```go 189 // package main 190 // 191 // import ( 192 // 193 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 194 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 195 // 196 // ) 197 // 198 // func main() { 199 // pulumi.Run(func(ctx *pulumi.Context) error { 200 // _, err := backup.NewSelection(ctx, "example", &backup.SelectionArgs{ 201 // IamRoleArn: pulumi.Any(exampleAwsIamRole.Arn), 202 // Name: pulumi.String("my_example_backup_selection"), 203 // PlanId: pulumi.Any(exampleAwsBackupPlan.Id), 204 // Resources: pulumi.StringArray{ 205 // exampleAwsDbInstance.Arn, 206 // exampleAwsEbsVolume.Arn, 207 // exampleAwsEfsFileSystem.Arn, 208 // }, 209 // }) 210 // if err != nil { 211 // return err 212 // } 213 // return nil 214 // }) 215 // } 216 // 217 // ``` 218 // <!--End PulumiCodeChooser --> 219 // 220 // ### Selecting Backups By Not Resource 221 // 222 // <!--Start PulumiCodeChooser --> 223 // ```go 224 // package main 225 // 226 // import ( 227 // 228 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 229 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 230 // 231 // ) 232 // 233 // func main() { 234 // pulumi.Run(func(ctx *pulumi.Context) error { 235 // _, err := backup.NewSelection(ctx, "example", &backup.SelectionArgs{ 236 // IamRoleArn: pulumi.Any(exampleAwsIamRole.Arn), 237 // Name: pulumi.String("my_example_backup_selection"), 238 // PlanId: pulumi.Any(exampleAwsBackupPlan.Id), 239 // NotResources: pulumi.StringArray{ 240 // exampleAwsDbInstance.Arn, 241 // exampleAwsEbsVolume.Arn, 242 // exampleAwsEfsFileSystem.Arn, 243 // }, 244 // }) 245 // if err != nil { 246 // return err 247 // } 248 // return nil 249 // }) 250 // } 251 // 252 // ``` 253 // <!--End PulumiCodeChooser --> 254 // 255 // ## Import 256 // 257 // Using `pulumi import`, import Backup selection using the role plan_id and id separated by `|`. For example: 258 // 259 // ```sh 260 // $ pulumi import aws:backup/selection:Selection example plan-id|selection-id 261 // ``` 262 type Selection struct { 263 pulumi.CustomResourceState 264 265 // A list of conditions that you define to assign resources to your backup plans using tags. 266 Conditions SelectionConditionArrayOutput `pulumi:"conditions"` 267 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 268 IamRoleArn pulumi.StringOutput `pulumi:"iamRoleArn"` 269 // The display name of a resource selection document. 270 Name pulumi.StringOutput `pulumi:"name"` 271 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 272 NotResources pulumi.StringArrayOutput `pulumi:"notResources"` 273 // The backup plan ID to be associated with the selection of resources. 274 PlanId pulumi.StringOutput `pulumi:"planId"` 275 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 276 Resources pulumi.StringArrayOutput `pulumi:"resources"` 277 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 278 SelectionTags SelectionSelectionTagArrayOutput `pulumi:"selectionTags"` 279 } 280 281 // NewSelection registers a new resource with the given unique name, arguments, and options. 282 func NewSelection(ctx *pulumi.Context, 283 name string, args *SelectionArgs, opts ...pulumi.ResourceOption) (*Selection, error) { 284 if args == nil { 285 return nil, errors.New("missing one or more required arguments") 286 } 287 288 if args.IamRoleArn == nil { 289 return nil, errors.New("invalid value for required argument 'IamRoleArn'") 290 } 291 if args.PlanId == nil { 292 return nil, errors.New("invalid value for required argument 'PlanId'") 293 } 294 opts = internal.PkgResourceDefaultOpts(opts) 295 var resource Selection 296 err := ctx.RegisterResource("aws:backup/selection:Selection", name, args, &resource, opts...) 297 if err != nil { 298 return nil, err 299 } 300 return &resource, nil 301 } 302 303 // GetSelection gets an existing Selection 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 GetSelection(ctx *pulumi.Context, 306 name string, id pulumi.IDInput, state *SelectionState, opts ...pulumi.ResourceOption) (*Selection, error) { 307 var resource Selection 308 err := ctx.ReadResource("aws:backup/selection:Selection", 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 Selection resources. 316 type selectionState struct { 317 // A list of conditions that you define to assign resources to your backup plans using tags. 318 Conditions []SelectionCondition `pulumi:"conditions"` 319 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 320 IamRoleArn *string `pulumi:"iamRoleArn"` 321 // The display name of a resource selection document. 322 Name *string `pulumi:"name"` 323 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 324 NotResources []string `pulumi:"notResources"` 325 // The backup plan ID to be associated with the selection of resources. 326 PlanId *string `pulumi:"planId"` 327 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 328 Resources []string `pulumi:"resources"` 329 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 330 SelectionTags []SelectionSelectionTag `pulumi:"selectionTags"` 331 } 332 333 type SelectionState struct { 334 // A list of conditions that you define to assign resources to your backup plans using tags. 335 Conditions SelectionConditionArrayInput 336 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 337 IamRoleArn pulumi.StringPtrInput 338 // The display name of a resource selection document. 339 Name pulumi.StringPtrInput 340 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 341 NotResources pulumi.StringArrayInput 342 // The backup plan ID to be associated with the selection of resources. 343 PlanId pulumi.StringPtrInput 344 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 345 Resources pulumi.StringArrayInput 346 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 347 SelectionTags SelectionSelectionTagArrayInput 348 } 349 350 func (SelectionState) ElementType() reflect.Type { 351 return reflect.TypeOf((*selectionState)(nil)).Elem() 352 } 353 354 type selectionArgs struct { 355 // A list of conditions that you define to assign resources to your backup plans using tags. 356 Conditions []SelectionCondition `pulumi:"conditions"` 357 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 358 IamRoleArn string `pulumi:"iamRoleArn"` 359 // The display name of a resource selection document. 360 Name *string `pulumi:"name"` 361 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 362 NotResources []string `pulumi:"notResources"` 363 // The backup plan ID to be associated with the selection of resources. 364 PlanId string `pulumi:"planId"` 365 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 366 Resources []string `pulumi:"resources"` 367 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 368 SelectionTags []SelectionSelectionTag `pulumi:"selectionTags"` 369 } 370 371 // The set of arguments for constructing a Selection resource. 372 type SelectionArgs struct { 373 // A list of conditions that you define to assign resources to your backup plans using tags. 374 Conditions SelectionConditionArrayInput 375 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 376 IamRoleArn pulumi.StringInput 377 // The display name of a resource selection document. 378 Name pulumi.StringPtrInput 379 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 380 NotResources pulumi.StringArrayInput 381 // The backup plan ID to be associated with the selection of resources. 382 PlanId pulumi.StringInput 383 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 384 Resources pulumi.StringArrayInput 385 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 386 SelectionTags SelectionSelectionTagArrayInput 387 } 388 389 func (SelectionArgs) ElementType() reflect.Type { 390 return reflect.TypeOf((*selectionArgs)(nil)).Elem() 391 } 392 393 type SelectionInput interface { 394 pulumi.Input 395 396 ToSelectionOutput() SelectionOutput 397 ToSelectionOutputWithContext(ctx context.Context) SelectionOutput 398 } 399 400 func (*Selection) ElementType() reflect.Type { 401 return reflect.TypeOf((**Selection)(nil)).Elem() 402 } 403 404 func (i *Selection) ToSelectionOutput() SelectionOutput { 405 return i.ToSelectionOutputWithContext(context.Background()) 406 } 407 408 func (i *Selection) ToSelectionOutputWithContext(ctx context.Context) SelectionOutput { 409 return pulumi.ToOutputWithContext(ctx, i).(SelectionOutput) 410 } 411 412 // SelectionArrayInput is an input type that accepts SelectionArray and SelectionArrayOutput values. 413 // You can construct a concrete instance of `SelectionArrayInput` via: 414 // 415 // SelectionArray{ SelectionArgs{...} } 416 type SelectionArrayInput interface { 417 pulumi.Input 418 419 ToSelectionArrayOutput() SelectionArrayOutput 420 ToSelectionArrayOutputWithContext(context.Context) SelectionArrayOutput 421 } 422 423 type SelectionArray []SelectionInput 424 425 func (SelectionArray) ElementType() reflect.Type { 426 return reflect.TypeOf((*[]*Selection)(nil)).Elem() 427 } 428 429 func (i SelectionArray) ToSelectionArrayOutput() SelectionArrayOutput { 430 return i.ToSelectionArrayOutputWithContext(context.Background()) 431 } 432 433 func (i SelectionArray) ToSelectionArrayOutputWithContext(ctx context.Context) SelectionArrayOutput { 434 return pulumi.ToOutputWithContext(ctx, i).(SelectionArrayOutput) 435 } 436 437 // SelectionMapInput is an input type that accepts SelectionMap and SelectionMapOutput values. 438 // You can construct a concrete instance of `SelectionMapInput` via: 439 // 440 // SelectionMap{ "key": SelectionArgs{...} } 441 type SelectionMapInput interface { 442 pulumi.Input 443 444 ToSelectionMapOutput() SelectionMapOutput 445 ToSelectionMapOutputWithContext(context.Context) SelectionMapOutput 446 } 447 448 type SelectionMap map[string]SelectionInput 449 450 func (SelectionMap) ElementType() reflect.Type { 451 return reflect.TypeOf((*map[string]*Selection)(nil)).Elem() 452 } 453 454 func (i SelectionMap) ToSelectionMapOutput() SelectionMapOutput { 455 return i.ToSelectionMapOutputWithContext(context.Background()) 456 } 457 458 func (i SelectionMap) ToSelectionMapOutputWithContext(ctx context.Context) SelectionMapOutput { 459 return pulumi.ToOutputWithContext(ctx, i).(SelectionMapOutput) 460 } 461 462 type SelectionOutput struct{ *pulumi.OutputState } 463 464 func (SelectionOutput) ElementType() reflect.Type { 465 return reflect.TypeOf((**Selection)(nil)).Elem() 466 } 467 468 func (o SelectionOutput) ToSelectionOutput() SelectionOutput { 469 return o 470 } 471 472 func (o SelectionOutput) ToSelectionOutputWithContext(ctx context.Context) SelectionOutput { 473 return o 474 } 475 476 // A list of conditions that you define to assign resources to your backup plans using tags. 477 func (o SelectionOutput) Conditions() SelectionConditionArrayOutput { 478 return o.ApplyT(func(v *Selection) SelectionConditionArrayOutput { return v.Conditions }).(SelectionConditionArrayOutput) 479 } 480 481 // The ARN of the IAM role that AWS Backup uses to authenticate when restoring and backing up the target resource. See the [AWS Backup Developer Guide](https://docs.aws.amazon.com/aws-backup/latest/devguide/access-control.html#managed-policies) for additional information about using AWS managed policies or creating custom policies attached to the IAM role. 482 func (o SelectionOutput) IamRoleArn() pulumi.StringOutput { 483 return o.ApplyT(func(v *Selection) pulumi.StringOutput { return v.IamRoleArn }).(pulumi.StringOutput) 484 } 485 486 // The display name of a resource selection document. 487 func (o SelectionOutput) Name() pulumi.StringOutput { 488 return o.ApplyT(func(v *Selection) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 489 } 490 491 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to exclude from a backup plan. 492 func (o SelectionOutput) NotResources() pulumi.StringArrayOutput { 493 return o.ApplyT(func(v *Selection) pulumi.StringArrayOutput { return v.NotResources }).(pulumi.StringArrayOutput) 494 } 495 496 // The backup plan ID to be associated with the selection of resources. 497 func (o SelectionOutput) PlanId() pulumi.StringOutput { 498 return o.ApplyT(func(v *Selection) pulumi.StringOutput { return v.PlanId }).(pulumi.StringOutput) 499 } 500 501 // An array of strings that either contain Amazon Resource Names (ARNs) or match patterns of resources to assign to a backup plan. 502 func (o SelectionOutput) Resources() pulumi.StringArrayOutput { 503 return o.ApplyT(func(v *Selection) pulumi.StringArrayOutput { return v.Resources }).(pulumi.StringArrayOutput) 504 } 505 506 // Tag-based conditions used to specify a set of resources to assign to a backup plan. 507 func (o SelectionOutput) SelectionTags() SelectionSelectionTagArrayOutput { 508 return o.ApplyT(func(v *Selection) SelectionSelectionTagArrayOutput { return v.SelectionTags }).(SelectionSelectionTagArrayOutput) 509 } 510 511 type SelectionArrayOutput struct{ *pulumi.OutputState } 512 513 func (SelectionArrayOutput) ElementType() reflect.Type { 514 return reflect.TypeOf((*[]*Selection)(nil)).Elem() 515 } 516 517 func (o SelectionArrayOutput) ToSelectionArrayOutput() SelectionArrayOutput { 518 return o 519 } 520 521 func (o SelectionArrayOutput) ToSelectionArrayOutputWithContext(ctx context.Context) SelectionArrayOutput { 522 return o 523 } 524 525 func (o SelectionArrayOutput) Index(i pulumi.IntInput) SelectionOutput { 526 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Selection { 527 return vs[0].([]*Selection)[vs[1].(int)] 528 }).(SelectionOutput) 529 } 530 531 type SelectionMapOutput struct{ *pulumi.OutputState } 532 533 func (SelectionMapOutput) ElementType() reflect.Type { 534 return reflect.TypeOf((*map[string]*Selection)(nil)).Elem() 535 } 536 537 func (o SelectionMapOutput) ToSelectionMapOutput() SelectionMapOutput { 538 return o 539 } 540 541 func (o SelectionMapOutput) ToSelectionMapOutputWithContext(ctx context.Context) SelectionMapOutput { 542 return o 543 } 544 545 func (o SelectionMapOutput) MapIndex(k pulumi.StringInput) SelectionOutput { 546 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Selection { 547 return vs[0].(map[string]*Selection)[vs[1].(string)] 548 }).(SelectionOutput) 549 } 550 551 func init() { 552 pulumi.RegisterInputType(reflect.TypeOf((*SelectionInput)(nil)).Elem(), &Selection{}) 553 pulumi.RegisterInputType(reflect.TypeOf((*SelectionArrayInput)(nil)).Elem(), SelectionArray{}) 554 pulumi.RegisterInputType(reflect.TypeOf((*SelectionMapInput)(nil)).Elem(), SelectionMap{}) 555 pulumi.RegisterOutputType(SelectionOutput{}) 556 pulumi.RegisterOutputType(SelectionArrayOutput{}) 557 pulumi.RegisterOutputType(SelectionMapOutput{}) 558 }