import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types"; import { GetObjectAttributesOutput, GetObjectAttributesRequest } from "../models/models_0"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public * * The input for {@link GetObjectAttributesCommand}. */ export interface GetObjectAttributesCommandInput extends GetObjectAttributesRequest { } /** * @public * * The output of {@link GetObjectAttributesCommand}. */ export interface GetObjectAttributesCommandOutput extends GetObjectAttributesOutput, __MetadataBearer { } /** * @public *

Retrieves all the metadata from an object without returning the object itself. This * action is useful if you're interested only in an object's metadata. To use * GetObjectAttributes, you must have READ access to the object.

*

* GetObjectAttributes combines the functionality of * GetObjectAcl, GetObjectLegalHold, * GetObjectLockConfiguration, GetObjectRetention, * GetObjectTagging, HeadObject, and ListParts. All * of the data returned with each of those individual calls can be returned with a single call * to GetObjectAttributes.

*

If you encrypt an object by using server-side encryption with customer-provided * encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the * metadata from the object, you must use the following headers:

* *

For more information about SSE-C, see Server-Side Encryption * (Using Customer-Provided Encryption Keys) in the * Amazon S3 User Guide.

* * * *

Consider the following when using request headers:

* *

For more information about conditional requests, see RFC 7232.

*

* Permissions *

*

The permissions that you need to use this operation depend on whether the bucket is * versioned. If the bucket is versioned, you need both the s3:GetObjectVersion * and s3:GetObjectVersionAttributes permissions for this operation. If the * bucket is not versioned, you need the s3:GetObject and * s3:GetObjectAttributes permissions. For more information, see Specifying * Permissions in a Policy in the Amazon S3 User Guide. If the * object that you request does not exist, the error Amazon S3 returns depends on whether you also * have the s3:ListBucket permission.

* *

The following actions are related to GetObjectAttributes:

* * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, GetObjectAttributesCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, GetObjectAttributesCommand } = require("@aws-sdk/client-s3"); // CommonJS import * const client = new S3Client(config); * const input = { // GetObjectAttributesRequest * Bucket: "STRING_VALUE", // required * Key: "STRING_VALUE", // required * VersionId: "STRING_VALUE", * MaxParts: Number("int"), * PartNumberMarker: "STRING_VALUE", * SSECustomerAlgorithm: "STRING_VALUE", * SSECustomerKey: "STRING_VALUE", * SSECustomerKeyMD5: "STRING_VALUE", * RequestPayer: "requester", * ExpectedBucketOwner: "STRING_VALUE", * ObjectAttributes: [ // ObjectAttributesList // required * "ETag" || "Checksum" || "ObjectParts" || "StorageClass" || "ObjectSize", * ], * }; * const command = new GetObjectAttributesCommand(input); * const response = await client.send(command); * ``` * * @param GetObjectAttributesCommandInput - {@link GetObjectAttributesCommandInput} * @returns {@link GetObjectAttributesCommandOutput} * @see {@link GetObjectAttributesCommandInput} for command's `input` shape. * @see {@link GetObjectAttributesCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * @throws {@link NoSuchKey} (client fault) *

The specified key does not exist.

* * */ export declare class GetObjectAttributesCommand extends $Command { readonly input: GetObjectAttributesCommandInput; static getEndpointParameterInstructions(): EndpointParameterInstructions; /** * @public */ constructor(input: GetObjectAttributesCommandInput); /** * @internal */ resolveMiddleware(clientStack: MiddlewareStack, configuration: S3ClientResolvedConfig, options?: __HttpHandlerOptions): Handler; /** * @internal */ private serialize; /** * @internal */ private deserialize; }