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

This operation is not supported for directory buckets.

*
*

Returns the access control list (ACL) of an object. To use this operation, you must have * s3:GetObjectAcl permissions or READ_ACP access to the object. For more * information, see Mapping of ACL * permissions and access policy permissions in the Amazon S3 User Guide *

*

This functionality is not supported for Amazon S3 on Outposts.

*

By default, GET returns ACL information about the current version of an object. To return ACL * information about a different version, use the versionId subresource.

* *

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read * ACLs are still supported and return the bucket-owner-full-control ACL with the owner * being the account that created the bucket. For more information, see Controlling object ownership and * disabling ACLs in the Amazon S3 User Guide.

*
*

The following operations are related to GetObjectAcl:

* * *

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, GetObjectAclCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, GetObjectAclCommand } = 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 = { // GetObjectAclRequest * Bucket: "STRING_VALUE", // required * Key: "STRING_VALUE", // required * VersionId: "STRING_VALUE", * RequestPayer: "requester", * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new GetObjectAclCommand(input); * const response = await client.send(command); * // { // GetObjectAclOutput * // Owner: { // Owner * // DisplayName: "STRING_VALUE", * // ID: "STRING_VALUE", * // }, * // Grants: [ // Grants * // { // Grant * // Grantee: { // Grantee * // DisplayName: "STRING_VALUE", * // EmailAddress: "STRING_VALUE", * // ID: "STRING_VALUE", * // URI: "STRING_VALUE", * // Type: "CanonicalUser" || "AmazonCustomerByEmail" || "Group", // required * // }, * // Permission: "FULL_CONTROL" || "WRITE" || "WRITE_ACP" || "READ" || "READ_ACP", * // }, * // ], * // RequestCharged: "requester", * // }; * * ``` * * @param GetObjectAclCommandInput - {@link GetObjectAclCommandInput} * @returns {@link GetObjectAclCommandOutput} * @see {@link GetObjectAclCommandInput} for command's `input` shape. * @see {@link GetObjectAclCommandOutput} 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.

* * @throws {@link S3ServiceException} *

Base exception class for all service exceptions from S3 service.

* * * @example To retrieve object ACL * ```javascript * // The following example retrieves access control list (ACL) of an object. * const input = { * Bucket: "examplebucket", * Key: "HappyFace.jpg" * }; * const command = new GetObjectAclCommand(input); * const response = await client.send(command); * /* response is * { * Grants: [ * { * Grantee: { * DisplayName: "owner-display-name", * ID: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", * Type: "CanonicalUser" * }, * Permission: "WRITE" * }, * { * Grantee: { * DisplayName: "owner-display-name", * ID: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", * Type: "CanonicalUser" * }, * Permission: "WRITE_ACP" * }, * { * Grantee: { * DisplayName: "owner-display-name", * ID: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", * Type: "CanonicalUser" * }, * Permission: "READ" * }, * { * Grantee: { * DisplayName: "owner-display-name", * ID: "852b113eexamplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc", * Type: "CanonicalUser" * }, * Permission: "READ_ACP" * } * ], * Owner: { * DisplayName: "owner-display-name", * ID: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" * } * } * *\/ * ``` * * @public */ export declare class GetObjectAclCommand extends GetObjectAclCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: GetObjectAclRequest; output: GetObjectAclOutput; }; sdk: { input: GetObjectAclCommandInput; output: GetObjectAclCommandOutput; }; }; }