github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/s3/accessPoint.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 a resource to manage an S3 Access Point.
    16  //
    17  // > **NOTE on Access Points and Access Point Policies:** This provider provides both a standalone Access Point Policy resource and an Access Point resource with a resource policy defined in-line. You cannot use an Access Point with in-line resource policy in conjunction with an Access Point Policy resource. Doing so will cause a conflict of policies and will overwrite the access point's resource policy.
    18  //
    19  // > Advanced usage: To use a custom API endpoint for this resource, use the `s3control` endpoint provider configuration), not the `s3` endpoint provider configuration.
    20  //
    21  // > This resource cannot be used with S3 directory buckets.
    22  //
    23  // ## Example Usage
    24  //
    25  // ### AWS Partition General Purpose Bucket
    26  //
    27  // <!--Start PulumiCodeChooser -->
    28  // ```go
    29  // package main
    30  //
    31  // import (
    32  //
    33  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    34  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    35  //
    36  // )
    37  //
    38  //	func main() {
    39  //		pulumi.Run(func(ctx *pulumi.Context) error {
    40  //			example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
    41  //				Bucket: pulumi.String("example"),
    42  //			})
    43  //			if err != nil {
    44  //				return err
    45  //			}
    46  //			_, err = s3.NewAccessPoint(ctx, "example", &s3.AccessPointArgs{
    47  //				Bucket: example.ID(),
    48  //				Name:   pulumi.String("example"),
    49  //			})
    50  //			if err != nil {
    51  //				return err
    52  //			}
    53  //			return nil
    54  //		})
    55  //	}
    56  //
    57  // ```
    58  // <!--End PulumiCodeChooser -->
    59  //
    60  // ### S3 on Outposts Bucket
    61  //
    62  // <!--Start PulumiCodeChooser -->
    63  // ```go
    64  // package main
    65  //
    66  // import (
    67  //
    68  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    69  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    70  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3control"
    71  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    72  //
    73  // )
    74  //
    75  //	func main() {
    76  //		pulumi.Run(func(ctx *pulumi.Context) error {
    77  //			example, err := s3control.NewBucket(ctx, "example", &s3control.BucketArgs{
    78  //				Bucket: pulumi.String("example"),
    79  //			})
    80  //			if err != nil {
    81  //				return err
    82  //			}
    83  //			exampleVpc, err := ec2.NewVpc(ctx, "example", &ec2.VpcArgs{
    84  //				CidrBlock: pulumi.String("10.0.0.0/16"),
    85  //			})
    86  //			if err != nil {
    87  //				return err
    88  //			}
    89  //			_, err = s3.NewAccessPoint(ctx, "example", &s3.AccessPointArgs{
    90  //				Bucket: example.Arn,
    91  //				Name:   pulumi.String("example"),
    92  //				VpcConfiguration: &s3.AccessPointVpcConfigurationArgs{
    93  //					VpcId: exampleVpc.ID(),
    94  //				},
    95  //			})
    96  //			if err != nil {
    97  //				return err
    98  //			}
    99  //			return nil
   100  //		})
   101  //	}
   102  //
   103  // ```
   104  // <!--End PulumiCodeChooser -->
   105  //
   106  // ## Import
   107  //
   108  // Import using the ARN for Access Points associated with an S3 on Outposts Bucket:
   109  //
   110  // __Using `pulumi import` to import.__ For example:
   111  //
   112  // Import using the `account_id` and `name` separated by a colon (`:`) for Access Points associated with an AWS Partition S3 Bucket:
   113  //
   114  // ```sh
   115  // $ pulumi import aws:s3/accessPoint:AccessPoint example 123456789012:example
   116  // ```
   117  // Import using the ARN for Access Points associated with an S3 on Outposts Bucket:
   118  //
   119  // ```sh
   120  // $ pulumi import aws:s3/accessPoint:AccessPoint example arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-1234567890123456/accesspoint/example
   121  // ```
   122  type AccessPoint struct {
   123  	pulumi.CustomResourceState
   124  
   125  	// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   126  	AccountId pulumi.StringOutput `pulumi:"accountId"`
   127  	// Alias of the S3 Access Point.
   128  	Alias pulumi.StringOutput `pulumi:"alias"`
   129  	// ARN of the S3 Access Point.
   130  	Arn pulumi.StringOutput `pulumi:"arn"`
   131  	// Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   132  	Bucket pulumi.StringOutput `pulumi:"bucket"`
   133  	// AWS account ID associated with the S3 bucket associated with this access point.
   134  	BucketAccountId pulumi.StringOutput `pulumi:"bucketAccountId"`
   135  	// DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com.
   136  	// Note: S3 access points only support secure access by HTTPS. HTTP isn't supported.
   137  	DomainName pulumi.StringOutput `pulumi:"domainName"`
   138  	// VPC endpoints for the S3 Access Point.
   139  	Endpoints pulumi.StringMapOutput `pulumi:"endpoints"`
   140  	// Indicates whether this access point currently has a policy that allows public access.
   141  	HasPublicAccessPolicy pulumi.BoolOutput `pulumi:"hasPublicAccessPolicy"`
   142  	// Name you want to assign to this access point.
   143  	//
   144  	// The following arguments are optional:
   145  	Name pulumi.StringOutput `pulumi:"name"`
   146  	// Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies).
   147  	NetworkOrigin pulumi.StringOutput `pulumi:"networkOrigin"`
   148  	// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   149  	Policy pulumi.StringOutput `pulumi:"policy"`
   150  	// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   151  	PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrOutput `pulumi:"publicAccessBlockConfiguration"`
   152  	// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   153  	VpcConfiguration AccessPointVpcConfigurationPtrOutput `pulumi:"vpcConfiguration"`
   154  }
   155  
   156  // NewAccessPoint registers a new resource with the given unique name, arguments, and options.
   157  func NewAccessPoint(ctx *pulumi.Context,
   158  	name string, args *AccessPointArgs, opts ...pulumi.ResourceOption) (*AccessPoint, error) {
   159  	if args == nil {
   160  		return nil, errors.New("missing one or more required arguments")
   161  	}
   162  
   163  	if args.Bucket == nil {
   164  		return nil, errors.New("invalid value for required argument 'Bucket'")
   165  	}
   166  	opts = internal.PkgResourceDefaultOpts(opts)
   167  	var resource AccessPoint
   168  	err := ctx.RegisterResource("aws:s3/accessPoint:AccessPoint", name, args, &resource, opts...)
   169  	if err != nil {
   170  		return nil, err
   171  	}
   172  	return &resource, nil
   173  }
   174  
   175  // GetAccessPoint gets an existing AccessPoint resource's state with the given name, ID, and optional
   176  // state properties that are used to uniquely qualify the lookup (nil if not required).
   177  func GetAccessPoint(ctx *pulumi.Context,
   178  	name string, id pulumi.IDInput, state *AccessPointState, opts ...pulumi.ResourceOption) (*AccessPoint, error) {
   179  	var resource AccessPoint
   180  	err := ctx.ReadResource("aws:s3/accessPoint:AccessPoint", name, id, state, &resource, opts...)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return &resource, nil
   185  }
   186  
   187  // Input properties used for looking up and filtering AccessPoint resources.
   188  type accessPointState struct {
   189  	// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   190  	AccountId *string `pulumi:"accountId"`
   191  	// Alias of the S3 Access Point.
   192  	Alias *string `pulumi:"alias"`
   193  	// ARN of the S3 Access Point.
   194  	Arn *string `pulumi:"arn"`
   195  	// Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   196  	Bucket *string `pulumi:"bucket"`
   197  	// AWS account ID associated with the S3 bucket associated with this access point.
   198  	BucketAccountId *string `pulumi:"bucketAccountId"`
   199  	// DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com.
   200  	// Note: S3 access points only support secure access by HTTPS. HTTP isn't supported.
   201  	DomainName *string `pulumi:"domainName"`
   202  	// VPC endpoints for the S3 Access Point.
   203  	Endpoints map[string]string `pulumi:"endpoints"`
   204  	// Indicates whether this access point currently has a policy that allows public access.
   205  	HasPublicAccessPolicy *bool `pulumi:"hasPublicAccessPolicy"`
   206  	// Name you want to assign to this access point.
   207  	//
   208  	// The following arguments are optional:
   209  	Name *string `pulumi:"name"`
   210  	// Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies).
   211  	NetworkOrigin *string `pulumi:"networkOrigin"`
   212  	// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   213  	Policy *string `pulumi:"policy"`
   214  	// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   215  	PublicAccessBlockConfiguration *AccessPointPublicAccessBlockConfiguration `pulumi:"publicAccessBlockConfiguration"`
   216  	// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   217  	VpcConfiguration *AccessPointVpcConfiguration `pulumi:"vpcConfiguration"`
   218  }
   219  
   220  type AccessPointState struct {
   221  	// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   222  	AccountId pulumi.StringPtrInput
   223  	// Alias of the S3 Access Point.
   224  	Alias pulumi.StringPtrInput
   225  	// ARN of the S3 Access Point.
   226  	Arn pulumi.StringPtrInput
   227  	// Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   228  	Bucket pulumi.StringPtrInput
   229  	// AWS account ID associated with the S3 bucket associated with this access point.
   230  	BucketAccountId pulumi.StringPtrInput
   231  	// DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com.
   232  	// Note: S3 access points only support secure access by HTTPS. HTTP isn't supported.
   233  	DomainName pulumi.StringPtrInput
   234  	// VPC endpoints for the S3 Access Point.
   235  	Endpoints pulumi.StringMapInput
   236  	// Indicates whether this access point currently has a policy that allows public access.
   237  	HasPublicAccessPolicy pulumi.BoolPtrInput
   238  	// Name you want to assign to this access point.
   239  	//
   240  	// The following arguments are optional:
   241  	Name pulumi.StringPtrInput
   242  	// Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies).
   243  	NetworkOrigin pulumi.StringPtrInput
   244  	// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   245  	Policy pulumi.StringPtrInput
   246  	// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   247  	PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrInput
   248  	// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   249  	VpcConfiguration AccessPointVpcConfigurationPtrInput
   250  }
   251  
   252  func (AccessPointState) ElementType() reflect.Type {
   253  	return reflect.TypeOf((*accessPointState)(nil)).Elem()
   254  }
   255  
   256  type accessPointArgs struct {
   257  	// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   258  	AccountId *string `pulumi:"accountId"`
   259  	// Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   260  	Bucket string `pulumi:"bucket"`
   261  	// AWS account ID associated with the S3 bucket associated with this access point.
   262  	BucketAccountId *string `pulumi:"bucketAccountId"`
   263  	// Name you want to assign to this access point.
   264  	//
   265  	// The following arguments are optional:
   266  	Name *string `pulumi:"name"`
   267  	// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   268  	Policy *string `pulumi:"policy"`
   269  	// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   270  	PublicAccessBlockConfiguration *AccessPointPublicAccessBlockConfiguration `pulumi:"publicAccessBlockConfiguration"`
   271  	// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   272  	VpcConfiguration *AccessPointVpcConfiguration `pulumi:"vpcConfiguration"`
   273  }
   274  
   275  // The set of arguments for constructing a AccessPoint resource.
   276  type AccessPointArgs struct {
   277  	// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   278  	AccountId pulumi.StringPtrInput
   279  	// Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   280  	Bucket pulumi.StringInput
   281  	// AWS account ID associated with the S3 bucket associated with this access point.
   282  	BucketAccountId pulumi.StringPtrInput
   283  	// Name you want to assign to this access point.
   284  	//
   285  	// The following arguments are optional:
   286  	Name pulumi.StringPtrInput
   287  	// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   288  	Policy pulumi.StringPtrInput
   289  	// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   290  	PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrInput
   291  	// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   292  	VpcConfiguration AccessPointVpcConfigurationPtrInput
   293  }
   294  
   295  func (AccessPointArgs) ElementType() reflect.Type {
   296  	return reflect.TypeOf((*accessPointArgs)(nil)).Elem()
   297  }
   298  
   299  type AccessPointInput interface {
   300  	pulumi.Input
   301  
   302  	ToAccessPointOutput() AccessPointOutput
   303  	ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput
   304  }
   305  
   306  func (*AccessPoint) ElementType() reflect.Type {
   307  	return reflect.TypeOf((**AccessPoint)(nil)).Elem()
   308  }
   309  
   310  func (i *AccessPoint) ToAccessPointOutput() AccessPointOutput {
   311  	return i.ToAccessPointOutputWithContext(context.Background())
   312  }
   313  
   314  func (i *AccessPoint) ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput {
   315  	return pulumi.ToOutputWithContext(ctx, i).(AccessPointOutput)
   316  }
   317  
   318  // AccessPointArrayInput is an input type that accepts AccessPointArray and AccessPointArrayOutput values.
   319  // You can construct a concrete instance of `AccessPointArrayInput` via:
   320  //
   321  //	AccessPointArray{ AccessPointArgs{...} }
   322  type AccessPointArrayInput interface {
   323  	pulumi.Input
   324  
   325  	ToAccessPointArrayOutput() AccessPointArrayOutput
   326  	ToAccessPointArrayOutputWithContext(context.Context) AccessPointArrayOutput
   327  }
   328  
   329  type AccessPointArray []AccessPointInput
   330  
   331  func (AccessPointArray) ElementType() reflect.Type {
   332  	return reflect.TypeOf((*[]*AccessPoint)(nil)).Elem()
   333  }
   334  
   335  func (i AccessPointArray) ToAccessPointArrayOutput() AccessPointArrayOutput {
   336  	return i.ToAccessPointArrayOutputWithContext(context.Background())
   337  }
   338  
   339  func (i AccessPointArray) ToAccessPointArrayOutputWithContext(ctx context.Context) AccessPointArrayOutput {
   340  	return pulumi.ToOutputWithContext(ctx, i).(AccessPointArrayOutput)
   341  }
   342  
   343  // AccessPointMapInput is an input type that accepts AccessPointMap and AccessPointMapOutput values.
   344  // You can construct a concrete instance of `AccessPointMapInput` via:
   345  //
   346  //	AccessPointMap{ "key": AccessPointArgs{...} }
   347  type AccessPointMapInput interface {
   348  	pulumi.Input
   349  
   350  	ToAccessPointMapOutput() AccessPointMapOutput
   351  	ToAccessPointMapOutputWithContext(context.Context) AccessPointMapOutput
   352  }
   353  
   354  type AccessPointMap map[string]AccessPointInput
   355  
   356  func (AccessPointMap) ElementType() reflect.Type {
   357  	return reflect.TypeOf((*map[string]*AccessPoint)(nil)).Elem()
   358  }
   359  
   360  func (i AccessPointMap) ToAccessPointMapOutput() AccessPointMapOutput {
   361  	return i.ToAccessPointMapOutputWithContext(context.Background())
   362  }
   363  
   364  func (i AccessPointMap) ToAccessPointMapOutputWithContext(ctx context.Context) AccessPointMapOutput {
   365  	return pulumi.ToOutputWithContext(ctx, i).(AccessPointMapOutput)
   366  }
   367  
   368  type AccessPointOutput struct{ *pulumi.OutputState }
   369  
   370  func (AccessPointOutput) ElementType() reflect.Type {
   371  	return reflect.TypeOf((**AccessPoint)(nil)).Elem()
   372  }
   373  
   374  func (o AccessPointOutput) ToAccessPointOutput() AccessPointOutput {
   375  	return o
   376  }
   377  
   378  func (o AccessPointOutput) ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput {
   379  	return o
   380  }
   381  
   382  // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider.
   383  func (o AccessPointOutput) AccountId() pulumi.StringOutput {
   384  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput)
   385  }
   386  
   387  // Alias of the S3 Access Point.
   388  func (o AccessPointOutput) Alias() pulumi.StringOutput {
   389  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Alias }).(pulumi.StringOutput)
   390  }
   391  
   392  // ARN of the S3 Access Point.
   393  func (o AccessPointOutput) Arn() pulumi.StringOutput {
   394  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   395  }
   396  
   397  // Name of an AWS Partition S3 General Purpose Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with.
   398  func (o AccessPointOutput) Bucket() pulumi.StringOutput {
   399  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput)
   400  }
   401  
   402  // AWS account ID associated with the S3 bucket associated with this access point.
   403  func (o AccessPointOutput) BucketAccountId() pulumi.StringOutput {
   404  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.BucketAccountId }).(pulumi.StringOutput)
   405  }
   406  
   407  // DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com.
   408  // Note: S3 access points only support secure access by HTTPS. HTTP isn't supported.
   409  func (o AccessPointOutput) DomainName() pulumi.StringOutput {
   410  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput)
   411  }
   412  
   413  // VPC endpoints for the S3 Access Point.
   414  func (o AccessPointOutput) Endpoints() pulumi.StringMapOutput {
   415  	return o.ApplyT(func(v *AccessPoint) pulumi.StringMapOutput { return v.Endpoints }).(pulumi.StringMapOutput)
   416  }
   417  
   418  // Indicates whether this access point currently has a policy that allows public access.
   419  func (o AccessPointOutput) HasPublicAccessPolicy() pulumi.BoolOutput {
   420  	return o.ApplyT(func(v *AccessPoint) pulumi.BoolOutput { return v.HasPublicAccessPolicy }).(pulumi.BoolOutput)
   421  }
   422  
   423  // Name you want to assign to this access point.
   424  //
   425  // The following arguments are optional:
   426  func (o AccessPointOutput) Name() pulumi.StringOutput {
   427  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   428  }
   429  
   430  // Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies).
   431  func (o AccessPointOutput) NetworkOrigin() pulumi.StringOutput {
   432  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.NetworkOrigin }).(pulumi.StringOutput)
   433  }
   434  
   435  // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document).
   436  func (o AccessPointOutput) Policy() pulumi.StringOutput {
   437  	return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput)
   438  }
   439  
   440  // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below.
   441  func (o AccessPointOutput) PublicAccessBlockConfiguration() AccessPointPublicAccessBlockConfigurationPtrOutput {
   442  	return o.ApplyT(func(v *AccessPoint) AccessPointPublicAccessBlockConfigurationPtrOutput {
   443  		return v.PublicAccessBlockConfiguration
   444  	}).(AccessPointPublicAccessBlockConfigurationPtrOutput)
   445  }
   446  
   447  // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below.
   448  func (o AccessPointOutput) VpcConfiguration() AccessPointVpcConfigurationPtrOutput {
   449  	return o.ApplyT(func(v *AccessPoint) AccessPointVpcConfigurationPtrOutput { return v.VpcConfiguration }).(AccessPointVpcConfigurationPtrOutput)
   450  }
   451  
   452  type AccessPointArrayOutput struct{ *pulumi.OutputState }
   453  
   454  func (AccessPointArrayOutput) ElementType() reflect.Type {
   455  	return reflect.TypeOf((*[]*AccessPoint)(nil)).Elem()
   456  }
   457  
   458  func (o AccessPointArrayOutput) ToAccessPointArrayOutput() AccessPointArrayOutput {
   459  	return o
   460  }
   461  
   462  func (o AccessPointArrayOutput) ToAccessPointArrayOutputWithContext(ctx context.Context) AccessPointArrayOutput {
   463  	return o
   464  }
   465  
   466  func (o AccessPointArrayOutput) Index(i pulumi.IntInput) AccessPointOutput {
   467  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessPoint {
   468  		return vs[0].([]*AccessPoint)[vs[1].(int)]
   469  	}).(AccessPointOutput)
   470  }
   471  
   472  type AccessPointMapOutput struct{ *pulumi.OutputState }
   473  
   474  func (AccessPointMapOutput) ElementType() reflect.Type {
   475  	return reflect.TypeOf((*map[string]*AccessPoint)(nil)).Elem()
   476  }
   477  
   478  func (o AccessPointMapOutput) ToAccessPointMapOutput() AccessPointMapOutput {
   479  	return o
   480  }
   481  
   482  func (o AccessPointMapOutput) ToAccessPointMapOutputWithContext(ctx context.Context) AccessPointMapOutput {
   483  	return o
   484  }
   485  
   486  func (o AccessPointMapOutput) MapIndex(k pulumi.StringInput) AccessPointOutput {
   487  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessPoint {
   488  		return vs[0].(map[string]*AccessPoint)[vs[1].(string)]
   489  	}).(AccessPointOutput)
   490  }
   491  
   492  func init() {
   493  	pulumi.RegisterInputType(reflect.TypeOf((*AccessPointInput)(nil)).Elem(), &AccessPoint{})
   494  	pulumi.RegisterInputType(reflect.TypeOf((*AccessPointArrayInput)(nil)).Elem(), AccessPointArray{})
   495  	pulumi.RegisterInputType(reflect.TypeOf((*AccessPointMapInput)(nil)).Elem(), AccessPointMap{})
   496  	pulumi.RegisterOutputType(AccessPointOutput{})
   497  	pulumi.RegisterOutputType(AccessPointArrayOutput{})
   498  	pulumi.RegisterOutputType(AccessPointMapOutput{})
   499  }