aws-sdk-textract 1.29.0 → 1.30.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21745a57da0d542599a55a2e970fe622d03aab5ca36a68beefeba1d646742e77
4
- data.tar.gz: cc8f2bd26c1e1d5abd46f3a713127ca33422feb9a553c4ce82412d702d5c60a1
3
+ metadata.gz: 3d0b690ceb075951b6884a12dbc959fc4a2afc3e3b0c8b15fc7963e05ade796b
4
+ data.tar.gz: 40c09ec33575d5a86cd59b5e09b1b52030dc9e5eafc92dcd90e29b40056f05fb
5
5
  SHA512:
6
- metadata.gz: b160a4d857d91a1b33251482cf1a40e7b1a09cf353144e39f28c848d2a6e58ea03cf8cafd2d5bea67f274ee27fc0c3135bbef81ffd1a759213704bc071ad3858
7
- data.tar.gz: 6fe0cef5fd5d1bc68eab3bfdf4bcb00122f55362e7852488c641bb374cbb7eef7e397881df6d66fdf6c3cb9679b37e284146f1d860ae8be58bf858d10b9af33d
6
+ metadata.gz: 92c046737672802cee1e2dcccc6e80d6180cea52c238eebe05d739fda4b5e2328e630ab8c4f0591d1e2aa6ad6c659f1fca7a7242f12e17bb852bbd774fe600e2
7
+ data.tar.gz: 7a869aae95ad4de28aab94f48ada58412d8d1ea0e60c05b346c2ead09f38dec11106adb72a86f1bf2b1d5aedc2cf04a36479442fc4def931e3df3de010e982d9
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.30.0 (2021-10-27)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for asynchronously analyzing invoice and receipt documents through two new APIs: StartExpenseAnalysis and GetExpenseAnalysis
8
+
4
9
  1.29.0 (2021-10-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.29.0
1
+ 1.30.0
@@ -922,14 +922,148 @@ module Aws::Textract
922
922
  req.send_request(options)
923
923
  end
924
924
 
925
+ # Gets the results for an Amazon Textract asynchronous operation that
926
+ # analyzes invoices and receipts. Amazon Textract finds contact
927
+ # information, items purchased, and vendor name, from input invoices and
928
+ # receipts.
929
+ #
930
+ # You start asynchronous invoice/receipt analysis by calling
931
+ # StartExpenseAnalysis, which returns a job identifier (`JobId`). Upon
932
+ # completion of the invoice/receipt analysis, Amazon Textract publishes
933
+ # the completion status to the Amazon Simple Notification Service
934
+ # (Amazon SNS) topic. This topic must be registered in the initial call
935
+ # to `StartExpenseAnalysis`. To get the results of the invoice/receipt
936
+ # analysis operation, first ensure that the status value published to
937
+ # the Amazon SNS topic is `SUCCEEDED`. If so, call `GetExpenseAnalysis`,
938
+ # and pass the job identifier (`JobId`) from the initial call to
939
+ # `StartExpenseAnalysis`.
940
+ #
941
+ # Use the MaxResults parameter to limit the number of blocks that are
942
+ # returned. If there are more results than specified in `MaxResults`,
943
+ # the value of `NextToken` in the operation response contains a
944
+ # pagination token for getting the next set of results. To get the next
945
+ # page of results, call `GetExpenseAnalysis`, and populate the
946
+ # `NextToken` request parameter with the token value that's returned
947
+ # from the previous call to `GetExpenseAnalysis`.
948
+ #
949
+ # For more information, see [Analyzing Invoices and Receipts][1].
950
+ #
951
+ #
952
+ #
953
+ # [1]: https://docs.aws.amazon.com/textract/latest/dg/invoices-receipts.html
954
+ #
955
+ # @option params [required, String] :job_id
956
+ # A unique identifier for the text detection job. The `JobId` is
957
+ # returned from `StartExpenseAnalysis`. A `JobId` value is only valid
958
+ # for 7 days.
959
+ #
960
+ # @option params [Integer] :max_results
961
+ # The maximum number of results to return per paginated call. The
962
+ # largest value you can specify is 20. If you specify a value greater
963
+ # than 20, a maximum of 20 results is returned. The default value is 20.
964
+ #
965
+ # @option params [String] :next_token
966
+ # If the previous response was incomplete (because there are more blocks
967
+ # to retrieve), Amazon Textract returns a pagination token in the
968
+ # response. You can use this pagination token to retrieve the next set
969
+ # of blocks.
970
+ #
971
+ # @return [Types::GetExpenseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
972
+ #
973
+ # * {Types::GetExpenseAnalysisResponse#document_metadata #document_metadata} => Types::DocumentMetadata
974
+ # * {Types::GetExpenseAnalysisResponse#job_status #job_status} => String
975
+ # * {Types::GetExpenseAnalysisResponse#next_token #next_token} => String
976
+ # * {Types::GetExpenseAnalysisResponse#expense_documents #expense_documents} => Array<Types::ExpenseDocument>
977
+ # * {Types::GetExpenseAnalysisResponse#warnings #warnings} => Array<Types::Warning>
978
+ # * {Types::GetExpenseAnalysisResponse#status_message #status_message} => String
979
+ # * {Types::GetExpenseAnalysisResponse#analyze_expense_model_version #analyze_expense_model_version} => String
980
+ #
981
+ # @example Request syntax with placeholder values
982
+ #
983
+ # resp = client.get_expense_analysis({
984
+ # job_id: "JobId", # required
985
+ # max_results: 1,
986
+ # next_token: "PaginationToken",
987
+ # })
988
+ #
989
+ # @example Response structure
990
+ #
991
+ # resp.document_metadata.pages #=> Integer
992
+ # resp.job_status #=> String, one of "IN_PROGRESS", "SUCCEEDED", "FAILED", "PARTIAL_SUCCESS"
993
+ # resp.next_token #=> String
994
+ # resp.expense_documents #=> Array
995
+ # resp.expense_documents[0].expense_index #=> Integer
996
+ # resp.expense_documents[0].summary_fields #=> Array
997
+ # resp.expense_documents[0].summary_fields[0].type.text #=> String
998
+ # resp.expense_documents[0].summary_fields[0].type.confidence #=> Float
999
+ # resp.expense_documents[0].summary_fields[0].label_detection.text #=> String
1000
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.bounding_box.width #=> Float
1001
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.bounding_box.height #=> Float
1002
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.bounding_box.left #=> Float
1003
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.bounding_box.top #=> Float
1004
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.polygon #=> Array
1005
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.polygon[0].x #=> Float
1006
+ # resp.expense_documents[0].summary_fields[0].label_detection.geometry.polygon[0].y #=> Float
1007
+ # resp.expense_documents[0].summary_fields[0].label_detection.confidence #=> Float
1008
+ # resp.expense_documents[0].summary_fields[0].value_detection.text #=> String
1009
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.bounding_box.width #=> Float
1010
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.bounding_box.height #=> Float
1011
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.bounding_box.left #=> Float
1012
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.bounding_box.top #=> Float
1013
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.polygon #=> Array
1014
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.polygon[0].x #=> Float
1015
+ # resp.expense_documents[0].summary_fields[0].value_detection.geometry.polygon[0].y #=> Float
1016
+ # resp.expense_documents[0].summary_fields[0].value_detection.confidence #=> Float
1017
+ # resp.expense_documents[0].summary_fields[0].page_number #=> Integer
1018
+ # resp.expense_documents[0].line_item_groups #=> Array
1019
+ # resp.expense_documents[0].line_item_groups[0].line_item_group_index #=> Integer
1020
+ # resp.expense_documents[0].line_item_groups[0].line_items #=> Array
1021
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields #=> Array
1022
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].type.text #=> String
1023
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].type.confidence #=> Float
1024
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.text #=> String
1025
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.bounding_box.width #=> Float
1026
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.bounding_box.height #=> Float
1027
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.bounding_box.left #=> Float
1028
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.bounding_box.top #=> Float
1029
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.polygon #=> Array
1030
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.polygon[0].x #=> Float
1031
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.geometry.polygon[0].y #=> Float
1032
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].label_detection.confidence #=> Float
1033
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.text #=> String
1034
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.bounding_box.width #=> Float
1035
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.bounding_box.height #=> Float
1036
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.bounding_box.left #=> Float
1037
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.bounding_box.top #=> Float
1038
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.polygon #=> Array
1039
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.polygon[0].x #=> Float
1040
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.geometry.polygon[0].y #=> Float
1041
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].value_detection.confidence #=> Float
1042
+ # resp.expense_documents[0].line_item_groups[0].line_items[0].line_item_expense_fields[0].page_number #=> Integer
1043
+ # resp.warnings #=> Array
1044
+ # resp.warnings[0].error_code #=> String
1045
+ # resp.warnings[0].pages #=> Array
1046
+ # resp.warnings[0].pages[0] #=> Integer
1047
+ # resp.status_message #=> String
1048
+ # resp.analyze_expense_model_version #=> String
1049
+ #
1050
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/GetExpenseAnalysis AWS API Documentation
1051
+ #
1052
+ # @overload get_expense_analysis(params = {})
1053
+ # @param [Hash] params ({})
1054
+ def get_expense_analysis(params = {}, options = {})
1055
+ req = build_request(:get_expense_analysis, params)
1056
+ req.send_request(options)
1057
+ end
1058
+
925
1059
  # Starts the asynchronous analysis of an input document for
926
1060
  # relationships between detected items such as key-value pairs, tables,
927
1061
  # and selection elements.
928
1062
  #
929
1063
  # `StartDocumentAnalysis` can analyze text in documents that are in
930
- # JPEG, PNG, and PDF format. The documents are stored in an Amazon S3
931
- # bucket. Use DocumentLocation to specify the bucket name and file name
932
- # of the document.
1064
+ # JPEG, PNG, TIFF, and PDF format. The documents are stored in an Amazon
1065
+ # S3 bucket. Use DocumentLocation to specify the bucket name and file
1066
+ # name of the document.
933
1067
  #
934
1068
  # `StartDocumentAnalysis` returns a job identifier (`JobId`) that you
935
1069
  # use to get the results of the operation. When text analysis is
@@ -1037,9 +1171,9 @@ module Aws::Textract
1037
1171
  # text.
1038
1172
  #
1039
1173
  # `StartDocumentTextDetection` can analyze text in documents that are in
1040
- # JPEG, PNG, and PDF format. The documents are stored in an Amazon S3
1041
- # bucket. Use DocumentLocation to specify the bucket name and file name
1042
- # of the document.
1174
+ # JPEG, PNG, TIFF, and PDF format. The documents are stored in an Amazon
1175
+ # S3 bucket. Use DocumentLocation to specify the bucket name and file
1176
+ # name of the document.
1043
1177
  #
1044
1178
  # `StartTextDetection` returns a job identifier (`JobId`) that you use
1045
1179
  # to get the results of the operation. When text detection is finished,
@@ -1134,6 +1268,108 @@ module Aws::Textract
1134
1268
  req.send_request(options)
1135
1269
  end
1136
1270
 
1271
+ # Starts the asynchronous analysis of invoices or receipts for data like
1272
+ # contact information, items purchased, and vendor names.
1273
+ #
1274
+ # `StartExpenseAnalysis` can analyze text in documents that are in JPEG,
1275
+ # PNG, and PDF format. The documents must be stored in an Amazon S3
1276
+ # bucket. Use the DocumentLocation parameter to specify the name of your
1277
+ # S3 bucket and the name of the document in that bucket.
1278
+ #
1279
+ # `StartExpenseAnalysis` returns a job identifier (`JobId`) that you
1280
+ # will provide to `GetExpenseAnalysis` to retrieve the results of the
1281
+ # operation. When the analysis of the input invoices/receipts is
1282
+ # finished, Amazon Textract publishes a completion status to the Amazon
1283
+ # Simple Notification Service (Amazon SNS) topic that you provide to the
1284
+ # `NotificationChannel`. To obtain the results of the invoice and
1285
+ # receipt analysis operation, ensure that the status value published to
1286
+ # the Amazon SNS topic is `SUCCEEDED`. If so, call GetExpenseAnalysis,
1287
+ # and pass the job identifier (`JobId`) that was returned by your call
1288
+ # to `StartExpenseAnalysis`.
1289
+ #
1290
+ # For more information, see [Analyzing Invoices and Receipts][1].
1291
+ #
1292
+ #
1293
+ #
1294
+ # [1]: https://docs.aws.amazon.com/textract/latest/dg/invoice-receipts.html
1295
+ #
1296
+ # @option params [required, Types::DocumentLocation] :document_location
1297
+ # The location of the document to be processed.
1298
+ #
1299
+ # @option params [String] :client_request_token
1300
+ # The idempotent token that's used to identify the start request. If
1301
+ # you use the same token with multiple `StartDocumentTextDetection`
1302
+ # requests, the same `JobId` is returned. Use `ClientRequestToken` to
1303
+ # prevent the same job from being accidentally started more than once.
1304
+ # For more information, see [Calling Amazon Textract Asynchronous
1305
+ # Operations][1]
1306
+ #
1307
+ #
1308
+ #
1309
+ # [1]: https://docs.aws.amazon.com/textract/latest/dg/api-async.html
1310
+ #
1311
+ # @option params [String] :job_tag
1312
+ # An identifier you specify that's included in the completion
1313
+ # notification published to the Amazon SNS topic. For example, you can
1314
+ # use `JobTag` to identify the type of document that the completion
1315
+ # notification corresponds to (such as a tax form or a receipt).
1316
+ #
1317
+ # @option params [Types::NotificationChannel] :notification_channel
1318
+ # The Amazon SNS topic ARN that you want Amazon Textract to publish the
1319
+ # completion status of the operation to.
1320
+ #
1321
+ # @option params [Types::OutputConfig] :output_config
1322
+ # Sets if the output will go to a customer defined bucket. By default,
1323
+ # Amazon Textract will save the results internally to be accessed by the
1324
+ # `GetExpenseAnalysis` operation.
1325
+ #
1326
+ # @option params [String] :kms_key_id
1327
+ # The KMS key used to encrypt the inference results. This can be in
1328
+ # either Key ID or Key Alias format. When a KMS key is provided, the KMS
1329
+ # key will be used for server-side encryption of the objects in the
1330
+ # customer bucket. When this parameter is not enabled, the result will
1331
+ # be encrypted server side,using SSE-S3.
1332
+ #
1333
+ # @return [Types::StartExpenseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1334
+ #
1335
+ # * {Types::StartExpenseAnalysisResponse#job_id #job_id} => String
1336
+ #
1337
+ # @example Request syntax with placeholder values
1338
+ #
1339
+ # resp = client.start_expense_analysis({
1340
+ # document_location: { # required
1341
+ # s3_object: {
1342
+ # bucket: "S3Bucket",
1343
+ # name: "S3ObjectName",
1344
+ # version: "S3ObjectVersion",
1345
+ # },
1346
+ # },
1347
+ # client_request_token: "ClientRequestToken",
1348
+ # job_tag: "JobTag",
1349
+ # notification_channel: {
1350
+ # sns_topic_arn: "SNSTopicArn", # required
1351
+ # role_arn: "RoleArn", # required
1352
+ # },
1353
+ # output_config: {
1354
+ # s3_bucket: "S3Bucket", # required
1355
+ # s3_prefix: "S3ObjectName",
1356
+ # },
1357
+ # kms_key_id: "KMSKeyId",
1358
+ # })
1359
+ #
1360
+ # @example Response structure
1361
+ #
1362
+ # resp.job_id #=> String
1363
+ #
1364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/StartExpenseAnalysis AWS API Documentation
1365
+ #
1366
+ # @overload start_expense_analysis(params = {})
1367
+ # @param [Hash] params ({})
1368
+ def start_expense_analysis(params = {}, options = {})
1369
+ req = build_request(:start_expense_analysis, params)
1370
+ req.send_request(options)
1371
+ end
1372
+
1137
1373
  # @!endgroup
1138
1374
 
1139
1375
  # @param params ({})
@@ -1147,7 +1383,7 @@ module Aws::Textract
1147
1383
  params: params,
1148
1384
  config: config)
1149
1385
  context[:gem_name] = 'aws-sdk-textract'
1150
- context[:gem_version] = '1.29.0'
1386
+ context[:gem_version] = '1.30.0'
1151
1387
  Seahorse::Client::Request.new(handlers, context)
1152
1388
  end
1153
1389
 
@@ -50,6 +50,8 @@ module Aws::Textract
50
50
  GetDocumentAnalysisResponse = Shapes::StructureShape.new(name: 'GetDocumentAnalysisResponse')
51
51
  GetDocumentTextDetectionRequest = Shapes::StructureShape.new(name: 'GetDocumentTextDetectionRequest')
52
52
  GetDocumentTextDetectionResponse = Shapes::StructureShape.new(name: 'GetDocumentTextDetectionResponse')
53
+ GetExpenseAnalysisRequest = Shapes::StructureShape.new(name: 'GetExpenseAnalysisRequest')
54
+ GetExpenseAnalysisResponse = Shapes::StructureShape.new(name: 'GetExpenseAnalysisResponse')
53
55
  HumanLoopActivationConditionsEvaluationResults = Shapes::StringShape.new(name: 'HumanLoopActivationConditionsEvaluationResults')
54
56
  HumanLoopActivationOutput = Shapes::StructureShape.new(name: 'HumanLoopActivationOutput')
55
57
  HumanLoopActivationReason = Shapes::StringShape.new(name: 'HumanLoopActivationReason')
@@ -100,6 +102,8 @@ module Aws::Textract
100
102
  StartDocumentAnalysisResponse = Shapes::StructureShape.new(name: 'StartDocumentAnalysisResponse')
101
103
  StartDocumentTextDetectionRequest = Shapes::StructureShape.new(name: 'StartDocumentTextDetectionRequest')
102
104
  StartDocumentTextDetectionResponse = Shapes::StructureShape.new(name: 'StartDocumentTextDetectionResponse')
105
+ StartExpenseAnalysisRequest = Shapes::StructureShape.new(name: 'StartExpenseAnalysisRequest')
106
+ StartExpenseAnalysisResponse = Shapes::StructureShape.new(name: 'StartExpenseAnalysisResponse')
103
107
  StatusMessage = Shapes::StringShape.new(name: 'StatusMessage')
104
108
  String = Shapes::StringShape.new(name: 'String')
105
109
  TextType = Shapes::StringShape.new(name: 'TextType')
@@ -237,6 +241,20 @@ module Aws::Textract
237
241
  GetDocumentTextDetectionResponse.add_member(:detect_document_text_model_version, Shapes::ShapeRef.new(shape: String, location_name: "DetectDocumentTextModelVersion"))
238
242
  GetDocumentTextDetectionResponse.struct_class = Types::GetDocumentTextDetectionResponse
239
243
 
244
+ GetExpenseAnalysisRequest.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, required: true, location_name: "JobId"))
245
+ GetExpenseAnalysisRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
246
+ GetExpenseAnalysisRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
247
+ GetExpenseAnalysisRequest.struct_class = Types::GetExpenseAnalysisRequest
248
+
249
+ GetExpenseAnalysisResponse.add_member(:document_metadata, Shapes::ShapeRef.new(shape: DocumentMetadata, location_name: "DocumentMetadata"))
250
+ GetExpenseAnalysisResponse.add_member(:job_status, Shapes::ShapeRef.new(shape: JobStatus, location_name: "JobStatus"))
251
+ GetExpenseAnalysisResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
252
+ GetExpenseAnalysisResponse.add_member(:expense_documents, Shapes::ShapeRef.new(shape: ExpenseDocumentList, location_name: "ExpenseDocuments"))
253
+ GetExpenseAnalysisResponse.add_member(:warnings, Shapes::ShapeRef.new(shape: Warnings, location_name: "Warnings"))
254
+ GetExpenseAnalysisResponse.add_member(:status_message, Shapes::ShapeRef.new(shape: StatusMessage, location_name: "StatusMessage"))
255
+ GetExpenseAnalysisResponse.add_member(:analyze_expense_model_version, Shapes::ShapeRef.new(shape: String, location_name: "AnalyzeExpenseModelVersion"))
256
+ GetExpenseAnalysisResponse.struct_class = Types::GetExpenseAnalysisResponse
257
+
240
258
  HumanLoopActivationOutput.add_member(:human_loop_arn, Shapes::ShapeRef.new(shape: HumanLoopArn, location_name: "HumanLoopArn"))
241
259
  HumanLoopActivationOutput.add_member(:human_loop_activation_reasons, Shapes::ShapeRef.new(shape: HumanLoopActivationReasons, location_name: "HumanLoopActivationReasons"))
242
260
  HumanLoopActivationOutput.add_member(:human_loop_activation_conditions_evaluation_results, Shapes::ShapeRef.new(shape: HumanLoopActivationConditionsEvaluationResults, location_name: "HumanLoopActivationConditionsEvaluationResults", metadata: {"jsonvalue"=>true}))
@@ -336,6 +354,17 @@ module Aws::Textract
336
354
  StartDocumentTextDetectionResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "JobId"))
337
355
  StartDocumentTextDetectionResponse.struct_class = Types::StartDocumentTextDetectionResponse
338
356
 
357
+ StartExpenseAnalysisRequest.add_member(:document_location, Shapes::ShapeRef.new(shape: DocumentLocation, required: true, location_name: "DocumentLocation"))
358
+ StartExpenseAnalysisRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
359
+ StartExpenseAnalysisRequest.add_member(:job_tag, Shapes::ShapeRef.new(shape: JobTag, location_name: "JobTag"))
360
+ StartExpenseAnalysisRequest.add_member(:notification_channel, Shapes::ShapeRef.new(shape: NotificationChannel, location_name: "NotificationChannel"))
361
+ StartExpenseAnalysisRequest.add_member(:output_config, Shapes::ShapeRef.new(shape: OutputConfig, location_name: "OutputConfig"))
362
+ StartExpenseAnalysisRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KMSKeyId, location_name: "KMSKeyId"))
363
+ StartExpenseAnalysisRequest.struct_class = Types::StartExpenseAnalysisRequest
364
+
365
+ StartExpenseAnalysisResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "JobId"))
366
+ StartExpenseAnalysisResponse.struct_class = Types::StartExpenseAnalysisResponse
367
+
339
368
  ThrottlingException.struct_class = Types::ThrottlingException
340
369
 
341
370
  UnsupportedDocumentException.struct_class = Types::UnsupportedDocumentException
@@ -448,6 +477,22 @@ module Aws::Textract
448
477
  o.errors << Shapes::ShapeRef.new(shape: InvalidKMSKeyException)
449
478
  end)
450
479
 
480
+ api.add_operation(:get_expense_analysis, Seahorse::Model::Operation.new.tap do |o|
481
+ o.name = "GetExpenseAnalysis"
482
+ o.http_method = "POST"
483
+ o.http_request_uri = "/"
484
+ o.input = Shapes::ShapeRef.new(shape: GetExpenseAnalysisRequest)
485
+ o.output = Shapes::ShapeRef.new(shape: GetExpenseAnalysisResponse)
486
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
487
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
488
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
489
+ o.errors << Shapes::ShapeRef.new(shape: InvalidJobIdException)
490
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
491
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
492
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3ObjectException)
493
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSKeyException)
494
+ end)
495
+
451
496
  api.add_operation(:start_document_analysis, Seahorse::Model::Operation.new.tap do |o|
452
497
  o.name = "StartDocumentAnalysis"
453
498
  o.http_method = "POST"
@@ -487,6 +532,26 @@ module Aws::Textract
487
532
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
488
533
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
489
534
  end)
535
+
536
+ api.add_operation(:start_expense_analysis, Seahorse::Model::Operation.new.tap do |o|
537
+ o.name = "StartExpenseAnalysis"
538
+ o.http_method = "POST"
539
+ o.http_request_uri = "/"
540
+ o.input = Shapes::ShapeRef.new(shape: StartExpenseAnalysisRequest)
541
+ o.output = Shapes::ShapeRef.new(shape: StartExpenseAnalysisResponse)
542
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
543
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3ObjectException)
544
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSKeyException)
545
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedDocumentException)
546
+ o.errors << Shapes::ShapeRef.new(shape: DocumentTooLargeException)
547
+ o.errors << Shapes::ShapeRef.new(shape: BadDocumentException)
548
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
549
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
550
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
551
+ o.errors << Shapes::ShapeRef.new(shape: IdempotentParameterMismatchException)
552
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
553
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
554
+ end)
490
555
  end
491
556
 
492
557
  end
@@ -322,11 +322,12 @@ module Aws::Textract
322
322
  # @!attribute [rw] page
323
323
  # The page on which a block was detected. `Page` is returned by
324
324
  # asynchronous operations. Page values greater than 1 are only
325
- # returned for multipage documents that are in PDF format. A scanned
326
- # image (JPEG/PNG), even if it contains multiple document pages, is
327
- # considered to be a single-page document. The value of `Page` is
328
- # always 1. Synchronous operations don't return `Page` because every
329
- # input document is considered to be a single-page document.
325
+ # returned for multipage documents that are in PDF or TIFF format. A
326
+ # scanned image (JPEG/PNG), even if it contains multiple document
327
+ # pages, is considered to be a single-page document. The value of
328
+ # `Page` is always 1. Synchronous operations don't return `Page`
329
+ # because every input document is considered to be a single-page
330
+ # document.
330
331
  # @return [Integer]
331
332
  #
332
333
  # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/Block AWS API Documentation
@@ -864,6 +865,93 @@ module Aws::Textract
864
865
  include Aws::Structure
865
866
  end
866
867
 
868
+ # @note When making an API call, you may pass GetExpenseAnalysisRequest
869
+ # data as a hash:
870
+ #
871
+ # {
872
+ # job_id: "JobId", # required
873
+ # max_results: 1,
874
+ # next_token: "PaginationToken",
875
+ # }
876
+ #
877
+ # @!attribute [rw] job_id
878
+ # A unique identifier for the text detection job. The `JobId` is
879
+ # returned from `StartExpenseAnalysis`. A `JobId` value is only valid
880
+ # for 7 days.
881
+ # @return [String]
882
+ #
883
+ # @!attribute [rw] max_results
884
+ # The maximum number of results to return per paginated call. The
885
+ # largest value you can specify is 20. If you specify a value greater
886
+ # than 20, a maximum of 20 results is returned. The default value is
887
+ # 20.
888
+ # @return [Integer]
889
+ #
890
+ # @!attribute [rw] next_token
891
+ # If the previous response was incomplete (because there are more
892
+ # blocks to retrieve), Amazon Textract returns a pagination token in
893
+ # the response. You can use this pagination token to retrieve the next
894
+ # set of blocks.
895
+ # @return [String]
896
+ #
897
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/GetExpenseAnalysisRequest AWS API Documentation
898
+ #
899
+ class GetExpenseAnalysisRequest < Struct.new(
900
+ :job_id,
901
+ :max_results,
902
+ :next_token)
903
+ SENSITIVE = []
904
+ include Aws::Structure
905
+ end
906
+
907
+ # @!attribute [rw] document_metadata
908
+ # Information about a document that Amazon Textract processed.
909
+ # `DocumentMetadata` is returned in every page of paginated responses
910
+ # from an Amazon Textract operation.
911
+ # @return [Types::DocumentMetadata]
912
+ #
913
+ # @!attribute [rw] job_status
914
+ # The current status of the text detection job.
915
+ # @return [String]
916
+ #
917
+ # @!attribute [rw] next_token
918
+ # If the response is truncated, Amazon Textract returns this token.
919
+ # You can use this token in the subsequent request to retrieve the
920
+ # next set of text-detection results.
921
+ # @return [String]
922
+ #
923
+ # @!attribute [rw] expense_documents
924
+ # The expenses detected by Amazon Textract.
925
+ # @return [Array<Types::ExpenseDocument>]
926
+ #
927
+ # @!attribute [rw] warnings
928
+ # A list of warnings that occurred during the text-detection operation
929
+ # for the document.
930
+ # @return [Array<Types::Warning>]
931
+ #
932
+ # @!attribute [rw] status_message
933
+ # Returns if the detection job could not be completed. Contains
934
+ # explanation for what error occured.
935
+ # @return [String]
936
+ #
937
+ # @!attribute [rw] analyze_expense_model_version
938
+ # The current model version of AnalyzeExpense.
939
+ # @return [String]
940
+ #
941
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/GetExpenseAnalysisResponse AWS API Documentation
942
+ #
943
+ class GetExpenseAnalysisResponse < Struct.new(
944
+ :document_metadata,
945
+ :job_status,
946
+ :next_token,
947
+ :expense_documents,
948
+ :warnings,
949
+ :status_message,
950
+ :analyze_expense_model_version)
951
+ SENSITIVE = []
952
+ include Aws::Structure
953
+ end
954
+
867
955
  # Shows the results of the human in the loop evaluation. If there is no
868
956
  # HumanLoopArn, the input did not trigger human review.
869
957
  #
@@ -1253,7 +1341,7 @@ module Aws::Textract
1253
1341
  # @!attribute [rw] name
1254
1342
  # The file name of the input document. Synchronous operations can use
1255
1343
  # image files that are in JPEG or PNG format. Asynchronous operations
1256
- # also support PDF format files.
1344
+ # also support PDF and TIFF format files.
1257
1345
  # @return [String]
1258
1346
  #
1259
1347
  # @!attribute [rw] version
@@ -1472,6 +1560,100 @@ module Aws::Textract
1472
1560
  include Aws::Structure
1473
1561
  end
1474
1562
 
1563
+ # @note When making an API call, you may pass StartExpenseAnalysisRequest
1564
+ # data as a hash:
1565
+ #
1566
+ # {
1567
+ # document_location: { # required
1568
+ # s3_object: {
1569
+ # bucket: "S3Bucket",
1570
+ # name: "S3ObjectName",
1571
+ # version: "S3ObjectVersion",
1572
+ # },
1573
+ # },
1574
+ # client_request_token: "ClientRequestToken",
1575
+ # job_tag: "JobTag",
1576
+ # notification_channel: {
1577
+ # sns_topic_arn: "SNSTopicArn", # required
1578
+ # role_arn: "RoleArn", # required
1579
+ # },
1580
+ # output_config: {
1581
+ # s3_bucket: "S3Bucket", # required
1582
+ # s3_prefix: "S3ObjectName",
1583
+ # },
1584
+ # kms_key_id: "KMSKeyId",
1585
+ # }
1586
+ #
1587
+ # @!attribute [rw] document_location
1588
+ # The location of the document to be processed.
1589
+ # @return [Types::DocumentLocation]
1590
+ #
1591
+ # @!attribute [rw] client_request_token
1592
+ # The idempotent token that's used to identify the start request. If
1593
+ # you use the same token with multiple `StartDocumentTextDetection`
1594
+ # requests, the same `JobId` is returned. Use `ClientRequestToken` to
1595
+ # prevent the same job from being accidentally started more than once.
1596
+ # For more information, see [Calling Amazon Textract Asynchronous
1597
+ # Operations][1]
1598
+ #
1599
+ #
1600
+ #
1601
+ # [1]: https://docs.aws.amazon.com/textract/latest/dg/api-async.html
1602
+ # @return [String]
1603
+ #
1604
+ # @!attribute [rw] job_tag
1605
+ # An identifier you specify that's included in the completion
1606
+ # notification published to the Amazon SNS topic. For example, you can
1607
+ # use `JobTag` to identify the type of document that the completion
1608
+ # notification corresponds to (such as a tax form or a receipt).
1609
+ # @return [String]
1610
+ #
1611
+ # @!attribute [rw] notification_channel
1612
+ # The Amazon SNS topic ARN that you want Amazon Textract to publish
1613
+ # the completion status of the operation to.
1614
+ # @return [Types::NotificationChannel]
1615
+ #
1616
+ # @!attribute [rw] output_config
1617
+ # Sets if the output will go to a customer defined bucket. By default,
1618
+ # Amazon Textract will save the results internally to be accessed by
1619
+ # the `GetExpenseAnalysis` operation.
1620
+ # @return [Types::OutputConfig]
1621
+ #
1622
+ # @!attribute [rw] kms_key_id
1623
+ # The KMS key used to encrypt the inference results. This can be in
1624
+ # either Key ID or Key Alias format. When a KMS key is provided, the
1625
+ # KMS key will be used for server-side encryption of the objects in
1626
+ # the customer bucket. When this parameter is not enabled, the result
1627
+ # will be encrypted server side,using SSE-S3.
1628
+ # @return [String]
1629
+ #
1630
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/StartExpenseAnalysisRequest AWS API Documentation
1631
+ #
1632
+ class StartExpenseAnalysisRequest < Struct.new(
1633
+ :document_location,
1634
+ :client_request_token,
1635
+ :job_tag,
1636
+ :notification_channel,
1637
+ :output_config,
1638
+ :kms_key_id)
1639
+ SENSITIVE = []
1640
+ include Aws::Structure
1641
+ end
1642
+
1643
+ # @!attribute [rw] job_id
1644
+ # A unique identifier for the text detection job. The `JobId` is
1645
+ # returned from `StartExpenseAnalysis`. A `JobId` value is only valid
1646
+ # for 7 days.
1647
+ # @return [String]
1648
+ #
1649
+ # @see http://docs.aws.amazon.com/goto/WebAPI/textract-2018-06-27/StartExpenseAnalysisResponse AWS API Documentation
1650
+ #
1651
+ class StartExpenseAnalysisResponse < Struct.new(
1652
+ :job_id)
1653
+ SENSITIVE = []
1654
+ include Aws::Structure
1655
+ end
1656
+
1475
1657
  # Amazon Textract is temporarily unable to process the request. Try your
1476
1658
  # call again.
1477
1659
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-textract/customizations'
48
48
  # @!group service
49
49
  module Aws::Textract
50
50
 
51
- GEM_VERSION = '1.29.0'
51
+ GEM_VERSION = '1.30.0'
52
52
 
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-textract
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.29.0
4
+ version: 1.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-18 00:00:00.000000000 Z
11
+ date: 2021-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core