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 { DeleteObjectOutput, DeleteObjectRequest } from "../models/models_0"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public * * The input for {@link DeleteObjectCommand}. */ export interface DeleteObjectCommandInput extends DeleteObjectRequest { } /** * @public * * The output of {@link DeleteObjectCommand}. */ export interface DeleteObjectCommandOutput extends DeleteObjectOutput, __MetadataBearer { } /** * @public *

Removes the null version (if there is one) of an object and inserts a delete marker, * which becomes the latest version of the object. If there isn't a null version, Amazon S3 does * not remove any objects but will still respond that the command was successful.

*

To remove a specific version, you must be the bucket owner and you must use the version * Id subresource. Using this subresource permanently deletes the version. If the object * deleted is a delete marker, Amazon S3 sets the response header, * x-amz-delete-marker, to true.

*

If the object you want to delete is in a bucket where the bucket versioning * configuration is MFA Delete enabled, you must include the x-amz-mfa request * header in the DELETE versionId request. Requests that include * x-amz-mfa must use HTTPS.

*

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

*

You can delete objects by explicitly calling DELETE Object or configure its * lifecycle (PutBucketLifecycle) to * enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or * deleting objects from your bucket, you must deny them the s3:DeleteObject, * s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration * actions.

*

The following action is related to DeleteObject:

* * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, DeleteObjectCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, DeleteObjectCommand } = require("@aws-sdk/client-s3"); // CommonJS import * const client = new S3Client(config); * const input = { // DeleteObjectRequest * Bucket: "STRING_VALUE", // required * Key: "STRING_VALUE", // required * MFA: "STRING_VALUE", * VersionId: "STRING_VALUE", * RequestPayer: "requester", * BypassGovernanceRetention: true || false, * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new DeleteObjectCommand(input); * const response = await client.send(command); * ``` * * @param DeleteObjectCommandInput - {@link DeleteObjectCommandInput} * @returns {@link DeleteObjectCommandOutput} * @see {@link DeleteObjectCommandInput} for command's `input` shape. * @see {@link DeleteObjectCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * * @example To delete an object (from a non-versioned bucket) * ```javascript * // The following example deletes an object from a non-versioned bucket. * const input = { * "Bucket": "ExampleBucket", * "Key": "HappyFace.jpg" * }; * const command = new DeleteObjectCommand(input); * await client.send(command); * // example id: to-delete-an-object-from-a-non-versioned-bucket-1481588533089 * ``` * * @example To delete an object * ```javascript * // The following example deletes an object from an S3 bucket. * const input = { * "Bucket": "examplebucket", * "Key": "objectkey.jpg" * }; * const command = new DeleteObjectCommand(input); * await client.send(command); * // example id: to-delete-an-object-1472850136595 * ``` * */ export declare class DeleteObjectCommand extends $Command { readonly input: DeleteObjectCommandInput; static getEndpointParameterInstructions(): EndpointParameterInstructions; /** * @public */ constructor(input: DeleteObjectCommandInput); /** * @internal */ resolveMiddleware(clientStack: MiddlewareStack, configuration: S3ClientResolvedConfig, options?: __HttpHandlerOptions): Handler; /** * @internal */ private serialize; /** * @internal */ private deserialize; }