github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3control/bucketLifecycleConfiguration.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 s3control 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 a resource to manage an S3 Control Bucket Lifecycle Configuration. 16 // 17 // > **NOTE:** Each S3 Control Bucket can only have one Lifecycle Configuration. Using multiple of this resource against the same S3 Control Bucket will result in perpetual differences each provider run. 18 // 19 // > This functionality is for managing [S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html). To manage S3 Bucket Lifecycle Configurations in an AWS Partition, see the `s3.BucketV2` resource. 20 // 21 // ## Example Usage 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3control" 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 := s3control.NewBucketLifecycleConfiguration(ctx, "example", &s3control.BucketLifecycleConfigurationArgs{ 37 // Bucket: pulumi.Any(exampleAwsS3controlBucket.Arn), 38 // Rules: s3control.BucketLifecycleConfigurationRuleArray{ 39 // &s3control.BucketLifecycleConfigurationRuleArgs{ 40 // Expiration: &s3control.BucketLifecycleConfigurationRuleExpirationArgs{ 41 // Days: pulumi.Int(365), 42 // }, 43 // Filter: &s3control.BucketLifecycleConfigurationRuleFilterArgs{ 44 // Prefix: pulumi.String("logs/"), 45 // }, 46 // Id: pulumi.String("logs"), 47 // }, 48 // &s3control.BucketLifecycleConfigurationRuleArgs{ 49 // Expiration: &s3control.BucketLifecycleConfigurationRuleExpirationArgs{ 50 // Days: pulumi.Int(7), 51 // }, 52 // Filter: &s3control.BucketLifecycleConfigurationRuleFilterArgs{ 53 // Prefix: pulumi.String("temp/"), 54 // }, 55 // Id: pulumi.String("temp"), 56 // }, 57 // }, 58 // }) 59 // if err != nil { 60 // return err 61 // } 62 // return nil 63 // }) 64 // } 65 // 66 // ``` 67 // <!--End PulumiCodeChooser --> 68 // 69 // ## Import 70 // 71 // Using `pulumi import`, import S3 Control Bucket Lifecycle Configurations using the Amazon Resource Name (ARN). For example: 72 // 73 // ```sh 74 // $ pulumi import aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration example arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-12345678/bucket/example 75 // ``` 76 type BucketLifecycleConfiguration struct { 77 pulumi.CustomResourceState 78 79 // Amazon Resource Name (ARN) of the bucket. 80 Bucket pulumi.StringOutput `pulumi:"bucket"` 81 // Configuration block(s) containing lifecycle rules for the bucket. 82 Rules BucketLifecycleConfigurationRuleArrayOutput `pulumi:"rules"` 83 } 84 85 // NewBucketLifecycleConfiguration registers a new resource with the given unique name, arguments, and options. 86 func NewBucketLifecycleConfiguration(ctx *pulumi.Context, 87 name string, args *BucketLifecycleConfigurationArgs, opts ...pulumi.ResourceOption) (*BucketLifecycleConfiguration, error) { 88 if args == nil { 89 return nil, errors.New("missing one or more required arguments") 90 } 91 92 if args.Bucket == nil { 93 return nil, errors.New("invalid value for required argument 'Bucket'") 94 } 95 if args.Rules == nil { 96 return nil, errors.New("invalid value for required argument 'Rules'") 97 } 98 opts = internal.PkgResourceDefaultOpts(opts) 99 var resource BucketLifecycleConfiguration 100 err := ctx.RegisterResource("aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration", name, args, &resource, opts...) 101 if err != nil { 102 return nil, err 103 } 104 return &resource, nil 105 } 106 107 // GetBucketLifecycleConfiguration gets an existing BucketLifecycleConfiguration resource's state with the given name, ID, and optional 108 // state properties that are used to uniquely qualify the lookup (nil if not required). 109 func GetBucketLifecycleConfiguration(ctx *pulumi.Context, 110 name string, id pulumi.IDInput, state *BucketLifecycleConfigurationState, opts ...pulumi.ResourceOption) (*BucketLifecycleConfiguration, error) { 111 var resource BucketLifecycleConfiguration 112 err := ctx.ReadResource("aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration", name, id, state, &resource, opts...) 113 if err != nil { 114 return nil, err 115 } 116 return &resource, nil 117 } 118 119 // Input properties used for looking up and filtering BucketLifecycleConfiguration resources. 120 type bucketLifecycleConfigurationState struct { 121 // Amazon Resource Name (ARN) of the bucket. 122 Bucket *string `pulumi:"bucket"` 123 // Configuration block(s) containing lifecycle rules for the bucket. 124 Rules []BucketLifecycleConfigurationRule `pulumi:"rules"` 125 } 126 127 type BucketLifecycleConfigurationState struct { 128 // Amazon Resource Name (ARN) of the bucket. 129 Bucket pulumi.StringPtrInput 130 // Configuration block(s) containing lifecycle rules for the bucket. 131 Rules BucketLifecycleConfigurationRuleArrayInput 132 } 133 134 func (BucketLifecycleConfigurationState) ElementType() reflect.Type { 135 return reflect.TypeOf((*bucketLifecycleConfigurationState)(nil)).Elem() 136 } 137 138 type bucketLifecycleConfigurationArgs struct { 139 // Amazon Resource Name (ARN) of the bucket. 140 Bucket string `pulumi:"bucket"` 141 // Configuration block(s) containing lifecycle rules for the bucket. 142 Rules []BucketLifecycleConfigurationRule `pulumi:"rules"` 143 } 144 145 // The set of arguments for constructing a BucketLifecycleConfiguration resource. 146 type BucketLifecycleConfigurationArgs struct { 147 // Amazon Resource Name (ARN) of the bucket. 148 Bucket pulumi.StringInput 149 // Configuration block(s) containing lifecycle rules for the bucket. 150 Rules BucketLifecycleConfigurationRuleArrayInput 151 } 152 153 func (BucketLifecycleConfigurationArgs) ElementType() reflect.Type { 154 return reflect.TypeOf((*bucketLifecycleConfigurationArgs)(nil)).Elem() 155 } 156 157 type BucketLifecycleConfigurationInput interface { 158 pulumi.Input 159 160 ToBucketLifecycleConfigurationOutput() BucketLifecycleConfigurationOutput 161 ToBucketLifecycleConfigurationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationOutput 162 } 163 164 func (*BucketLifecycleConfiguration) ElementType() reflect.Type { 165 return reflect.TypeOf((**BucketLifecycleConfiguration)(nil)).Elem() 166 } 167 168 func (i *BucketLifecycleConfiguration) ToBucketLifecycleConfigurationOutput() BucketLifecycleConfigurationOutput { 169 return i.ToBucketLifecycleConfigurationOutputWithContext(context.Background()) 170 } 171 172 func (i *BucketLifecycleConfiguration) ToBucketLifecycleConfigurationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationOutput { 173 return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationOutput) 174 } 175 176 // BucketLifecycleConfigurationArrayInput is an input type that accepts BucketLifecycleConfigurationArray and BucketLifecycleConfigurationArrayOutput values. 177 // You can construct a concrete instance of `BucketLifecycleConfigurationArrayInput` via: 178 // 179 // BucketLifecycleConfigurationArray{ BucketLifecycleConfigurationArgs{...} } 180 type BucketLifecycleConfigurationArrayInput interface { 181 pulumi.Input 182 183 ToBucketLifecycleConfigurationArrayOutput() BucketLifecycleConfigurationArrayOutput 184 ToBucketLifecycleConfigurationArrayOutputWithContext(context.Context) BucketLifecycleConfigurationArrayOutput 185 } 186 187 type BucketLifecycleConfigurationArray []BucketLifecycleConfigurationInput 188 189 func (BucketLifecycleConfigurationArray) ElementType() reflect.Type { 190 return reflect.TypeOf((*[]*BucketLifecycleConfiguration)(nil)).Elem() 191 } 192 193 func (i BucketLifecycleConfigurationArray) ToBucketLifecycleConfigurationArrayOutput() BucketLifecycleConfigurationArrayOutput { 194 return i.ToBucketLifecycleConfigurationArrayOutputWithContext(context.Background()) 195 } 196 197 func (i BucketLifecycleConfigurationArray) ToBucketLifecycleConfigurationArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationArrayOutput { 198 return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationArrayOutput) 199 } 200 201 // BucketLifecycleConfigurationMapInput is an input type that accepts BucketLifecycleConfigurationMap and BucketLifecycleConfigurationMapOutput values. 202 // You can construct a concrete instance of `BucketLifecycleConfigurationMapInput` via: 203 // 204 // BucketLifecycleConfigurationMap{ "key": BucketLifecycleConfigurationArgs{...} } 205 type BucketLifecycleConfigurationMapInput interface { 206 pulumi.Input 207 208 ToBucketLifecycleConfigurationMapOutput() BucketLifecycleConfigurationMapOutput 209 ToBucketLifecycleConfigurationMapOutputWithContext(context.Context) BucketLifecycleConfigurationMapOutput 210 } 211 212 type BucketLifecycleConfigurationMap map[string]BucketLifecycleConfigurationInput 213 214 func (BucketLifecycleConfigurationMap) ElementType() reflect.Type { 215 return reflect.TypeOf((*map[string]*BucketLifecycleConfiguration)(nil)).Elem() 216 } 217 218 func (i BucketLifecycleConfigurationMap) ToBucketLifecycleConfigurationMapOutput() BucketLifecycleConfigurationMapOutput { 219 return i.ToBucketLifecycleConfigurationMapOutputWithContext(context.Background()) 220 } 221 222 func (i BucketLifecycleConfigurationMap) ToBucketLifecycleConfigurationMapOutputWithContext(ctx context.Context) BucketLifecycleConfigurationMapOutput { 223 return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationMapOutput) 224 } 225 226 type BucketLifecycleConfigurationOutput struct{ *pulumi.OutputState } 227 228 func (BucketLifecycleConfigurationOutput) ElementType() reflect.Type { 229 return reflect.TypeOf((**BucketLifecycleConfiguration)(nil)).Elem() 230 } 231 232 func (o BucketLifecycleConfigurationOutput) ToBucketLifecycleConfigurationOutput() BucketLifecycleConfigurationOutput { 233 return o 234 } 235 236 func (o BucketLifecycleConfigurationOutput) ToBucketLifecycleConfigurationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationOutput { 237 return o 238 } 239 240 // Amazon Resource Name (ARN) of the bucket. 241 func (o BucketLifecycleConfigurationOutput) Bucket() pulumi.StringOutput { 242 return o.ApplyT(func(v *BucketLifecycleConfiguration) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) 243 } 244 245 // Configuration block(s) containing lifecycle rules for the bucket. 246 func (o BucketLifecycleConfigurationOutput) Rules() BucketLifecycleConfigurationRuleArrayOutput { 247 return o.ApplyT(func(v *BucketLifecycleConfiguration) BucketLifecycleConfigurationRuleArrayOutput { return v.Rules }).(BucketLifecycleConfigurationRuleArrayOutput) 248 } 249 250 type BucketLifecycleConfigurationArrayOutput struct{ *pulumi.OutputState } 251 252 func (BucketLifecycleConfigurationArrayOutput) ElementType() reflect.Type { 253 return reflect.TypeOf((*[]*BucketLifecycleConfiguration)(nil)).Elem() 254 } 255 256 func (o BucketLifecycleConfigurationArrayOutput) ToBucketLifecycleConfigurationArrayOutput() BucketLifecycleConfigurationArrayOutput { 257 return o 258 } 259 260 func (o BucketLifecycleConfigurationArrayOutput) ToBucketLifecycleConfigurationArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationArrayOutput { 261 return o 262 } 263 264 func (o BucketLifecycleConfigurationArrayOutput) Index(i pulumi.IntInput) BucketLifecycleConfigurationOutput { 265 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketLifecycleConfiguration { 266 return vs[0].([]*BucketLifecycleConfiguration)[vs[1].(int)] 267 }).(BucketLifecycleConfigurationOutput) 268 } 269 270 type BucketLifecycleConfigurationMapOutput struct{ *pulumi.OutputState } 271 272 func (BucketLifecycleConfigurationMapOutput) ElementType() reflect.Type { 273 return reflect.TypeOf((*map[string]*BucketLifecycleConfiguration)(nil)).Elem() 274 } 275 276 func (o BucketLifecycleConfigurationMapOutput) ToBucketLifecycleConfigurationMapOutput() BucketLifecycleConfigurationMapOutput { 277 return o 278 } 279 280 func (o BucketLifecycleConfigurationMapOutput) ToBucketLifecycleConfigurationMapOutputWithContext(ctx context.Context) BucketLifecycleConfigurationMapOutput { 281 return o 282 } 283 284 func (o BucketLifecycleConfigurationMapOutput) MapIndex(k pulumi.StringInput) BucketLifecycleConfigurationOutput { 285 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketLifecycleConfiguration { 286 return vs[0].(map[string]*BucketLifecycleConfiguration)[vs[1].(string)] 287 }).(BucketLifecycleConfigurationOutput) 288 } 289 290 func init() { 291 pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationInput)(nil)).Elem(), &BucketLifecycleConfiguration{}) 292 pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationArrayInput)(nil)).Elem(), BucketLifecycleConfigurationArray{}) 293 pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationMapInput)(nil)).Elem(), BucketLifecycleConfigurationMap{}) 294 pulumi.RegisterOutputType(BucketLifecycleConfigurationOutput{}) 295 pulumi.RegisterOutputType(BucketLifecycleConfigurationArrayOutput{}) 296 pulumi.RegisterOutputType(BucketLifecycleConfigurationMapOutput{}) 297 }