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  }