import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { HeadBucketOutput, HeadBucketRequest } from "../models/models_0"; import type { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link HeadBucketCommand}. */ export interface HeadBucketCommandInput extends HeadBucketRequest { } /** * @public * * The output of {@link HeadBucketCommand}. */ export interface HeadBucketCommandOutput extends HeadBucketOutput, __MetadataBearer { } declare const HeadBucketCommand_base: { new (input: HeadBucketCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: HeadBucketCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

You can use this operation to determine if a bucket exists and if you have permission to access it. * The action returns a 200 OK HTTP status code if the bucket exists and you have * permission to access it. You can make a HeadBucket call on any bucket name to any * Region in the partition, and regardless of the permissions on the bucket, you will receive a * response header with the correct bucket location so that you can then make a proper, signed request * to the appropriate Regional endpoint.

* *

If the bucket doesn't exist or you don't have permission to access it, the HEAD * request returns a generic 400 Bad Request, 403 Forbidden, or * 404 Not Found HTTP status code. A message body isn't included, so you can't determine * the exception beyond these HTTP response codes.

*
*
*
Authentication and authorization
*
*

* General purpose buckets - Request to public buckets that * grant the s3:ListBucket permission publicly do not need to be signed. All other * HeadBucket requests must be authenticated and signed by using IAM credentials * (access key ID and secret access key for the IAM identities). All headers with the * x-amz- prefix, including x-amz-copy-source, must be signed. For more * information, see REST Authentication.

*

* Directory buckets - You must use IAM credentials to * authenticate and authorize your access to the HeadBucket API operation, instead of * using the temporary security credentials through the CreateSession API * operation.

*

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

*
*
Permissions
*
*

* *
*
HTTP Host header syntax
*
*

* Directory buckets - The HTTP Host header syntax is * Bucket-name.s3express-zone-id.region-code.amazonaws.com.

* *

You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket-name.s3express-zone-id.region-code.amazonaws.com. Path-style requests are not supported. For more information about endpoints in Availability Zones, see Regional and Zonal endpoints for directory buckets in Availability Zones in the * Amazon S3 User Guide. For more information about endpoints in Local Zones, see Concepts for directory buckets in Local Zones in the * Amazon S3 User Guide.

*
*
*
* *

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, HeadBucketCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, HeadBucketCommand } = require("@aws-sdk/client-s3"); // CommonJS import * // import type { S3ClientConfig } from "@aws-sdk/client-s3"; * const config = {}; // type is S3ClientConfig * const client = new S3Client(config); * const input = { // HeadBucketRequest * Bucket: "STRING_VALUE", // required * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new HeadBucketCommand(input); * const response = await client.send(command); * // { // HeadBucketOutput * // BucketArn: "STRING_VALUE", * // BucketLocationType: "AvailabilityZone" || "LocalZone", * // BucketLocationName: "STRING_VALUE", * // BucketRegion: "STRING_VALUE", * // AccessPointAlias: true || false, * // }; * * ``` * * @param HeadBucketCommandInput - {@link HeadBucketCommandInput} * @returns {@link HeadBucketCommandOutput} * @see {@link HeadBucketCommandInput} for command's `input` shape. * @see {@link HeadBucketCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * @throws {@link NotFound} (client fault) *

The specified content does not exist.

* * @throws {@link S3ServiceException} *

Base exception class for all service exceptions from S3 service.

* * * @example To determine if bucket exists * ```javascript * // This operation checks to see if a bucket exists. * const input = { * Bucket: "acl1" * }; * const command = new HeadBucketCommand(input); * const response = await client.send(command); * /* response is * { /* metadata only *\/ } * *\/ * ``` * * @public */ export declare class HeadBucketCommand extends HeadBucketCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: HeadBucketRequest; output: HeadBucketOutput; }; sdk: { input: HeadBucketCommandInput; output: HeadBucketCommandOutput; }; }; }