import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets.
 */
export declare class AccessPoint extends pulumi.CustomResource {
    /**
     * Get an existing AccessPoint resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): AccessPoint;
    /**
     * Returns true if the given object is an instance of AccessPoint.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is AccessPoint;
    /**
     * The alias of this Access Point. This alias can be used for compatibility purposes with other AWS services and third-party applications.
     */
    readonly alias: pulumi.Output<string>;
    /**
     * The Amazon Resource Name (ARN) of the specified accesspoint.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The name of the bucket that you want to associate this Access Point with.
     */
    readonly bucket: pulumi.Output<string>;
    /**
     * The AWS account ID associated with the S3 bucket associated with this access point.
     */
    readonly bucketAccountId: pulumi.Output<string | undefined>;
    /**
     * The name you want to assign to this Access Point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * Indicates whether this Access Point allows access from the public Internet. If VpcConfiguration is specified for this Access Point, then NetworkOrigin is VPC, and the Access Point doesn't allow access from the public Internet. Otherwise, NetworkOrigin is Internet, and the Access Point allows access from the public Internet, subject to the Access Point and bucket access policies.
     */
    readonly networkOrigin: pulumi.Output<enums.s3.AccessPointNetworkOrigin>;
    /**
     * The Access Point Policy you want to apply to this access point.
     *
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::S3::AccessPoint` for more information about the expected schema for this property.
     */
    readonly policy: pulumi.Output<any | undefined>;
    /**
     * The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    readonly publicAccessBlockConfiguration: pulumi.Output<outputs.s3.AccessPointPublicAccessBlockConfiguration | undefined>;
    /**
     * An arbitrary set of tags (key-value pairs) for this S3 Access Point.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
     */
    readonly vpcConfiguration: pulumi.Output<outputs.s3.AccessPointVpcConfiguration | undefined>;
    /**
     * Create a AccessPoint resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: AccessPointArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a AccessPoint resource.
 */
export interface AccessPointArgs {
    /**
     * The name of the bucket that you want to associate this Access Point with.
     */
    bucket: pulumi.Input<string>;
    /**
     * The AWS account ID associated with the S3 bucket associated with this access point.
     */
    bucketAccountId?: pulumi.Input<string>;
    /**
     * The name you want to assign to this Access Point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
     */
    name?: pulumi.Input<string>;
    /**
     * The Access Point Policy you want to apply to this access point.
     *
     * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::S3::AccessPoint` for more information about the expected schema for this property.
     */
    policy?: any;
    /**
     * The PublicAccessBlock configuration that you want to apply to this Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    publicAccessBlockConfiguration?: pulumi.Input<inputs.s3.AccessPointPublicAccessBlockConfigurationArgs>;
    /**
     * An arbitrary set of tags (key-value pairs) for this S3 Access Point.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * If you include this field, Amazon S3 restricts access to this Access Point to requests from the specified Virtual Private Cloud (VPC).
     */
    vpcConfiguration?: pulumi.Input<inputs.s3.AccessPointVpcConfigurationArgs>;
}
