import * as core from "@terrascript/core"; export interface VpcConfigurationArgs extends core.SchemaArgs { vpcId: string | core.StringOut; } export class VpcConfiguration extends core.Schema { @core.attr(String) public vpcId!: string | core.StringOut; } export interface PublicAccessBlockConfigurationArgs extends core.SchemaArgs { blockPublicAcls?: boolean | core.BooleanOut; blockPublicPolicy?: boolean | core.BooleanOut; ignorePublicAcls?: boolean | core.BooleanOut; restrictPublicBuckets?: boolean | core.BooleanOut; } export class PublicAccessBlockConfiguration extends core.Schema { @core.attr(Boolean) public blockPublicAcls?: boolean | core.BooleanOut; @core.attr(Boolean) public blockPublicPolicy?: boolean | core.BooleanOut; @core.attr(Boolean) public ignorePublicAcls?: boolean | core.BooleanOut; @core.attr(Boolean) public restrictPublicBuckets?: boolean | core.BooleanOut; } export interface AccessPointArgs extends core.ResourceArgs { /** * (Optional) 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 Terraform AWS provider. */ accountId?: string | core.StringOut; /** * (Required) Name of an AWS Partition S3 Bucket or the Amazon Resource Name (ARN) of S3 on Outposts Bu * cket that you want to associate this access point with. */ bucket: string | core.StringOut; /** * (Required) Name you want to assign to this access point. */ name: string | core.StringOut; /** * (Optional) 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., `p * olicy = ""`) _will not_ delete the policy since it could have been set by `aws_s3control_access_poin * t_policy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). */ policy?: string | core.StringOut; /** * (Optional) Configuration block to manage the `PublicAccessBlock` configuration that you want to appl * y to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed be * low. */ publicAccessBlockConfiguration?: PublicAccessBlockConfiguration; /** * (Optional) Configuration block to restrict access to this access point to requests from the specifie * d Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. */ vpcConfiguration?: VpcConfiguration; } export class AccessPoint extends core.Resource { /** * (Optional) 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 Terraform AWS provider. */ @core.attr(String, { computed: true }) public accountId?: string | core.StringOut; /** * The alias of the S3 Access Point. */ @core.attr(String, { computed: true }) public alias!: string | core.StringOut; /** * Amazon Resource Name (ARN) of the S3 Access Point. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Name of an AWS Partition S3 Bucket or the Amazon Resource Name (ARN) of S3 on Outposts Bu * cket that you want to associate this access point with. */ @core.attr(String) public bucket!: string | core.StringOut; /** * The DNS domain name of the S3 Access Point in the format _`name`_-_`account_id`_.s3-accesspoint._reg * ion_.amazonaws.com. */ @core.attr(String, { computed: true }) public domainName!: string | core.StringOut; /** * The VPC endpoints for the S3 Access Point. */ @core.attr(String, { computed: true, kind: "map" }) public endpoints!: core.Map | core.MapOut; /** * Indicates whether this access point currently has a policy that allows public access. */ @core.attr(Boolean, { computed: true }) public hasPublicAccessPolicy!: boolean | core.BooleanOut; /** * For Access Point of an AWS Partition S3 Bucket, the AWS account ID and access point name separated b * y a colon (`:`). For S3 on Outposts Bucket, the Amazon Resource Name (ARN) of the Access Point. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name you want to assign to this access point. */ @core.attr(String) public name!: string | core.StringOut; /** * Indicates whether this access point allows access from the public Internet. Values are `VPC` (the ac * cess point doesn't allow access from the public Internet) and `Internet` (the access point allows ac * cess from the public Internet, subject to the access point and bucket access policies). */ @core.attr(String, { computed: true }) public networkOrigin!: string | core.StringOut; /** * (Optional) 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., `p * olicy = ""`) _will not_ delete the policy since it could have been set by `aws_s3control_access_poin * t_policy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). */ @core.attr(String, { computed: true }) public policy?: string | core.StringOut; /** * (Optional) Configuration block to manage the `PublicAccessBlock` configuration that you want to appl * y to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed be * low. */ @core.attr(PublicAccessBlockConfiguration) public publicAccessBlockConfiguration?: PublicAccessBlockConfiguration; /** * (Optional) Configuration block to restrict access to this access point to requests from the specifie * d Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. */ @core.attr(VpcConfiguration) public vpcConfiguration?: VpcConfiguration; constructor(name: string, args?: AccessPointArgs) { super(name, "aws_s3_access_point", args); } public override getNamespace(): string { return "aws_s3"; } }