github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3control/multiRegionAccessPoint.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 Multi-Region Access Point associated with specified buckets. 16 // 17 // > This resource cannot be used with S3 directory buckets. 18 // 19 // ## Example Usage 20 // 21 // ### Multiple AWS Buckets in Different Regions 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-aws/sdk/v6/go/aws/s3control" 31 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 32 // 33 // ) 34 // 35 // func main() { 36 // pulumi.Run(func(ctx *pulumi.Context) error { 37 // fooBucket, err := s3.NewBucketV2(ctx, "foo_bucket", &s3.BucketV2Args{ 38 // Bucket: pulumi.String("example-bucket-foo"), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // barBucket, err := s3.NewBucketV2(ctx, "bar_bucket", &s3.BucketV2Args{ 44 // Bucket: pulumi.String("example-bucket-bar"), 45 // }) 46 // if err != nil { 47 // return err 48 // } 49 // _, err = s3control.NewMultiRegionAccessPoint(ctx, "example", &s3control.MultiRegionAccessPointArgs{ 50 // Details: &s3control.MultiRegionAccessPointDetailsArgs{ 51 // Name: pulumi.String("example"), 52 // Regions: s3control.MultiRegionAccessPointDetailsRegionArray{ 53 // &s3control.MultiRegionAccessPointDetailsRegionArgs{ 54 // Bucket: fooBucket.ID(), 55 // }, 56 // &s3control.MultiRegionAccessPointDetailsRegionArgs{ 57 // Bucket: barBucket.ID(), 58 // }, 59 // }, 60 // }, 61 // }) 62 // if err != nil { 63 // return err 64 // } 65 // return nil 66 // }) 67 // } 68 // 69 // ``` 70 // <!--End PulumiCodeChooser --> 71 // 72 // ## Import 73 // 74 // Using `pulumi import`, import Multi-Region Access Points using the `account_id` and `name` of the Multi-Region Access Point separated by a colon (`:`). For example: 75 // 76 // ```sh 77 // $ pulumi import aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint example 123456789012:example 78 // ``` 79 type MultiRegionAccessPoint struct { 80 pulumi.CustomResourceState 81 82 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 83 AccountId pulumi.StringOutput `pulumi:"accountId"` 84 // The alias for the Multi-Region Access Point. 85 Alias pulumi.StringOutput `pulumi:"alias"` 86 // Amazon Resource Name (ARN) of the Multi-Region Access Point. 87 Arn pulumi.StringOutput `pulumi:"arn"` 88 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 89 Details MultiRegionAccessPointDetailsOutput `pulumi:"details"` 90 // The DNS domain name of the S3 Multi-Region Access Point in the format _`alias`_.accesspoint.s3-global.amazonaws.com. For more information, see the documentation on [Multi-Region Access Point Requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html). 91 DomainName pulumi.StringOutput `pulumi:"domainName"` 92 // The current status of the Multi-Region Access Point. One of: `READY`, `INCONSISTENT_ACROSS_REGIONS`, `CREATING`, `PARTIALLY_CREATED`, `PARTIALLY_DELETED`, `DELETING`. 93 Status pulumi.StringOutput `pulumi:"status"` 94 } 95 96 // NewMultiRegionAccessPoint registers a new resource with the given unique name, arguments, and options. 97 func NewMultiRegionAccessPoint(ctx *pulumi.Context, 98 name string, args *MultiRegionAccessPointArgs, opts ...pulumi.ResourceOption) (*MultiRegionAccessPoint, error) { 99 if args == nil { 100 return nil, errors.New("missing one or more required arguments") 101 } 102 103 if args.Details == nil { 104 return nil, errors.New("invalid value for required argument 'Details'") 105 } 106 opts = internal.PkgResourceDefaultOpts(opts) 107 var resource MultiRegionAccessPoint 108 err := ctx.RegisterResource("aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint", name, args, &resource, opts...) 109 if err != nil { 110 return nil, err 111 } 112 return &resource, nil 113 } 114 115 // GetMultiRegionAccessPoint gets an existing MultiRegionAccessPoint resource's state with the given name, ID, and optional 116 // state properties that are used to uniquely qualify the lookup (nil if not required). 117 func GetMultiRegionAccessPoint(ctx *pulumi.Context, 118 name string, id pulumi.IDInput, state *MultiRegionAccessPointState, opts ...pulumi.ResourceOption) (*MultiRegionAccessPoint, error) { 119 var resource MultiRegionAccessPoint 120 err := ctx.ReadResource("aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint", name, id, state, &resource, opts...) 121 if err != nil { 122 return nil, err 123 } 124 return &resource, nil 125 } 126 127 // Input properties used for looking up and filtering MultiRegionAccessPoint resources. 128 type multiRegionAccessPointState struct { 129 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 130 AccountId *string `pulumi:"accountId"` 131 // The alias for the Multi-Region Access Point. 132 Alias *string `pulumi:"alias"` 133 // Amazon Resource Name (ARN) of the Multi-Region Access Point. 134 Arn *string `pulumi:"arn"` 135 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 136 Details *MultiRegionAccessPointDetails `pulumi:"details"` 137 // The DNS domain name of the S3 Multi-Region Access Point in the format _`alias`_.accesspoint.s3-global.amazonaws.com. For more information, see the documentation on [Multi-Region Access Point Requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html). 138 DomainName *string `pulumi:"domainName"` 139 // The current status of the Multi-Region Access Point. One of: `READY`, `INCONSISTENT_ACROSS_REGIONS`, `CREATING`, `PARTIALLY_CREATED`, `PARTIALLY_DELETED`, `DELETING`. 140 Status *string `pulumi:"status"` 141 } 142 143 type MultiRegionAccessPointState struct { 144 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 145 AccountId pulumi.StringPtrInput 146 // The alias for the Multi-Region Access Point. 147 Alias pulumi.StringPtrInput 148 // Amazon Resource Name (ARN) of the Multi-Region Access Point. 149 Arn pulumi.StringPtrInput 150 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 151 Details MultiRegionAccessPointDetailsPtrInput 152 // The DNS domain name of the S3 Multi-Region Access Point in the format _`alias`_.accesspoint.s3-global.amazonaws.com. For more information, see the documentation on [Multi-Region Access Point Requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html). 153 DomainName pulumi.StringPtrInput 154 // The current status of the Multi-Region Access Point. One of: `READY`, `INCONSISTENT_ACROSS_REGIONS`, `CREATING`, `PARTIALLY_CREATED`, `PARTIALLY_DELETED`, `DELETING`. 155 Status pulumi.StringPtrInput 156 } 157 158 func (MultiRegionAccessPointState) ElementType() reflect.Type { 159 return reflect.TypeOf((*multiRegionAccessPointState)(nil)).Elem() 160 } 161 162 type multiRegionAccessPointArgs struct { 163 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 164 AccountId *string `pulumi:"accountId"` 165 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 166 Details MultiRegionAccessPointDetails `pulumi:"details"` 167 } 168 169 // The set of arguments for constructing a MultiRegionAccessPoint resource. 170 type MultiRegionAccessPointArgs struct { 171 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 172 AccountId pulumi.StringPtrInput 173 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 174 Details MultiRegionAccessPointDetailsInput 175 } 176 177 func (MultiRegionAccessPointArgs) ElementType() reflect.Type { 178 return reflect.TypeOf((*multiRegionAccessPointArgs)(nil)).Elem() 179 } 180 181 type MultiRegionAccessPointInput interface { 182 pulumi.Input 183 184 ToMultiRegionAccessPointOutput() MultiRegionAccessPointOutput 185 ToMultiRegionAccessPointOutputWithContext(ctx context.Context) MultiRegionAccessPointOutput 186 } 187 188 func (*MultiRegionAccessPoint) ElementType() reflect.Type { 189 return reflect.TypeOf((**MultiRegionAccessPoint)(nil)).Elem() 190 } 191 192 func (i *MultiRegionAccessPoint) ToMultiRegionAccessPointOutput() MultiRegionAccessPointOutput { 193 return i.ToMultiRegionAccessPointOutputWithContext(context.Background()) 194 } 195 196 func (i *MultiRegionAccessPoint) ToMultiRegionAccessPointOutputWithContext(ctx context.Context) MultiRegionAccessPointOutput { 197 return pulumi.ToOutputWithContext(ctx, i).(MultiRegionAccessPointOutput) 198 } 199 200 // MultiRegionAccessPointArrayInput is an input type that accepts MultiRegionAccessPointArray and MultiRegionAccessPointArrayOutput values. 201 // You can construct a concrete instance of `MultiRegionAccessPointArrayInput` via: 202 // 203 // MultiRegionAccessPointArray{ MultiRegionAccessPointArgs{...} } 204 type MultiRegionAccessPointArrayInput interface { 205 pulumi.Input 206 207 ToMultiRegionAccessPointArrayOutput() MultiRegionAccessPointArrayOutput 208 ToMultiRegionAccessPointArrayOutputWithContext(context.Context) MultiRegionAccessPointArrayOutput 209 } 210 211 type MultiRegionAccessPointArray []MultiRegionAccessPointInput 212 213 func (MultiRegionAccessPointArray) ElementType() reflect.Type { 214 return reflect.TypeOf((*[]*MultiRegionAccessPoint)(nil)).Elem() 215 } 216 217 func (i MultiRegionAccessPointArray) ToMultiRegionAccessPointArrayOutput() MultiRegionAccessPointArrayOutput { 218 return i.ToMultiRegionAccessPointArrayOutputWithContext(context.Background()) 219 } 220 221 func (i MultiRegionAccessPointArray) ToMultiRegionAccessPointArrayOutputWithContext(ctx context.Context) MultiRegionAccessPointArrayOutput { 222 return pulumi.ToOutputWithContext(ctx, i).(MultiRegionAccessPointArrayOutput) 223 } 224 225 // MultiRegionAccessPointMapInput is an input type that accepts MultiRegionAccessPointMap and MultiRegionAccessPointMapOutput values. 226 // You can construct a concrete instance of `MultiRegionAccessPointMapInput` via: 227 // 228 // MultiRegionAccessPointMap{ "key": MultiRegionAccessPointArgs{...} } 229 type MultiRegionAccessPointMapInput interface { 230 pulumi.Input 231 232 ToMultiRegionAccessPointMapOutput() MultiRegionAccessPointMapOutput 233 ToMultiRegionAccessPointMapOutputWithContext(context.Context) MultiRegionAccessPointMapOutput 234 } 235 236 type MultiRegionAccessPointMap map[string]MultiRegionAccessPointInput 237 238 func (MultiRegionAccessPointMap) ElementType() reflect.Type { 239 return reflect.TypeOf((*map[string]*MultiRegionAccessPoint)(nil)).Elem() 240 } 241 242 func (i MultiRegionAccessPointMap) ToMultiRegionAccessPointMapOutput() MultiRegionAccessPointMapOutput { 243 return i.ToMultiRegionAccessPointMapOutputWithContext(context.Background()) 244 } 245 246 func (i MultiRegionAccessPointMap) ToMultiRegionAccessPointMapOutputWithContext(ctx context.Context) MultiRegionAccessPointMapOutput { 247 return pulumi.ToOutputWithContext(ctx, i).(MultiRegionAccessPointMapOutput) 248 } 249 250 type MultiRegionAccessPointOutput struct{ *pulumi.OutputState } 251 252 func (MultiRegionAccessPointOutput) ElementType() reflect.Type { 253 return reflect.TypeOf((**MultiRegionAccessPoint)(nil)).Elem() 254 } 255 256 func (o MultiRegionAccessPointOutput) ToMultiRegionAccessPointOutput() MultiRegionAccessPointOutput { 257 return o 258 } 259 260 func (o MultiRegionAccessPointOutput) ToMultiRegionAccessPointOutputWithContext(ctx context.Context) MultiRegionAccessPointOutput { 261 return o 262 } 263 264 // The AWS account ID for the owner of the buckets for which you want to create a Multi-Region Access Point. Defaults to automatically determined account ID of the AWS provider. 265 func (o MultiRegionAccessPointOutput) AccountId() pulumi.StringOutput { 266 return o.ApplyT(func(v *MultiRegionAccessPoint) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) 267 } 268 269 // The alias for the Multi-Region Access Point. 270 func (o MultiRegionAccessPointOutput) Alias() pulumi.StringOutput { 271 return o.ApplyT(func(v *MultiRegionAccessPoint) pulumi.StringOutput { return v.Alias }).(pulumi.StringOutput) 272 } 273 274 // Amazon Resource Name (ARN) of the Multi-Region Access Point. 275 func (o MultiRegionAccessPointOutput) Arn() pulumi.StringOutput { 276 return o.ApplyT(func(v *MultiRegionAccessPoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 277 } 278 279 // A configuration block containing details about the Multi-Region Access Point. See Details Configuration Block below for more details 280 func (o MultiRegionAccessPointOutput) Details() MultiRegionAccessPointDetailsOutput { 281 return o.ApplyT(func(v *MultiRegionAccessPoint) MultiRegionAccessPointDetailsOutput { return v.Details }).(MultiRegionAccessPointDetailsOutput) 282 } 283 284 // The DNS domain name of the S3 Multi-Region Access Point in the format _`alias`_.accesspoint.s3-global.amazonaws.com. For more information, see the documentation on [Multi-Region Access Point Requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html). 285 func (o MultiRegionAccessPointOutput) DomainName() pulumi.StringOutput { 286 return o.ApplyT(func(v *MultiRegionAccessPoint) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) 287 } 288 289 // The current status of the Multi-Region Access Point. One of: `READY`, `INCONSISTENT_ACROSS_REGIONS`, `CREATING`, `PARTIALLY_CREATED`, `PARTIALLY_DELETED`, `DELETING`. 290 func (o MultiRegionAccessPointOutput) Status() pulumi.StringOutput { 291 return o.ApplyT(func(v *MultiRegionAccessPoint) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 292 } 293 294 type MultiRegionAccessPointArrayOutput struct{ *pulumi.OutputState } 295 296 func (MultiRegionAccessPointArrayOutput) ElementType() reflect.Type { 297 return reflect.TypeOf((*[]*MultiRegionAccessPoint)(nil)).Elem() 298 } 299 300 func (o MultiRegionAccessPointArrayOutput) ToMultiRegionAccessPointArrayOutput() MultiRegionAccessPointArrayOutput { 301 return o 302 } 303 304 func (o MultiRegionAccessPointArrayOutput) ToMultiRegionAccessPointArrayOutputWithContext(ctx context.Context) MultiRegionAccessPointArrayOutput { 305 return o 306 } 307 308 func (o MultiRegionAccessPointArrayOutput) Index(i pulumi.IntInput) MultiRegionAccessPointOutput { 309 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MultiRegionAccessPoint { 310 return vs[0].([]*MultiRegionAccessPoint)[vs[1].(int)] 311 }).(MultiRegionAccessPointOutput) 312 } 313 314 type MultiRegionAccessPointMapOutput struct{ *pulumi.OutputState } 315 316 func (MultiRegionAccessPointMapOutput) ElementType() reflect.Type { 317 return reflect.TypeOf((*map[string]*MultiRegionAccessPoint)(nil)).Elem() 318 } 319 320 func (o MultiRegionAccessPointMapOutput) ToMultiRegionAccessPointMapOutput() MultiRegionAccessPointMapOutput { 321 return o 322 } 323 324 func (o MultiRegionAccessPointMapOutput) ToMultiRegionAccessPointMapOutputWithContext(ctx context.Context) MultiRegionAccessPointMapOutput { 325 return o 326 } 327 328 func (o MultiRegionAccessPointMapOutput) MapIndex(k pulumi.StringInput) MultiRegionAccessPointOutput { 329 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MultiRegionAccessPoint { 330 return vs[0].(map[string]*MultiRegionAccessPoint)[vs[1].(string)] 331 }).(MultiRegionAccessPointOutput) 332 } 333 334 func init() { 335 pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionAccessPointInput)(nil)).Elem(), &MultiRegionAccessPoint{}) 336 pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionAccessPointArrayInput)(nil)).Elem(), MultiRegionAccessPointArray{}) 337 pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionAccessPointMapInput)(nil)).Elem(), MultiRegionAccessPointMap{}) 338 pulumi.RegisterOutputType(MultiRegionAccessPointOutput{}) 339 pulumi.RegisterOutputType(MultiRegionAccessPointArrayOutput{}) 340 pulumi.RegisterOutputType(MultiRegionAccessPointMapOutput{}) 341 }