github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3/bucketIntelligentTieringConfiguration.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 s3 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 [S3 Intelligent-Tiering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html) configuration resource. 16 // 17 // > This resource cannot be used with S3 directory buckets. 18 // 19 // ## Example Usage 20 // 21 // ### Add intelligent tiering configuration for entire S3 bucket 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{ 37 // Bucket: pulumi.String("example"), 38 // }) 39 // if err != nil { 40 // return err 41 // } 42 // _, err = s3.NewBucketIntelligentTieringConfiguration(ctx, "example-entire-bucket", &s3.BucketIntelligentTieringConfigurationArgs{ 43 // Bucket: example.ID(), 44 // Name: pulumi.String("EntireBucket"), 45 // Tierings: s3.BucketIntelligentTieringConfigurationTieringArray{ 46 // &s3.BucketIntelligentTieringConfigurationTieringArgs{ 47 // AccessTier: pulumi.String("DEEP_ARCHIVE_ACCESS"), 48 // Days: pulumi.Int(180), 49 // }, 50 // &s3.BucketIntelligentTieringConfigurationTieringArgs{ 51 // AccessTier: pulumi.String("ARCHIVE_ACCESS"), 52 // Days: pulumi.Int(125), 53 // }, 54 // }, 55 // }) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 // 66 // ### Add intelligent tiering configuration with S3 object filter 67 // 68 // <!--Start PulumiCodeChooser --> 69 // ```go 70 // package main 71 // 72 // import ( 73 // 74 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" 75 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 76 // 77 // ) 78 // 79 // func main() { 80 // pulumi.Run(func(ctx *pulumi.Context) error { 81 // example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{ 82 // Bucket: pulumi.String("example"), 83 // }) 84 // if err != nil { 85 // return err 86 // } 87 // _, err = s3.NewBucketIntelligentTieringConfiguration(ctx, "example-filtered", &s3.BucketIntelligentTieringConfigurationArgs{ 88 // Bucket: example.ID(), 89 // Name: pulumi.String("ImportantBlueDocuments"), 90 // Status: pulumi.String("Disabled"), 91 // Filter: &s3.BucketIntelligentTieringConfigurationFilterArgs{ 92 // Prefix: pulumi.String("documents/"), 93 // Tags: pulumi.StringMap{ 94 // "priority": pulumi.String("high"), 95 // "class": pulumi.String("blue"), 96 // }, 97 // }, 98 // Tierings: s3.BucketIntelligentTieringConfigurationTieringArray{ 99 // &s3.BucketIntelligentTieringConfigurationTieringArgs{ 100 // AccessTier: pulumi.String("ARCHIVE_ACCESS"), 101 // Days: pulumi.Int(125), 102 // }, 103 // }, 104 // }) 105 // if err != nil { 106 // return err 107 // } 108 // return nil 109 // }) 110 // } 111 // 112 // ``` 113 // <!--End PulumiCodeChooser --> 114 // 115 // ## Import 116 // 117 // Using `pulumi import`, import S3 bucket intelligent tiering configurations using `bucket:name`. For example: 118 // 119 // ```sh 120 // $ pulumi import aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration my-bucket-entire-bucket my-bucket:EntireBucket 121 // ``` 122 type BucketIntelligentTieringConfiguration struct { 123 pulumi.CustomResourceState 124 125 // Name of the bucket this intelligent tiering configuration is associated with. 126 Bucket pulumi.StringOutput `pulumi:"bucket"` 127 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 128 Filter BucketIntelligentTieringConfigurationFilterPtrOutput `pulumi:"filter"` 129 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 130 Name pulumi.StringOutput `pulumi:"name"` 131 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 132 Status pulumi.StringPtrOutput `pulumi:"status"` 133 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 134 Tierings BucketIntelligentTieringConfigurationTieringArrayOutput `pulumi:"tierings"` 135 } 136 137 // NewBucketIntelligentTieringConfiguration registers a new resource with the given unique name, arguments, and options. 138 func NewBucketIntelligentTieringConfiguration(ctx *pulumi.Context, 139 name string, args *BucketIntelligentTieringConfigurationArgs, opts ...pulumi.ResourceOption) (*BucketIntelligentTieringConfiguration, error) { 140 if args == nil { 141 return nil, errors.New("missing one or more required arguments") 142 } 143 144 if args.Bucket == nil { 145 return nil, errors.New("invalid value for required argument 'Bucket'") 146 } 147 if args.Tierings == nil { 148 return nil, errors.New("invalid value for required argument 'Tierings'") 149 } 150 opts = internal.PkgResourceDefaultOpts(opts) 151 var resource BucketIntelligentTieringConfiguration 152 err := ctx.RegisterResource("aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration", name, args, &resource, opts...) 153 if err != nil { 154 return nil, err 155 } 156 return &resource, nil 157 } 158 159 // GetBucketIntelligentTieringConfiguration gets an existing BucketIntelligentTieringConfiguration resource's state with the given name, ID, and optional 160 // state properties that are used to uniquely qualify the lookup (nil if not required). 161 func GetBucketIntelligentTieringConfiguration(ctx *pulumi.Context, 162 name string, id pulumi.IDInput, state *BucketIntelligentTieringConfigurationState, opts ...pulumi.ResourceOption) (*BucketIntelligentTieringConfiguration, error) { 163 var resource BucketIntelligentTieringConfiguration 164 err := ctx.ReadResource("aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration", name, id, state, &resource, opts...) 165 if err != nil { 166 return nil, err 167 } 168 return &resource, nil 169 } 170 171 // Input properties used for looking up and filtering BucketIntelligentTieringConfiguration resources. 172 type bucketIntelligentTieringConfigurationState struct { 173 // Name of the bucket this intelligent tiering configuration is associated with. 174 Bucket *string `pulumi:"bucket"` 175 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 176 Filter *BucketIntelligentTieringConfigurationFilter `pulumi:"filter"` 177 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 178 Name *string `pulumi:"name"` 179 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 180 Status *string `pulumi:"status"` 181 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 182 Tierings []BucketIntelligentTieringConfigurationTiering `pulumi:"tierings"` 183 } 184 185 type BucketIntelligentTieringConfigurationState struct { 186 // Name of the bucket this intelligent tiering configuration is associated with. 187 Bucket pulumi.StringPtrInput 188 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 189 Filter BucketIntelligentTieringConfigurationFilterPtrInput 190 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 191 Name pulumi.StringPtrInput 192 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 193 Status pulumi.StringPtrInput 194 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 195 Tierings BucketIntelligentTieringConfigurationTieringArrayInput 196 } 197 198 func (BucketIntelligentTieringConfigurationState) ElementType() reflect.Type { 199 return reflect.TypeOf((*bucketIntelligentTieringConfigurationState)(nil)).Elem() 200 } 201 202 type bucketIntelligentTieringConfigurationArgs struct { 203 // Name of the bucket this intelligent tiering configuration is associated with. 204 Bucket string `pulumi:"bucket"` 205 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 206 Filter *BucketIntelligentTieringConfigurationFilter `pulumi:"filter"` 207 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 208 Name *string `pulumi:"name"` 209 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 210 Status *string `pulumi:"status"` 211 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 212 Tierings []BucketIntelligentTieringConfigurationTiering `pulumi:"tierings"` 213 } 214 215 // The set of arguments for constructing a BucketIntelligentTieringConfiguration resource. 216 type BucketIntelligentTieringConfigurationArgs struct { 217 // Name of the bucket this intelligent tiering configuration is associated with. 218 Bucket pulumi.StringInput 219 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 220 Filter BucketIntelligentTieringConfigurationFilterPtrInput 221 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 222 Name pulumi.StringPtrInput 223 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 224 Status pulumi.StringPtrInput 225 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 226 Tierings BucketIntelligentTieringConfigurationTieringArrayInput 227 } 228 229 func (BucketIntelligentTieringConfigurationArgs) ElementType() reflect.Type { 230 return reflect.TypeOf((*bucketIntelligentTieringConfigurationArgs)(nil)).Elem() 231 } 232 233 type BucketIntelligentTieringConfigurationInput interface { 234 pulumi.Input 235 236 ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput 237 ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput 238 } 239 240 func (*BucketIntelligentTieringConfiguration) ElementType() reflect.Type { 241 return reflect.TypeOf((**BucketIntelligentTieringConfiguration)(nil)).Elem() 242 } 243 244 func (i *BucketIntelligentTieringConfiguration) ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput { 245 return i.ToBucketIntelligentTieringConfigurationOutputWithContext(context.Background()) 246 } 247 248 func (i *BucketIntelligentTieringConfiguration) ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput { 249 return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationOutput) 250 } 251 252 // BucketIntelligentTieringConfigurationArrayInput is an input type that accepts BucketIntelligentTieringConfigurationArray and BucketIntelligentTieringConfigurationArrayOutput values. 253 // You can construct a concrete instance of `BucketIntelligentTieringConfigurationArrayInput` via: 254 // 255 // BucketIntelligentTieringConfigurationArray{ BucketIntelligentTieringConfigurationArgs{...} } 256 type BucketIntelligentTieringConfigurationArrayInput interface { 257 pulumi.Input 258 259 ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput 260 ToBucketIntelligentTieringConfigurationArrayOutputWithContext(context.Context) BucketIntelligentTieringConfigurationArrayOutput 261 } 262 263 type BucketIntelligentTieringConfigurationArray []BucketIntelligentTieringConfigurationInput 264 265 func (BucketIntelligentTieringConfigurationArray) ElementType() reflect.Type { 266 return reflect.TypeOf((*[]*BucketIntelligentTieringConfiguration)(nil)).Elem() 267 } 268 269 func (i BucketIntelligentTieringConfigurationArray) ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput { 270 return i.ToBucketIntelligentTieringConfigurationArrayOutputWithContext(context.Background()) 271 } 272 273 func (i BucketIntelligentTieringConfigurationArray) ToBucketIntelligentTieringConfigurationArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationArrayOutput { 274 return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationArrayOutput) 275 } 276 277 // BucketIntelligentTieringConfigurationMapInput is an input type that accepts BucketIntelligentTieringConfigurationMap and BucketIntelligentTieringConfigurationMapOutput values. 278 // You can construct a concrete instance of `BucketIntelligentTieringConfigurationMapInput` via: 279 // 280 // BucketIntelligentTieringConfigurationMap{ "key": BucketIntelligentTieringConfigurationArgs{...} } 281 type BucketIntelligentTieringConfigurationMapInput interface { 282 pulumi.Input 283 284 ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput 285 ToBucketIntelligentTieringConfigurationMapOutputWithContext(context.Context) BucketIntelligentTieringConfigurationMapOutput 286 } 287 288 type BucketIntelligentTieringConfigurationMap map[string]BucketIntelligentTieringConfigurationInput 289 290 func (BucketIntelligentTieringConfigurationMap) ElementType() reflect.Type { 291 return reflect.TypeOf((*map[string]*BucketIntelligentTieringConfiguration)(nil)).Elem() 292 } 293 294 func (i BucketIntelligentTieringConfigurationMap) ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput { 295 return i.ToBucketIntelligentTieringConfigurationMapOutputWithContext(context.Background()) 296 } 297 298 func (i BucketIntelligentTieringConfigurationMap) ToBucketIntelligentTieringConfigurationMapOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationMapOutput { 299 return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationMapOutput) 300 } 301 302 type BucketIntelligentTieringConfigurationOutput struct{ *pulumi.OutputState } 303 304 func (BucketIntelligentTieringConfigurationOutput) ElementType() reflect.Type { 305 return reflect.TypeOf((**BucketIntelligentTieringConfiguration)(nil)).Elem() 306 } 307 308 func (o BucketIntelligentTieringConfigurationOutput) ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput { 309 return o 310 } 311 312 func (o BucketIntelligentTieringConfigurationOutput) ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput { 313 return o 314 } 315 316 // Name of the bucket this intelligent tiering configuration is associated with. 317 func (o BucketIntelligentTieringConfigurationOutput) Bucket() pulumi.StringOutput { 318 return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) 319 } 320 321 // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). 322 func (o BucketIntelligentTieringConfigurationOutput) Filter() BucketIntelligentTieringConfigurationFilterPtrOutput { 323 return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) BucketIntelligentTieringConfigurationFilterPtrOutput { 324 return v.Filter 325 }).(BucketIntelligentTieringConfigurationFilterPtrOutput) 326 } 327 328 // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. 329 func (o BucketIntelligentTieringConfigurationOutput) Name() pulumi.StringOutput { 330 return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 331 } 332 333 // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. 334 func (o BucketIntelligentTieringConfigurationOutput) Status() pulumi.StringPtrOutput { 335 return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) 336 } 337 338 // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). 339 func (o BucketIntelligentTieringConfigurationOutput) Tierings() BucketIntelligentTieringConfigurationTieringArrayOutput { 340 return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) BucketIntelligentTieringConfigurationTieringArrayOutput { 341 return v.Tierings 342 }).(BucketIntelligentTieringConfigurationTieringArrayOutput) 343 } 344 345 type BucketIntelligentTieringConfigurationArrayOutput struct{ *pulumi.OutputState } 346 347 func (BucketIntelligentTieringConfigurationArrayOutput) ElementType() reflect.Type { 348 return reflect.TypeOf((*[]*BucketIntelligentTieringConfiguration)(nil)).Elem() 349 } 350 351 func (o BucketIntelligentTieringConfigurationArrayOutput) ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput { 352 return o 353 } 354 355 func (o BucketIntelligentTieringConfigurationArrayOutput) ToBucketIntelligentTieringConfigurationArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationArrayOutput { 356 return o 357 } 358 359 func (o BucketIntelligentTieringConfigurationArrayOutput) Index(i pulumi.IntInput) BucketIntelligentTieringConfigurationOutput { 360 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketIntelligentTieringConfiguration { 361 return vs[0].([]*BucketIntelligentTieringConfiguration)[vs[1].(int)] 362 }).(BucketIntelligentTieringConfigurationOutput) 363 } 364 365 type BucketIntelligentTieringConfigurationMapOutput struct{ *pulumi.OutputState } 366 367 func (BucketIntelligentTieringConfigurationMapOutput) ElementType() reflect.Type { 368 return reflect.TypeOf((*map[string]*BucketIntelligentTieringConfiguration)(nil)).Elem() 369 } 370 371 func (o BucketIntelligentTieringConfigurationMapOutput) ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput { 372 return o 373 } 374 375 func (o BucketIntelligentTieringConfigurationMapOutput) ToBucketIntelligentTieringConfigurationMapOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationMapOutput { 376 return o 377 } 378 379 func (o BucketIntelligentTieringConfigurationMapOutput) MapIndex(k pulumi.StringInput) BucketIntelligentTieringConfigurationOutput { 380 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketIntelligentTieringConfiguration { 381 return vs[0].(map[string]*BucketIntelligentTieringConfiguration)[vs[1].(string)] 382 }).(BucketIntelligentTieringConfigurationOutput) 383 } 384 385 func init() { 386 pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationInput)(nil)).Elem(), &BucketIntelligentTieringConfiguration{}) 387 pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationArrayInput)(nil)).Elem(), BucketIntelligentTieringConfigurationArray{}) 388 pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationMapInput)(nil)).Elem(), BucketIntelligentTieringConfigurationMap{}) 389 pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationOutput{}) 390 pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationArrayOutput{}) 391 pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationMapOutput{}) 392 }