github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/devopsguru/resourceCollection.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 devopsguru 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 // Resource for managing an AWS DevOps Guru Resource Collection. 16 // 17 // > Only one type of resource collection (All Account Resources, CloudFormation, or Tags) can be enabled in an account at a time. To avoid persistent differences, this resource should be defined only once. 18 // 19 // ## Example Usage 20 // 21 // ### All Account Resources 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // _, err := devopsguru.NewResourceCollection(ctx, "example", &devopsguru.ResourceCollectionArgs{ 37 // Type: pulumi.String("AWS_SERVICE"), 38 // Cloudformation: &devopsguru.ResourceCollectionCloudformationArgs{ 39 // StackNames: pulumi.StringArray{ 40 // pulumi.String("*"), 41 // }, 42 // }, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // return nil 48 // }) 49 // } 50 // 51 // ``` 52 // <!--End PulumiCodeChooser --> 53 // 54 // ### CloudFormation Stacks 55 // 56 // <!--Start PulumiCodeChooser --> 57 // ```go 58 // package main 59 // 60 // import ( 61 // 62 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" 63 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 64 // 65 // ) 66 // 67 // func main() { 68 // pulumi.Run(func(ctx *pulumi.Context) error { 69 // _, err := devopsguru.NewResourceCollection(ctx, "example", &devopsguru.ResourceCollectionArgs{ 70 // Type: pulumi.String("AWS_CLOUD_FORMATION"), 71 // Cloudformation: &devopsguru.ResourceCollectionCloudformationArgs{ 72 // StackNames: pulumi.StringArray{ 73 // pulumi.String("ExampleStack"), 74 // }, 75 // }, 76 // }) 77 // if err != nil { 78 // return err 79 // } 80 // return nil 81 // }) 82 // } 83 // 84 // ``` 85 // <!--End PulumiCodeChooser --> 86 // 87 // ### Tags 88 // 89 // <!--Start PulumiCodeChooser --> 90 // ```go 91 // package main 92 // 93 // import ( 94 // 95 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" 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 := devopsguru.NewResourceCollection(ctx, "example", &devopsguru.ResourceCollectionArgs{ 103 // Type: pulumi.String("AWS_TAGS"), 104 // Tags: &devopsguru.ResourceCollectionTagsArgs{ 105 // AppBoundaryKey: pulumi.String("DevOps-Guru-Example"), 106 // TagValues: pulumi.StringArray{ 107 // pulumi.String("Example-Value"), 108 // }, 109 // }, 110 // }) 111 // if err != nil { 112 // return err 113 // } 114 // return nil 115 // }) 116 // } 117 // 118 // ``` 119 // <!--End PulumiCodeChooser --> 120 // 121 // ### Tags All Resources 122 // 123 // To analyze all resources with the `appBoundaryKey` regardless of the corresponding tag value, set `tagValues` to `["*"]`. 124 // 125 // <!--Start PulumiCodeChooser --> 126 // ```go 127 // package main 128 // 129 // import ( 130 // 131 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" 132 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 133 // 134 // ) 135 // 136 // func main() { 137 // pulumi.Run(func(ctx *pulumi.Context) error { 138 // _, err := devopsguru.NewResourceCollection(ctx, "example", &devopsguru.ResourceCollectionArgs{ 139 // Type: pulumi.String("AWS_TAGS"), 140 // Tags: &devopsguru.ResourceCollectionTagsArgs{ 141 // AppBoundaryKey: pulumi.String("DevOps-Guru-Example"), 142 // TagValues: pulumi.StringArray{ 143 // pulumi.String("*"), 144 // }, 145 // }, 146 // }) 147 // if err != nil { 148 // return err 149 // } 150 // return nil 151 // }) 152 // } 153 // 154 // ``` 155 // <!--End PulumiCodeChooser --> 156 // 157 // ## Import 158 // 159 // Using `pulumi import`, import DevOps Guru Resource Collection using the `id`. For example: 160 // 161 // ```sh 162 // $ pulumi import aws:devopsguru/resourceCollection:ResourceCollection example AWS_CLOUD_FORMATION 163 // ``` 164 type ResourceCollection struct { 165 pulumi.CustomResourceState 166 167 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 168 Cloudformation ResourceCollectionCloudformationPtrOutput `pulumi:"cloudformation"` 169 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 170 Tags ResourceCollectionTagsPtrOutput `pulumi:"tags"` 171 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 172 // 173 // The following arguments are optional: 174 Type pulumi.StringOutput `pulumi:"type"` 175 } 176 177 // NewResourceCollection registers a new resource with the given unique name, arguments, and options. 178 func NewResourceCollection(ctx *pulumi.Context, 179 name string, args *ResourceCollectionArgs, opts ...pulumi.ResourceOption) (*ResourceCollection, error) { 180 if args == nil { 181 return nil, errors.New("missing one or more required arguments") 182 } 183 184 if args.Type == nil { 185 return nil, errors.New("invalid value for required argument 'Type'") 186 } 187 opts = internal.PkgResourceDefaultOpts(opts) 188 var resource ResourceCollection 189 err := ctx.RegisterResource("aws:devopsguru/resourceCollection:ResourceCollection", name, args, &resource, opts...) 190 if err != nil { 191 return nil, err 192 } 193 return &resource, nil 194 } 195 196 // GetResourceCollection gets an existing ResourceCollection resource's state with the given name, ID, and optional 197 // state properties that are used to uniquely qualify the lookup (nil if not required). 198 func GetResourceCollection(ctx *pulumi.Context, 199 name string, id pulumi.IDInput, state *ResourceCollectionState, opts ...pulumi.ResourceOption) (*ResourceCollection, error) { 200 var resource ResourceCollection 201 err := ctx.ReadResource("aws:devopsguru/resourceCollection:ResourceCollection", name, id, state, &resource, opts...) 202 if err != nil { 203 return nil, err 204 } 205 return &resource, nil 206 } 207 208 // Input properties used for looking up and filtering ResourceCollection resources. 209 type resourceCollectionState struct { 210 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 211 Cloudformation *ResourceCollectionCloudformation `pulumi:"cloudformation"` 212 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 213 Tags *ResourceCollectionTags `pulumi:"tags"` 214 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 215 // 216 // The following arguments are optional: 217 Type *string `pulumi:"type"` 218 } 219 220 type ResourceCollectionState struct { 221 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 222 Cloudformation ResourceCollectionCloudformationPtrInput 223 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 224 Tags ResourceCollectionTagsPtrInput 225 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 226 // 227 // The following arguments are optional: 228 Type pulumi.StringPtrInput 229 } 230 231 func (ResourceCollectionState) ElementType() reflect.Type { 232 return reflect.TypeOf((*resourceCollectionState)(nil)).Elem() 233 } 234 235 type resourceCollectionArgs struct { 236 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 237 Cloudformation *ResourceCollectionCloudformation `pulumi:"cloudformation"` 238 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 239 Tags *ResourceCollectionTags `pulumi:"tags"` 240 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 241 // 242 // The following arguments are optional: 243 Type string `pulumi:"type"` 244 } 245 246 // The set of arguments for constructing a ResourceCollection resource. 247 type ResourceCollectionArgs struct { 248 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 249 Cloudformation ResourceCollectionCloudformationPtrInput 250 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 251 Tags ResourceCollectionTagsPtrInput 252 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 253 // 254 // The following arguments are optional: 255 Type pulumi.StringInput 256 } 257 258 func (ResourceCollectionArgs) ElementType() reflect.Type { 259 return reflect.TypeOf((*resourceCollectionArgs)(nil)).Elem() 260 } 261 262 type ResourceCollectionInput interface { 263 pulumi.Input 264 265 ToResourceCollectionOutput() ResourceCollectionOutput 266 ToResourceCollectionOutputWithContext(ctx context.Context) ResourceCollectionOutput 267 } 268 269 func (*ResourceCollection) ElementType() reflect.Type { 270 return reflect.TypeOf((**ResourceCollection)(nil)).Elem() 271 } 272 273 func (i *ResourceCollection) ToResourceCollectionOutput() ResourceCollectionOutput { 274 return i.ToResourceCollectionOutputWithContext(context.Background()) 275 } 276 277 func (i *ResourceCollection) ToResourceCollectionOutputWithContext(ctx context.Context) ResourceCollectionOutput { 278 return pulumi.ToOutputWithContext(ctx, i).(ResourceCollectionOutput) 279 } 280 281 // ResourceCollectionArrayInput is an input type that accepts ResourceCollectionArray and ResourceCollectionArrayOutput values. 282 // You can construct a concrete instance of `ResourceCollectionArrayInput` via: 283 // 284 // ResourceCollectionArray{ ResourceCollectionArgs{...} } 285 type ResourceCollectionArrayInput interface { 286 pulumi.Input 287 288 ToResourceCollectionArrayOutput() ResourceCollectionArrayOutput 289 ToResourceCollectionArrayOutputWithContext(context.Context) ResourceCollectionArrayOutput 290 } 291 292 type ResourceCollectionArray []ResourceCollectionInput 293 294 func (ResourceCollectionArray) ElementType() reflect.Type { 295 return reflect.TypeOf((*[]*ResourceCollection)(nil)).Elem() 296 } 297 298 func (i ResourceCollectionArray) ToResourceCollectionArrayOutput() ResourceCollectionArrayOutput { 299 return i.ToResourceCollectionArrayOutputWithContext(context.Background()) 300 } 301 302 func (i ResourceCollectionArray) ToResourceCollectionArrayOutputWithContext(ctx context.Context) ResourceCollectionArrayOutput { 303 return pulumi.ToOutputWithContext(ctx, i).(ResourceCollectionArrayOutput) 304 } 305 306 // ResourceCollectionMapInput is an input type that accepts ResourceCollectionMap and ResourceCollectionMapOutput values. 307 // You can construct a concrete instance of `ResourceCollectionMapInput` via: 308 // 309 // ResourceCollectionMap{ "key": ResourceCollectionArgs{...} } 310 type ResourceCollectionMapInput interface { 311 pulumi.Input 312 313 ToResourceCollectionMapOutput() ResourceCollectionMapOutput 314 ToResourceCollectionMapOutputWithContext(context.Context) ResourceCollectionMapOutput 315 } 316 317 type ResourceCollectionMap map[string]ResourceCollectionInput 318 319 func (ResourceCollectionMap) ElementType() reflect.Type { 320 return reflect.TypeOf((*map[string]*ResourceCollection)(nil)).Elem() 321 } 322 323 func (i ResourceCollectionMap) ToResourceCollectionMapOutput() ResourceCollectionMapOutput { 324 return i.ToResourceCollectionMapOutputWithContext(context.Background()) 325 } 326 327 func (i ResourceCollectionMap) ToResourceCollectionMapOutputWithContext(ctx context.Context) ResourceCollectionMapOutput { 328 return pulumi.ToOutputWithContext(ctx, i).(ResourceCollectionMapOutput) 329 } 330 331 type ResourceCollectionOutput struct{ *pulumi.OutputState } 332 333 func (ResourceCollectionOutput) ElementType() reflect.Type { 334 return reflect.TypeOf((**ResourceCollection)(nil)).Elem() 335 } 336 337 func (o ResourceCollectionOutput) ToResourceCollectionOutput() ResourceCollectionOutput { 338 return o 339 } 340 341 func (o ResourceCollectionOutput) ToResourceCollectionOutputWithContext(ctx context.Context) ResourceCollectionOutput { 342 return o 343 } 344 345 // A collection of AWS CloudFormation stacks. See `cloudformation` below for additional details. 346 func (o ResourceCollectionOutput) Cloudformation() ResourceCollectionCloudformationPtrOutput { 347 return o.ApplyT(func(v *ResourceCollection) ResourceCollectionCloudformationPtrOutput { return v.Cloudformation }).(ResourceCollectionCloudformationPtrOutput) 348 } 349 350 // AWS tags used to filter the resources in the resource collection. See `tags` below for additional details. 351 func (o ResourceCollectionOutput) Tags() ResourceCollectionTagsPtrOutput { 352 return o.ApplyT(func(v *ResourceCollection) ResourceCollectionTagsPtrOutput { return v.Tags }).(ResourceCollectionTagsPtrOutput) 353 } 354 355 // Type of AWS resource collection to create. Valid values are `AWS_CLOUD_FORMATION`, `AWS_SERVICE`, and `AWS_TAGS`. 356 // 357 // The following arguments are optional: 358 func (o ResourceCollectionOutput) Type() pulumi.StringOutput { 359 return o.ApplyT(func(v *ResourceCollection) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 360 } 361 362 type ResourceCollectionArrayOutput struct{ *pulumi.OutputState } 363 364 func (ResourceCollectionArrayOutput) ElementType() reflect.Type { 365 return reflect.TypeOf((*[]*ResourceCollection)(nil)).Elem() 366 } 367 368 func (o ResourceCollectionArrayOutput) ToResourceCollectionArrayOutput() ResourceCollectionArrayOutput { 369 return o 370 } 371 372 func (o ResourceCollectionArrayOutput) ToResourceCollectionArrayOutputWithContext(ctx context.Context) ResourceCollectionArrayOutput { 373 return o 374 } 375 376 func (o ResourceCollectionArrayOutput) Index(i pulumi.IntInput) ResourceCollectionOutput { 377 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceCollection { 378 return vs[0].([]*ResourceCollection)[vs[1].(int)] 379 }).(ResourceCollectionOutput) 380 } 381 382 type ResourceCollectionMapOutput struct{ *pulumi.OutputState } 383 384 func (ResourceCollectionMapOutput) ElementType() reflect.Type { 385 return reflect.TypeOf((*map[string]*ResourceCollection)(nil)).Elem() 386 } 387 388 func (o ResourceCollectionMapOutput) ToResourceCollectionMapOutput() ResourceCollectionMapOutput { 389 return o 390 } 391 392 func (o ResourceCollectionMapOutput) ToResourceCollectionMapOutputWithContext(ctx context.Context) ResourceCollectionMapOutput { 393 return o 394 } 395 396 func (o ResourceCollectionMapOutput) MapIndex(k pulumi.StringInput) ResourceCollectionOutput { 397 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceCollection { 398 return vs[0].(map[string]*ResourceCollection)[vs[1].(string)] 399 }).(ResourceCollectionOutput) 400 } 401 402 func init() { 403 pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionInput)(nil)).Elem(), &ResourceCollection{}) 404 pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionArrayInput)(nil)).Elem(), ResourceCollectionArray{}) 405 pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionMapInput)(nil)).Elem(), ResourceCollectionMap{}) 406 pulumi.RegisterOutputType(ResourceCollectionOutput{}) 407 pulumi.RegisterOutputType(ResourceCollectionArrayOutput{}) 408 pulumi.RegisterOutputType(ResourceCollectionMapOutput{}) 409 }