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

This operation is not supported for directory buckets.

*
*

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock * configuration will be applied by default to every new object placed in the specified bucket. For more * information, see Locking * Objects.

* *
    *
  • *

    The DefaultRetention settings require both a mode and a period.

    *
  • *
  • *

    The DefaultRetention period can be either Days or Years * but you must select one. You cannot specify Days and Years at the same * time.

    *
  • *
  • *

    You can enable Object Lock for new or existing buckets. For more information, see Configuring * Object Lock.

    *
  • *
*
* *

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, PutObjectLockConfigurationCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, PutObjectLockConfigurationCommand } = 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 = { // PutObjectLockConfigurationRequest * Bucket: "STRING_VALUE", // required * ObjectLockConfiguration: { // ObjectLockConfiguration * ObjectLockEnabled: "Enabled", * Rule: { // ObjectLockRule * DefaultRetention: { // DefaultRetention * Mode: "GOVERNANCE" || "COMPLIANCE", * Days: Number("int"), * Years: Number("int"), * }, * }, * }, * RequestPayer: "requester", * Token: "STRING_VALUE", * ContentMD5: "STRING_VALUE", * ChecksumAlgorithm: "CRC32" || "CRC32C" || "SHA1" || "SHA256" || "CRC64NVME", * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new PutObjectLockConfigurationCommand(input); * const response = await client.send(command); * // { // PutObjectLockConfigurationOutput * // RequestCharged: "requester", * // }; * * ``` * * @param PutObjectLockConfigurationCommandInput - {@link PutObjectLockConfigurationCommandInput} * @returns {@link PutObjectLockConfigurationCommandOutput} * @see {@link PutObjectLockConfigurationCommandInput} for command's `input` shape. * @see {@link PutObjectLockConfigurationCommandOutput} 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 PutObjectLockConfigurationCommand extends PutObjectLockConfigurationCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PutObjectLockConfigurationRequest; output: PutObjectLockConfigurationOutput; }; sdk: { input: PutObjectLockConfigurationCommandInput; output: PutObjectLockConfigurationCommandOutput; }; }; }