aws-sdk-rekognition 1.44.0 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.49.0
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -49,6 +49,6 @@ require_relative 'aws-sdk-rekognition/customizations'
49
49
  # @!group service
50
50
  module Aws::Rekognition
51
51
 
52
- GEM_VERSION = '1.44.0'
52
+ GEM_VERSION = '1.49.0'
53
53
 
54
54
  end
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -378,12 +378,6 @@ module Aws::Rekognition
378
378
  # want to filter detected faces, specify `NONE`. The default value is
379
379
  # `NONE`.
380
380
  #
381
- # <note markdown="1"> To use quality filtering, you need a collection associated with
382
- # version 3 of the face model or higher. To get the version of the face
383
- # model associated with a collection, call DescribeCollection.
384
- #
385
- # </note>
386
- #
387
381
  # If the image doesn't contain Exif metadata, `CompareFaces` returns
388
382
  # orientation information for the source and target images. Use these
389
383
  # values to display the images with the correct image orientation.
@@ -1124,6 +1118,10 @@ module Aws::Rekognition
1124
1118
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1125
1119
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.name #=> String
1126
1120
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.version #=> String
1121
+ # resp.project_version_descriptions[0].training_data_result.validation.assets #=> Array
1122
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1123
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.name #=> String
1124
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.version #=> String
1127
1125
  # resp.project_version_descriptions[0].testing_data_result.input.assets #=> Array
1128
1126
  # resp.project_version_descriptions[0].testing_data_result.input.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1129
1127
  # resp.project_version_descriptions[0].testing_data_result.input.assets[0].ground_truth_manifest.s3_object.name #=> String
@@ -1134,10 +1132,17 @@ module Aws::Rekognition
1134
1132
  # resp.project_version_descriptions[0].testing_data_result.output.assets[0].ground_truth_manifest.s3_object.name #=> String
1135
1133
  # resp.project_version_descriptions[0].testing_data_result.output.assets[0].ground_truth_manifest.s3_object.version #=> String
1136
1134
  # resp.project_version_descriptions[0].testing_data_result.output.auto_create #=> Boolean
1135
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets #=> Array
1136
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1137
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.name #=> String
1138
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.version #=> String
1137
1139
  # resp.project_version_descriptions[0].evaluation_result.f1_score #=> Float
1138
1140
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.bucket #=> String
1139
1141
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.name #=> String
1140
1142
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.version #=> String
1143
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.bucket #=> String
1144
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.name #=> String
1145
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.version #=> String
1141
1146
  # resp.next_token #=> String
1142
1147
  #
1143
1148
  #
@@ -1809,6 +1814,115 @@ module Aws::Rekognition
1809
1814
  req.send_request(options)
1810
1815
  end
1811
1816
 
1817
+ # Detects Personal Protective Equipment (PPE) worn by people detected in
1818
+ # an image. Amazon Rekognition can detect the following types of PPE.
1819
+ #
1820
+ # * Face cover
1821
+ #
1822
+ # * Hand cover
1823
+ #
1824
+ # * Head cover
1825
+ #
1826
+ # You pass the input image as base64-encoded image bytes or as a
1827
+ # reference to an image in an Amazon S3 bucket. The image must be either
1828
+ # a PNG or JPG formatted file.
1829
+ #
1830
+ # `DetectProtectiveEquipment` detects PPE worn by up to 15 persons
1831
+ # detected in an image.
1832
+ #
1833
+ # For each person detected in the image the API returns an array of body
1834
+ # parts (face, head, left-hand, right-hand). For each body part, an
1835
+ # array of detected items of PPE is returned, including an indicator of
1836
+ # whether or not the PPE covers the body part. The API returns the
1837
+ # confidence it has in each detection (person, PPE, body part and body
1838
+ # part coverage). It also returns a bounding box (BoundingBox) for each
1839
+ # detected person and each detected item of PPE.
1840
+ #
1841
+ # You can optionally request a summary of detected PPE items with the
1842
+ # `SummarizationAttributes` input parameter. The summary provides the
1843
+ # following information.
1844
+ #
1845
+ # * The persons detected as wearing all of the types of PPE that you
1846
+ # specify.
1847
+ #
1848
+ # * The persons detected as not wearing all of the types PPE that you
1849
+ # specify.
1850
+ #
1851
+ # * The persons detected where PPE adornment could not be determined.
1852
+ #
1853
+ # This is a stateless API operation. That is, the operation does not
1854
+ # persist any data.
1855
+ #
1856
+ # This operation requires permissions to perform the
1857
+ # `rekognition:DetectProtectiveEquipment` action.
1858
+ #
1859
+ # @option params [required, Types::Image] :image
1860
+ # The image in which you want to detect PPE on detected persons. The
1861
+ # image can be passed as image bytes or you can reference an image
1862
+ # stored in an Amazon S3 bucket.
1863
+ #
1864
+ # @option params [Types::ProtectiveEquipmentSummarizationAttributes] :summarization_attributes
1865
+ # An array of PPE types that you want to summarize.
1866
+ #
1867
+ # @return [Types::DetectProtectiveEquipmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1868
+ #
1869
+ # * {Types::DetectProtectiveEquipmentResponse#protective_equipment_model_version #protective_equipment_model_version} => String
1870
+ # * {Types::DetectProtectiveEquipmentResponse#persons #persons} => Array&lt;Types::ProtectiveEquipmentPerson&gt;
1871
+ # * {Types::DetectProtectiveEquipmentResponse#summary #summary} => Types::ProtectiveEquipmentSummary
1872
+ #
1873
+ # @example Request syntax with placeholder values
1874
+ #
1875
+ # resp = client.detect_protective_equipment({
1876
+ # image: { # required
1877
+ # bytes: "data",
1878
+ # s3_object: {
1879
+ # bucket: "S3Bucket",
1880
+ # name: "S3ObjectName",
1881
+ # version: "S3ObjectVersion",
1882
+ # },
1883
+ # },
1884
+ # summarization_attributes: {
1885
+ # min_confidence: 1.0, # required
1886
+ # required_equipment_types: ["FACE_COVER"], # required, accepts FACE_COVER, HAND_COVER, HEAD_COVER
1887
+ # },
1888
+ # })
1889
+ #
1890
+ # @example Response structure
1891
+ #
1892
+ # resp.protective_equipment_model_version #=> String
1893
+ # resp.persons #=> Array
1894
+ # resp.persons[0].body_parts #=> Array
1895
+ # resp.persons[0].body_parts[0].name #=> String, one of "FACE", "HEAD", "LEFT_HAND", "RIGHT_HAND"
1896
+ # resp.persons[0].body_parts[0].confidence #=> Float
1897
+ # resp.persons[0].body_parts[0].equipment_detections #=> Array
1898
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.width #=> Float
1899
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.height #=> Float
1900
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.left #=> Float
1901
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.top #=> Float
1902
+ # resp.persons[0].body_parts[0].equipment_detections[0].confidence #=> Float
1903
+ # resp.persons[0].body_parts[0].equipment_detections[0].type #=> String, one of "FACE_COVER", "HAND_COVER", "HEAD_COVER"
1904
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.confidence #=> Float
1905
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.value #=> Boolean
1906
+ # resp.persons[0].bounding_box.width #=> Float
1907
+ # resp.persons[0].bounding_box.height #=> Float
1908
+ # resp.persons[0].bounding_box.left #=> Float
1909
+ # resp.persons[0].bounding_box.top #=> Float
1910
+ # resp.persons[0].confidence #=> Float
1911
+ # resp.persons[0].id #=> Integer
1912
+ # resp.summary.persons_with_required_equipment #=> Array
1913
+ # resp.summary.persons_with_required_equipment[0] #=> Integer
1914
+ # resp.summary.persons_without_required_equipment #=> Array
1915
+ # resp.summary.persons_without_required_equipment[0] #=> Integer
1916
+ # resp.summary.persons_indeterminate #=> Array
1917
+ # resp.summary.persons_indeterminate[0] #=> Integer
1918
+ #
1919
+ # @overload detect_protective_equipment(params = {})
1920
+ # @param [Hash] params ({})
1921
+ def detect_protective_equipment(params = {}, options = {})
1922
+ req = build_request(:detect_protective_equipment, params)
1923
+ req.send_request(options)
1924
+ end
1925
+
1812
1926
  # Detects text in the input image and converts it into machine-readable
1813
1927
  # text.
1814
1928
  #
@@ -3672,11 +3786,11 @@ module Aws::Rekognition
3672
3786
  # more information, see Recognizing Celebrities in the Amazon
3673
3787
  # Rekognition Developer Guide.
3674
3788
  #
3675
- # `RecognizeCelebrities` returns the 100 largest faces in the image. It
3789
+ # `RecognizeCelebrities` returns the 64 largest faces in the image. It
3676
3790
  # lists recognized celebrities in the `CelebrityFaces` array and
3677
3791
  # unrecognized faces in the `UnrecognizedFaces` array.
3678
3792
  # `RecognizeCelebrities` doesn't return celebrities whose faces aren't
3679
- # among the largest 100 faces in the image.
3793
+ # among the largest 64 faces in the image.
3680
3794
  #
3681
3795
  # For each celebrity recognized, `RecognizeCelebrities` returns a
3682
3796
  # `Celebrity` object. The `Celebrity` object contains the celebrity
@@ -4885,7 +4999,7 @@ module Aws::Rekognition
4885
4999
  params: params,
4886
5000
  config: config)
4887
5001
  context[:gem_name] = 'aws-sdk-rekognition'
4888
- context[:gem_version] = '1.44.0'
5002
+ context[:gem_version] = '1.49.0'
4889
5003
  Seahorse::Client::Request.new(handlers, context)
4890
5004
  end
4891
5005
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -22,6 +22,8 @@ module Aws::Rekognition
22
22
  AudioMetadata = Shapes::StructureShape.new(name: 'AudioMetadata')
23
23
  AudioMetadataList = Shapes::ListShape.new(name: 'AudioMetadataList')
24
24
  Beard = Shapes::StructureShape.new(name: 'Beard')
25
+ BodyPart = Shapes::StringShape.new(name: 'BodyPart')
26
+ BodyParts = Shapes::ListShape.new(name: 'BodyParts')
25
27
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
26
28
  BoundingBox = Shapes::StructureShape.new(name: 'BoundingBox')
27
29
  BoundingBoxHeight = Shapes::FloatShape.new(name: 'BoundingBoxHeight')
@@ -48,6 +50,7 @@ module Aws::Rekognition
48
50
  ContentModerationDetection = Shapes::StructureShape.new(name: 'ContentModerationDetection')
49
51
  ContentModerationDetections = Shapes::ListShape.new(name: 'ContentModerationDetections')
50
52
  ContentModerationSortBy = Shapes::StringShape.new(name: 'ContentModerationSortBy')
53
+ CoversBodyPart = Shapes::StructureShape.new(name: 'CoversBodyPart')
51
54
  CreateCollectionRequest = Shapes::StructureShape.new(name: 'CreateCollectionRequest')
52
55
  CreateCollectionResponse = Shapes::StructureShape.new(name: 'CreateCollectionResponse')
53
56
  CreateProjectRequest = Shapes::StructureShape.new(name: 'CreateProjectRequest')
@@ -86,6 +89,8 @@ module Aws::Rekognition
86
89
  DetectLabelsResponse = Shapes::StructureShape.new(name: 'DetectLabelsResponse')
87
90
  DetectModerationLabelsRequest = Shapes::StructureShape.new(name: 'DetectModerationLabelsRequest')
88
91
  DetectModerationLabelsResponse = Shapes::StructureShape.new(name: 'DetectModerationLabelsResponse')
92
+ DetectProtectiveEquipmentRequest = Shapes::StructureShape.new(name: 'DetectProtectiveEquipmentRequest')
93
+ DetectProtectiveEquipmentResponse = Shapes::StructureShape.new(name: 'DetectProtectiveEquipmentResponse')
89
94
  DetectTextFilters = Shapes::StructureShape.new(name: 'DetectTextFilters')
90
95
  DetectTextRequest = Shapes::StructureShape.new(name: 'DetectTextRequest')
91
96
  DetectTextResponse = Shapes::StructureShape.new(name: 'DetectTextResponse')
@@ -93,6 +98,8 @@ module Aws::Rekognition
93
98
  Emotion = Shapes::StructureShape.new(name: 'Emotion')
94
99
  EmotionName = Shapes::StringShape.new(name: 'EmotionName')
95
100
  Emotions = Shapes::ListShape.new(name: 'Emotions')
101
+ EquipmentDetection = Shapes::StructureShape.new(name: 'EquipmentDetection')
102
+ EquipmentDetections = Shapes::ListShape.new(name: 'EquipmentDetections')
96
103
  EvaluationResult = Shapes::StructureShape.new(name: 'EvaluationResult')
97
104
  ExtendedPaginationToken = Shapes::StringShape.new(name: 'ExtendedPaginationToken')
98
105
  ExternalImageId = Shapes::StringShape.new(name: 'ExternalImageId')
@@ -220,6 +227,14 @@ module Aws::Rekognition
220
227
  ProjectVersionStatus = Shapes::StringShape.new(name: 'ProjectVersionStatus')
221
228
  ProjectVersionsPageSize = Shapes::IntegerShape.new(name: 'ProjectVersionsPageSize')
222
229
  ProjectsPageSize = Shapes::IntegerShape.new(name: 'ProjectsPageSize')
230
+ ProtectiveEquipmentBodyPart = Shapes::StructureShape.new(name: 'ProtectiveEquipmentBodyPart')
231
+ ProtectiveEquipmentPerson = Shapes::StructureShape.new(name: 'ProtectiveEquipmentPerson')
232
+ ProtectiveEquipmentPersonIds = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersonIds')
233
+ ProtectiveEquipmentPersons = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersons')
234
+ ProtectiveEquipmentSummarizationAttributes = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummarizationAttributes')
235
+ ProtectiveEquipmentSummary = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummary')
236
+ ProtectiveEquipmentType = Shapes::StringShape.new(name: 'ProtectiveEquipmentType')
237
+ ProtectiveEquipmentTypes = Shapes::ListShape.new(name: 'ProtectiveEquipmentTypes')
223
238
  ProvisionedThroughputExceededException = Shapes::StructureShape.new(name: 'ProvisionedThroughputExceededException')
224
239
  QualityFilter = Shapes::StringShape.new(name: 'QualityFilter')
225
240
  Reason = Shapes::StringShape.new(name: 'Reason')
@@ -251,6 +266,7 @@ module Aws::Rekognition
251
266
  SegmentTypeInfo = Shapes::StructureShape.new(name: 'SegmentTypeInfo')
252
267
  SegmentTypes = Shapes::ListShape.new(name: 'SegmentTypes')
253
268
  SegmentTypesInfo = Shapes::ListShape.new(name: 'SegmentTypesInfo')
269
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
254
270
  ShotSegment = Shapes::StructureShape.new(name: 'ShotSegment')
255
271
  Smile = Shapes::StructureShape.new(name: 'Smile')
256
272
  StartCelebrityRecognitionRequest = Shapes::StructureShape.new(name: 'StartCelebrityRecognitionRequest')
@@ -313,6 +329,7 @@ module Aws::Rekognition
313
329
  UnindexedFaces = Shapes::ListShape.new(name: 'UnindexedFaces')
314
330
  Url = Shapes::StringShape.new(name: 'Url')
315
331
  Urls = Shapes::ListShape.new(name: 'Urls')
332
+ ValidationData = Shapes::StructureShape.new(name: 'ValidationData')
316
333
  VersionName = Shapes::StringShape.new(name: 'VersionName')
317
334
  VersionNames = Shapes::ListShape.new(name: 'VersionNames')
318
335
  Video = Shapes::StructureShape.new(name: 'Video')
@@ -346,6 +363,8 @@ module Aws::Rekognition
346
363
  Beard.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
347
364
  Beard.struct_class = Types::Beard
348
365
 
366
+ BodyParts.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentBodyPart)
367
+
349
368
  BoundingBox.add_member(:width, Shapes::ShapeRef.new(shape: Float, location_name: "Width"))
350
369
  BoundingBox.add_member(:height, Shapes::ShapeRef.new(shape: Float, location_name: "Height"))
351
370
  BoundingBox.add_member(:left, Shapes::ShapeRef.new(shape: Float, location_name: "Left"))
@@ -419,6 +438,10 @@ module Aws::Rekognition
419
438
 
420
439
  ContentModerationDetections.member = Shapes::ShapeRef.new(shape: ContentModerationDetection)
421
440
 
441
+ CoversBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
442
+ CoversBodyPart.add_member(:value, Shapes::ShapeRef.new(shape: Boolean, location_name: "Value"))
443
+ CoversBodyPart.struct_class = Types::CoversBodyPart
444
+
422
445
  CreateCollectionRequest.add_member(:collection_id, Shapes::ShapeRef.new(shape: CollectionId, required: true, location_name: "CollectionId"))
423
446
  CreateCollectionRequest.struct_class = Types::CreateCollectionRequest
424
447
 
@@ -569,6 +592,15 @@ module Aws::Rekognition
569
592
  DetectModerationLabelsResponse.add_member(:human_loop_activation_output, Shapes::ShapeRef.new(shape: HumanLoopActivationOutput, location_name: "HumanLoopActivationOutput"))
570
593
  DetectModerationLabelsResponse.struct_class = Types::DetectModerationLabelsResponse
571
594
 
595
+ DetectProtectiveEquipmentRequest.add_member(:image, Shapes::ShapeRef.new(shape: Image, required: true, location_name: "Image"))
596
+ DetectProtectiveEquipmentRequest.add_member(:summarization_attributes, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummarizationAttributes, location_name: "SummarizationAttributes"))
597
+ DetectProtectiveEquipmentRequest.struct_class = Types::DetectProtectiveEquipmentRequest
598
+
599
+ DetectProtectiveEquipmentResponse.add_member(:protective_equipment_model_version, Shapes::ShapeRef.new(shape: String, location_name: "ProtectiveEquipmentModelVersion"))
600
+ DetectProtectiveEquipmentResponse.add_member(:persons, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersons, location_name: "Persons"))
601
+ DetectProtectiveEquipmentResponse.add_member(:summary, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummary, location_name: "Summary"))
602
+ DetectProtectiveEquipmentResponse.struct_class = Types::DetectProtectiveEquipmentResponse
603
+
572
604
  DetectTextFilters.add_member(:word_filter, Shapes::ShapeRef.new(shape: DetectionFilter, location_name: "WordFilter"))
573
605
  DetectTextFilters.add_member(:regions_of_interest, Shapes::ShapeRef.new(shape: RegionsOfInterest, location_name: "RegionsOfInterest"))
574
606
  DetectTextFilters.struct_class = Types::DetectTextFilters
@@ -592,6 +624,14 @@ module Aws::Rekognition
592
624
 
593
625
  Emotions.member = Shapes::ShapeRef.new(shape: Emotion)
594
626
 
627
+ EquipmentDetection.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
628
+ EquipmentDetection.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
629
+ EquipmentDetection.add_member(:type, Shapes::ShapeRef.new(shape: ProtectiveEquipmentType, location_name: "Type"))
630
+ EquipmentDetection.add_member(:covers_body_part, Shapes::ShapeRef.new(shape: CoversBodyPart, location_name: "CoversBodyPart"))
631
+ EquipmentDetection.struct_class = Types::EquipmentDetection
632
+
633
+ EquipmentDetections.member = Shapes::ShapeRef.new(shape: EquipmentDetection)
634
+
595
635
  EvaluationResult.add_member(:f1_score, Shapes::ShapeRef.new(shape: Float, location_name: "F1Score"))
596
636
  EvaluationResult.add_member(:summary, Shapes::ShapeRef.new(shape: Summary, location_name: "Summary"))
597
637
  EvaluationResult.struct_class = Types::EvaluationResult
@@ -975,10 +1015,37 @@ module Aws::Rekognition
975
1015
  ProjectVersionDescription.add_member(:training_data_result, Shapes::ShapeRef.new(shape: TrainingDataResult, location_name: "TrainingDataResult"))
976
1016
  ProjectVersionDescription.add_member(:testing_data_result, Shapes::ShapeRef.new(shape: TestingDataResult, location_name: "TestingDataResult"))
977
1017
  ProjectVersionDescription.add_member(:evaluation_result, Shapes::ShapeRef.new(shape: EvaluationResult, location_name: "EvaluationResult"))
1018
+ ProjectVersionDescription.add_member(:manifest_summary, Shapes::ShapeRef.new(shape: GroundTruthManifest, location_name: "ManifestSummary"))
978
1019
  ProjectVersionDescription.struct_class = Types::ProjectVersionDescription
979
1020
 
980
1021
  ProjectVersionDescriptions.member = Shapes::ShapeRef.new(shape: ProjectVersionDescription)
981
1022
 
1023
+ ProtectiveEquipmentBodyPart.add_member(:name, Shapes::ShapeRef.new(shape: BodyPart, location_name: "Name"))
1024
+ ProtectiveEquipmentBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1025
+ ProtectiveEquipmentBodyPart.add_member(:equipment_detections, Shapes::ShapeRef.new(shape: EquipmentDetections, location_name: "EquipmentDetections"))
1026
+ ProtectiveEquipmentBodyPart.struct_class = Types::ProtectiveEquipmentBodyPart
1027
+
1028
+ ProtectiveEquipmentPerson.add_member(:body_parts, Shapes::ShapeRef.new(shape: BodyParts, location_name: "BodyParts"))
1029
+ ProtectiveEquipmentPerson.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
1030
+ ProtectiveEquipmentPerson.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1031
+ ProtectiveEquipmentPerson.add_member(:id, Shapes::ShapeRef.new(shape: UInteger, location_name: "Id"))
1032
+ ProtectiveEquipmentPerson.struct_class = Types::ProtectiveEquipmentPerson
1033
+
1034
+ ProtectiveEquipmentPersonIds.member = Shapes::ShapeRef.new(shape: UInteger)
1035
+
1036
+ ProtectiveEquipmentPersons.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentPerson)
1037
+
1038
+ ProtectiveEquipmentSummarizationAttributes.add_member(:min_confidence, Shapes::ShapeRef.new(shape: Percent, required: true, location_name: "MinConfidence"))
1039
+ ProtectiveEquipmentSummarizationAttributes.add_member(:required_equipment_types, Shapes::ShapeRef.new(shape: ProtectiveEquipmentTypes, required: true, location_name: "RequiredEquipmentTypes"))
1040
+ ProtectiveEquipmentSummarizationAttributes.struct_class = Types::ProtectiveEquipmentSummarizationAttributes
1041
+
1042
+ ProtectiveEquipmentSummary.add_member(:persons_with_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithRequiredEquipment"))
1043
+ ProtectiveEquipmentSummary.add_member(:persons_without_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithoutRequiredEquipment"))
1044
+ ProtectiveEquipmentSummary.add_member(:persons_indeterminate, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsIndeterminate"))
1045
+ ProtectiveEquipmentSummary.struct_class = Types::ProtectiveEquipmentSummary
1046
+
1047
+ ProtectiveEquipmentTypes.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentType)
1048
+
982
1049
  ProvisionedThroughputExceededException.struct_class = Types::ProvisionedThroughputExceededException
983
1050
 
984
1051
  Reasons.member = Shapes::ShapeRef.new(shape: Reason)
@@ -1054,6 +1121,8 @@ module Aws::Rekognition
1054
1121
 
1055
1122
  SegmentTypesInfo.member = Shapes::ShapeRef.new(shape: SegmentTypeInfo)
1056
1123
 
1124
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
1125
+
1057
1126
  ShotSegment.add_member(:index, Shapes::ShapeRef.new(shape: ULong, location_name: "Index"))
1058
1127
  ShotSegment.add_member(:confidence, Shapes::ShapeRef.new(shape: SegmentConfidence, location_name: "Confidence"))
1059
1128
  ShotSegment.struct_class = Types::ShotSegment
@@ -1211,6 +1280,7 @@ module Aws::Rekognition
1211
1280
 
1212
1281
  TestingDataResult.add_member(:input, Shapes::ShapeRef.new(shape: TestingData, location_name: "Input"))
1213
1282
  TestingDataResult.add_member(:output, Shapes::ShapeRef.new(shape: TestingData, location_name: "Output"))
1283
+ TestingDataResult.add_member(:validation, Shapes::ShapeRef.new(shape: ValidationData, location_name: "Validation"))
1214
1284
  TestingDataResult.struct_class = Types::TestingDataResult
1215
1285
 
1216
1286
  TextDetection.add_member(:detected_text, Shapes::ShapeRef.new(shape: String, location_name: "DetectedText"))
@@ -1236,6 +1306,7 @@ module Aws::Rekognition
1236
1306
 
1237
1307
  TrainingDataResult.add_member(:input, Shapes::ShapeRef.new(shape: TrainingData, location_name: "Input"))
1238
1308
  TrainingDataResult.add_member(:output, Shapes::ShapeRef.new(shape: TrainingData, location_name: "Output"))
1309
+ TrainingDataResult.add_member(:validation, Shapes::ShapeRef.new(shape: ValidationData, location_name: "Validation"))
1239
1310
  TrainingDataResult.struct_class = Types::TrainingDataResult
1240
1311
 
1241
1312
  UnindexedFace.add_member(:reasons, Shapes::ShapeRef.new(shape: Reasons, location_name: "Reasons"))
@@ -1246,6 +1317,9 @@ module Aws::Rekognition
1246
1317
 
1247
1318
  Urls.member = Shapes::ShapeRef.new(shape: Url)
1248
1319
 
1320
+ ValidationData.add_member(:assets, Shapes::ShapeRef.new(shape: Assets, location_name: "Assets"))
1321
+ ValidationData.struct_class = Types::ValidationData
1322
+
1249
1323
  VersionNames.member = Shapes::ShapeRef.new(shape: VersionName)
1250
1324
 
1251
1325
  Video.add_member(:s3_object, Shapes::ShapeRef.new(shape: S3Object, location_name: "S3Object"))
@@ -1567,6 +1641,22 @@ module Aws::Rekognition
1567
1641
  o.errors << Shapes::ShapeRef.new(shape: HumanLoopQuotaExceededException)
1568
1642
  end)
1569
1643
 
1644
+ api.add_operation(:detect_protective_equipment, Seahorse::Model::Operation.new.tap do |o|
1645
+ o.name = "DetectProtectiveEquipment"
1646
+ o.http_method = "POST"
1647
+ o.http_request_uri = "/"
1648
+ o.input = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentRequest)
1649
+ o.output = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentResponse)
1650
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3ObjectException)
1651
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1652
+ o.errors << Shapes::ShapeRef.new(shape: ImageTooLargeException)
1653
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1654
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1655
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1656
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1657
+ o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1658
+ end)
1659
+
1570
1660
  api.add_operation(:detect_text, Seahorse::Model::Operation.new.tap do |o|
1571
1661
  o.name = "DetectText"
1572
1662
  o.http_method = "POST"
@@ -1780,6 +1870,7 @@ module Aws::Rekognition
1780
1870
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1781
1871
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1782
1872
  o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1873
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1783
1874
  end)
1784
1875
 
1785
1876
  api.add_operation(:list_collections, Seahorse::Model::Operation.new.tap do |o|
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -42,6 +42,7 @@ module Aws::Rekognition
42
42
  # * {ResourceInUseException}
43
43
  # * {ResourceNotFoundException}
44
44
  # * {ResourceNotReadyException}
45
+ # * {ServiceQuotaExceededException}
45
46
  # * {ThrottlingException}
46
47
  # * {VideoTooLargeException}
47
48
  #
@@ -216,6 +217,16 @@ module Aws::Rekognition
216
217
  end
217
218
  end
218
219
 
220
+ class ServiceQuotaExceededException < ServiceError
221
+
222
+ # @param [Seahorse::Client::RequestContext] context
223
+ # @param [String] message
224
+ # @param [Aws::Rekognition::Types::ServiceQuotaExceededException] data
225
+ def initialize(context, message, data = Aws::EmptyStructure.new)
226
+ super(context, message, data)
227
+ end
228
+ end
229
+
219
230
  class ThrottlingException < ServiceError
220
231
 
221
232
  # @param [Seahorse::Client::RequestContext] context