import { DynamoDBClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBClient"; import { DeleteItemInput, DeleteItemOutput } from "../models/models_0"; import { deserializeAws_json1_0DeleteItemCommand, serializeAws_json1_0DeleteItemCommand, } from "../protocols/Aws_json1_0"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { FinalizeHandlerArguments, Handler, HandlerExecutionContext, MiddlewareStack, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, SerdeContext as __SerdeContext, } from "@aws-sdk/types"; export interface DeleteItemCommandInput extends DeleteItemInput {} export interface DeleteItemCommandOutput extends DeleteItemOutput, __MetadataBearer {} /** *
Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value.
*In addition to deleting an item, you can also return the item's attribute values in the same
* operation, using the ReturnValues parameter.
Unless you specify conditions, the DeleteItem is an idempotent operation; running it
* multiple times on the same item or attribute does not result in an error response.
Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { DynamoDBClient, DeleteItemCommand } from "@aws-sdk/client-dynamodb"; // ES Modules import * // const { DynamoDBClient, DeleteItemCommand } = require("@aws-sdk/client-dynamodb"); // CommonJS import * const client = new DynamoDBClient(config); * const command = new DeleteItemCommand(input); * const response = await client.send(command); * ``` * * @see {@link DeleteItemCommandInput} for command's `input` shape. * @see {@link DeleteItemCommandOutput} for command's `response` shape. * @see {@link DynamoDBClientResolvedConfig | config} for command's `input` shape. * */ export class DeleteItemCommand extends $Command< DeleteItemCommandInput, DeleteItemCommandOutput, DynamoDBClientResolvedConfig > { // Start section: command_properties // End section: command_properties constructor(readonly input: DeleteItemCommandInput) { // Start section: command_constructor super(); // End section: command_constructor } /** * @internal */ resolveMiddleware( clientStack: MiddlewareStack