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

This operation is not supported for directory buckets.

*
*

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this * operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information * about Amazon S3 permissions, see Specifying Permissions in a * Policy.

* *

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an * object, it checks the PublicAccessBlock configuration for both the bucket (or * the bucket that contains the object) and the bucket owner's account. Account-level settings * automatically inherit from organization-level policies when present. If the * PublicAccessBlock configurations are different between the bucket and the * account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level * settings.

*
*

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of "Public".

*

The following operations are related to PutPublicAccessBlock:

* * *

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, PutPublicAccessBlockCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, PutPublicAccessBlockCommand } = 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 = { // PutPublicAccessBlockRequest * Bucket: "STRING_VALUE", // required * ContentMD5: "STRING_VALUE", * ChecksumAlgorithm: "CRC32" || "CRC32C" || "SHA1" || "SHA256" || "CRC64NVME", * PublicAccessBlockConfiguration: { // PublicAccessBlockConfiguration * BlockPublicAcls: true || false, * IgnorePublicAcls: true || false, * BlockPublicPolicy: true || false, * RestrictPublicBuckets: true || false, * }, * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new PutPublicAccessBlockCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param PutPublicAccessBlockCommandInput - {@link PutPublicAccessBlockCommandInput} * @returns {@link PutPublicAccessBlockCommandOutput} * @see {@link PutPublicAccessBlockCommandInput} for command's `input` shape. * @see {@link PutPublicAccessBlockCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * @throws {@link S3ServiceException} *

Base exception class for all service exceptions from S3 service.

* * * @public */ export declare class PutPublicAccessBlockCommand extends PutPublicAccessBlockCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PutPublicAccessBlockRequest; output: {}; }; sdk: { input: PutPublicAccessBlockCommandInput; output: PutPublicAccessBlockCommandOutput; }; }; }