import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { StartExpenseAnalysisRequest, StartExpenseAnalysisResponse } from "../models/models_0"; import { ServiceInputTypes, ServiceOutputTypes, TextractClientResolvedConfig } from "../TextractClient"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link StartExpenseAnalysisCommand}. */ export interface StartExpenseAnalysisCommandInput extends StartExpenseAnalysisRequest { } /** * @public * * The output of {@link StartExpenseAnalysisCommand}. */ export interface StartExpenseAnalysisCommandOutput extends StartExpenseAnalysisResponse, __MetadataBearer { } declare const StartExpenseAnalysisCommand_base: { new (input: StartExpenseAnalysisCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: StartExpenseAnalysisCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Starts the asynchronous analysis of invoices or receipts for data like contact information, * items purchased, and vendor names.

*

* StartExpenseAnalysis can analyze text in documents that are in JPEG, PNG, and * PDF format. The documents must be stored in an Amazon S3 bucket. Use the DocumentLocation parameter to specify the name of your S3 bucket and the name of the * document in that bucket.

*

* StartExpenseAnalysis returns a job identifier (JobId) that you * will provide to GetExpenseAnalysis to retrieve the results of the operation. When * the analysis of the input invoices/receipts is finished, Amazon Textract publishes a completion * status to the Amazon Simple Notification Service (Amazon SNS) topic that you provide to the NotificationChannel. * To obtain the results of the invoice and receipt analysis operation, ensure that the status value * published to the Amazon SNS topic is SUCCEEDED. If so, call GetExpenseAnalysis, and pass the job identifier (JobId) that was * returned by your call to StartExpenseAnalysis.

*

For more information, see Analyzing Invoices and Receipts.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { TextractClient, StartExpenseAnalysisCommand } from "@aws-sdk/client-textract"; // ES Modules import * // const { TextractClient, StartExpenseAnalysisCommand } = require("@aws-sdk/client-textract"); // CommonJS import * const client = new TextractClient(config); * const input = { // StartExpenseAnalysisRequest * DocumentLocation: { // DocumentLocation * S3Object: { // S3Object * Bucket: "STRING_VALUE", * Name: "STRING_VALUE", * Version: "STRING_VALUE", * }, * }, * ClientRequestToken: "STRING_VALUE", * JobTag: "STRING_VALUE", * NotificationChannel: { // NotificationChannel * SNSTopicArn: "STRING_VALUE", // required * RoleArn: "STRING_VALUE", // required * }, * OutputConfig: { // OutputConfig * S3Bucket: "STRING_VALUE", // required * S3Prefix: "STRING_VALUE", * }, * KMSKeyId: "STRING_VALUE", * }; * const command = new StartExpenseAnalysisCommand(input); * const response = await client.send(command); * // { // StartExpenseAnalysisResponse * // JobId: "STRING_VALUE", * // }; * * ``` * * @param StartExpenseAnalysisCommandInput - {@link StartExpenseAnalysisCommandInput} * @returns {@link StartExpenseAnalysisCommandOutput} * @see {@link StartExpenseAnalysisCommandInput} for command's `input` shape. * @see {@link StartExpenseAnalysisCommandOutput} for command's `response` shape. * @see {@link TextractClientResolvedConfig | config} for TextractClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) *

You aren't authorized to perform the action. Use the Amazon Resource Name (ARN) * of an authorized user or IAM role to perform the operation.

* * @throws {@link BadDocumentException} (client fault) *

Amazon Textract isn't able to read the document. For more information on the document * limits in Amazon Textract, see limits.

* * @throws {@link DocumentTooLargeException} (client fault) *

The document can't be processed because it's too large. The maximum document size for * synchronous operations 10 MB. The maximum document size for asynchronous operations is 500 * MB for PDF files.

* * @throws {@link IdempotentParameterMismatchException} (client fault) *

A ClientRequestToken input parameter was reused with an operation, but at * least one of the other input parameters is different from the previous call to the * operation.

* * @throws {@link InternalServerError} (server fault) *

Amazon Textract experienced a service issue. Try your call again.

* * @throws {@link InvalidKMSKeyException} (client fault) *

Indicates you do not have decrypt permissions with the KMS key entered, or the KMS key * was entered incorrectly.

* * @throws {@link InvalidParameterException} (client fault) *

An input parameter violated a constraint. For example, in synchronous operations, * an InvalidParameterException exception occurs * when neither of the S3Object or Bytes values are supplied in the Document * request parameter. * Validate your parameter before calling the API operation again.

* * @throws {@link InvalidS3ObjectException} (client fault) *

Amazon Textract is unable to access the S3 object that's specified in the request. * for more information, Configure Access to Amazon S3 * For troubleshooting information, see Troubleshooting Amazon S3 *

* * @throws {@link LimitExceededException} (client fault) *

An Amazon Textract service limit was exceeded. For example, if you start too many * asynchronous jobs concurrently, calls to start operations * (StartDocumentTextDetection, for example) raise a LimitExceededException * exception (HTTP status code: 400) until the number of concurrently running jobs is below * the Amazon Textract service limit.

* * @throws {@link ProvisionedThroughputExceededException} (client fault) *

The number of requests exceeded your throughput limit. If you want to increase this limit, * contact Amazon Textract.

* * @throws {@link ThrottlingException} (server fault) *

Amazon Textract is temporarily unable to process the request. Try your call again.

* * @throws {@link UnsupportedDocumentException} (client fault) *

The format of the input document isn't supported. Documents for operations can be in * PNG, JPEG, PDF, or TIFF format.

* * @throws {@link TextractServiceException} *

Base exception class for all service exceptions from Textract service.

* * * @public */ export declare class StartExpenseAnalysisCommand extends StartExpenseAnalysisCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: StartExpenseAnalysisRequest; output: StartExpenseAnalysisResponse; }; sdk: { input: StartExpenseAnalysisCommandInput; output: StartExpenseAnalysisCommandOutput; }; }; }