aws-sdk-rekognition 1.45.0 → 1.50.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.50.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.45.0'
52
+ GEM_VERSION = '1.50.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
 
@@ -340,10 +340,20 @@ module Aws::Rekognition
340
340
  # Compares a face in the *source* input image with each of the 100
341
341
  # largest faces detected in the *target* input image.
342
342
  #
343
- # <note markdown="1"> If the source image contains multiple faces, the service detects the
343
+ # If the source image contains multiple faces, the service detects the
344
344
  # largest face and compares it with each face detected in the target
345
345
  # image.
346
346
  #
347
+ # <note markdown="1"> CompareFaces uses machine learning algorithms, which are
348
+ # probabilistic. A false negative is an incorrect prediction that a face
349
+ # in the target image has a low similarity confidence score when
350
+ # compared to the face in the source image. To reduce the probability of
351
+ # false negatives, we recommend that you compare the target image
352
+ # against multiple source images. If you plan to use `CompareFaces` to
353
+ # make a decision that impacts an individual's rights, privacy, or
354
+ # access to services, we recommend that you pass the result to a human
355
+ # for review and further validation before taking action.
356
+ #
347
357
  # </note>
348
358
  #
349
359
  # You pass the input and target images either as base64-encoded image
@@ -378,12 +388,6 @@ module Aws::Rekognition
378
388
  # want to filter detected faces, specify `NONE`. The default value is
379
389
  # `NONE`.
380
390
  #
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
391
  # If the image doesn't contain Exif metadata, `CompareFaces` returns
388
392
  # orientation information for the source and target images. Use these
389
393
  # values to display the images with the correct image orientation.
@@ -589,6 +593,10 @@ module Aws::Rekognition
589
593
  # @option params [required, String] :collection_id
590
594
  # ID for the collection that you are creating.
591
595
  #
596
+ # @option params [Hash<String,String>] :tags
597
+ # A set of tags (key-value pairs) that you want to attach to the
598
+ # collection.
599
+ #
592
600
  # @return [Types::CreateCollectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
593
601
  #
594
602
  # * {Types::CreateCollectionResponse#status_code #status_code} => Integer
@@ -614,6 +622,9 @@ module Aws::Rekognition
614
622
  #
615
623
  # resp = client.create_collection({
616
624
  # collection_id: "CollectionId", # required
625
+ # tags: {
626
+ # "TagKey" => "TagValue",
627
+ # },
617
628
  # })
618
629
  #
619
630
  # @example Response structure
@@ -694,6 +705,9 @@ module Aws::Rekognition
694
705
  # @option params [required, Types::TestingData] :testing_data
695
706
  # The dataset to use for testing.
696
707
  #
708
+ # @option params [Hash<String,String>] :tags
709
+ # A set of tags (key-value pairs) that you want to attach to the model.
710
+ #
697
711
  # @return [Types::CreateProjectVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
698
712
  #
699
713
  # * {Types::CreateProjectVersionResponse#project_version_arn #project_version_arn} => String
@@ -734,6 +748,9 @@ module Aws::Rekognition
734
748
  # ],
735
749
  # auto_create: false,
736
750
  # },
751
+ # tags: {
752
+ # "TagKey" => "TagValue",
753
+ # },
737
754
  # })
738
755
  #
739
756
  # @example Response structure
@@ -790,6 +807,10 @@ module Aws::Rekognition
790
807
  # @option params [required, String] :role_arn
791
808
  # ARN of the IAM role that allows access to the stream processor.
792
809
  #
810
+ # @option params [Hash<String,String>] :tags
811
+ # A set of tags (key-value pairs) that you want to attach to the stream
812
+ # processor.
813
+ #
793
814
  # @return [Types::CreateStreamProcessorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
794
815
  #
795
816
  # * {Types::CreateStreamProcessorResponse#stream_processor_arn #stream_processor_arn} => String
@@ -815,6 +836,9 @@ module Aws::Rekognition
815
836
  # },
816
837
  # },
817
838
  # role_arn: "RoleArn", # required
839
+ # tags: {
840
+ # "TagKey" => "TagValue",
841
+ # },
818
842
  # })
819
843
  #
820
844
  # @example Response structure
@@ -1124,6 +1148,10 @@ module Aws::Rekognition
1124
1148
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1125
1149
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.name #=> String
1126
1150
  # resp.project_version_descriptions[0].training_data_result.output.assets[0].ground_truth_manifest.s3_object.version #=> String
1151
+ # resp.project_version_descriptions[0].training_data_result.validation.assets #=> Array
1152
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1153
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.name #=> String
1154
+ # resp.project_version_descriptions[0].training_data_result.validation.assets[0].ground_truth_manifest.s3_object.version #=> String
1127
1155
  # resp.project_version_descriptions[0].testing_data_result.input.assets #=> Array
1128
1156
  # resp.project_version_descriptions[0].testing_data_result.input.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1129
1157
  # resp.project_version_descriptions[0].testing_data_result.input.assets[0].ground_truth_manifest.s3_object.name #=> String
@@ -1134,10 +1162,17 @@ module Aws::Rekognition
1134
1162
  # resp.project_version_descriptions[0].testing_data_result.output.assets[0].ground_truth_manifest.s3_object.name #=> String
1135
1163
  # resp.project_version_descriptions[0].testing_data_result.output.assets[0].ground_truth_manifest.s3_object.version #=> String
1136
1164
  # resp.project_version_descriptions[0].testing_data_result.output.auto_create #=> Boolean
1165
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets #=> Array
1166
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.bucket #=> String
1167
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.name #=> String
1168
+ # resp.project_version_descriptions[0].testing_data_result.validation.assets[0].ground_truth_manifest.s3_object.version #=> String
1137
1169
  # resp.project_version_descriptions[0].evaluation_result.f1_score #=> Float
1138
1170
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.bucket #=> String
1139
1171
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.name #=> String
1140
1172
  # resp.project_version_descriptions[0].evaluation_result.summary.s3_object.version #=> String
1173
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.bucket #=> String
1174
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.name #=> String
1175
+ # resp.project_version_descriptions[0].manifest_summary.s3_object.version #=> String
1141
1176
  # resp.next_token #=> String
1142
1177
  #
1143
1178
  #
@@ -1809,6 +1844,115 @@ module Aws::Rekognition
1809
1844
  req.send_request(options)
1810
1845
  end
1811
1846
 
1847
+ # Detects Personal Protective Equipment (PPE) worn by people detected in
1848
+ # an image. Amazon Rekognition can detect the following types of PPE.
1849
+ #
1850
+ # * Face cover
1851
+ #
1852
+ # * Hand cover
1853
+ #
1854
+ # * Head cover
1855
+ #
1856
+ # You pass the input image as base64-encoded image bytes or as a
1857
+ # reference to an image in an Amazon S3 bucket. The image must be either
1858
+ # a PNG or JPG formatted file.
1859
+ #
1860
+ # `DetectProtectiveEquipment` detects PPE worn by up to 15 persons
1861
+ # detected in an image.
1862
+ #
1863
+ # For each person detected in the image the API returns an array of body
1864
+ # parts (face, head, left-hand, right-hand). For each body part, an
1865
+ # array of detected items of PPE is returned, including an indicator of
1866
+ # whether or not the PPE covers the body part. The API returns the
1867
+ # confidence it has in each detection (person, PPE, body part and body
1868
+ # part coverage). It also returns a bounding box (BoundingBox) for each
1869
+ # detected person and each detected item of PPE.
1870
+ #
1871
+ # You can optionally request a summary of detected PPE items with the
1872
+ # `SummarizationAttributes` input parameter. The summary provides the
1873
+ # following information.
1874
+ #
1875
+ # * The persons detected as wearing all of the types of PPE that you
1876
+ # specify.
1877
+ #
1878
+ # * The persons detected as not wearing all of the types PPE that you
1879
+ # specify.
1880
+ #
1881
+ # * The persons detected where PPE adornment could not be determined.
1882
+ #
1883
+ # This is a stateless API operation. That is, the operation does not
1884
+ # persist any data.
1885
+ #
1886
+ # This operation requires permissions to perform the
1887
+ # `rekognition:DetectProtectiveEquipment` action.
1888
+ #
1889
+ # @option params [required, Types::Image] :image
1890
+ # The image in which you want to detect PPE on detected persons. The
1891
+ # image can be passed as image bytes or you can reference an image
1892
+ # stored in an Amazon S3 bucket.
1893
+ #
1894
+ # @option params [Types::ProtectiveEquipmentSummarizationAttributes] :summarization_attributes
1895
+ # An array of PPE types that you want to summarize.
1896
+ #
1897
+ # @return [Types::DetectProtectiveEquipmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1898
+ #
1899
+ # * {Types::DetectProtectiveEquipmentResponse#protective_equipment_model_version #protective_equipment_model_version} => String
1900
+ # * {Types::DetectProtectiveEquipmentResponse#persons #persons} => Array&lt;Types::ProtectiveEquipmentPerson&gt;
1901
+ # * {Types::DetectProtectiveEquipmentResponse#summary #summary} => Types::ProtectiveEquipmentSummary
1902
+ #
1903
+ # @example Request syntax with placeholder values
1904
+ #
1905
+ # resp = client.detect_protective_equipment({
1906
+ # image: { # required
1907
+ # bytes: "data",
1908
+ # s3_object: {
1909
+ # bucket: "S3Bucket",
1910
+ # name: "S3ObjectName",
1911
+ # version: "S3ObjectVersion",
1912
+ # },
1913
+ # },
1914
+ # summarization_attributes: {
1915
+ # min_confidence: 1.0, # required
1916
+ # required_equipment_types: ["FACE_COVER"], # required, accepts FACE_COVER, HAND_COVER, HEAD_COVER
1917
+ # },
1918
+ # })
1919
+ #
1920
+ # @example Response structure
1921
+ #
1922
+ # resp.protective_equipment_model_version #=> String
1923
+ # resp.persons #=> Array
1924
+ # resp.persons[0].body_parts #=> Array
1925
+ # resp.persons[0].body_parts[0].name #=> String, one of "FACE", "HEAD", "LEFT_HAND", "RIGHT_HAND"
1926
+ # resp.persons[0].body_parts[0].confidence #=> Float
1927
+ # resp.persons[0].body_parts[0].equipment_detections #=> Array
1928
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.width #=> Float
1929
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.height #=> Float
1930
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.left #=> Float
1931
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.top #=> Float
1932
+ # resp.persons[0].body_parts[0].equipment_detections[0].confidence #=> Float
1933
+ # resp.persons[0].body_parts[0].equipment_detections[0].type #=> String, one of "FACE_COVER", "HAND_COVER", "HEAD_COVER"
1934
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.confidence #=> Float
1935
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.value #=> Boolean
1936
+ # resp.persons[0].bounding_box.width #=> Float
1937
+ # resp.persons[0].bounding_box.height #=> Float
1938
+ # resp.persons[0].bounding_box.left #=> Float
1939
+ # resp.persons[0].bounding_box.top #=> Float
1940
+ # resp.persons[0].confidence #=> Float
1941
+ # resp.persons[0].id #=> Integer
1942
+ # resp.summary.persons_with_required_equipment #=> Array
1943
+ # resp.summary.persons_with_required_equipment[0] #=> Integer
1944
+ # resp.summary.persons_without_required_equipment #=> Array
1945
+ # resp.summary.persons_without_required_equipment[0] #=> Integer
1946
+ # resp.summary.persons_indeterminate #=> Array
1947
+ # resp.summary.persons_indeterminate[0] #=> Integer
1948
+ #
1949
+ # @overload detect_protective_equipment(params = {})
1950
+ # @param [Hash] params ({})
1951
+ def detect_protective_equipment(params = {}, options = {})
1952
+ req = build_request(:detect_protective_equipment, params)
1953
+ req.send_request(options)
1954
+ end
1955
+
1812
1956
  # Detects text in the input image and converts it into machine-readable
1813
1957
  # text.
1814
1958
  #
@@ -3668,15 +3812,44 @@ module Aws::Rekognition
3668
3812
  req.send_request(options)
3669
3813
  end
3670
3814
 
3815
+ # Returns a list of tags in an Amazon Rekognition collection, stream
3816
+ # processor, or Custom Labels model.
3817
+ #
3818
+ # @option params [required, String] :resource_arn
3819
+ # Amazon Resource Name (ARN) of the model, collection, or stream
3820
+ # processor that contains the tags that you want a list of.
3821
+ #
3822
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3823
+ #
3824
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
3825
+ #
3826
+ # @example Request syntax with placeholder values
3827
+ #
3828
+ # resp = client.list_tags_for_resource({
3829
+ # resource_arn: "ResourceArn", # required
3830
+ # })
3831
+ #
3832
+ # @example Response structure
3833
+ #
3834
+ # resp.tags #=> Hash
3835
+ # resp.tags["TagKey"] #=> String
3836
+ #
3837
+ # @overload list_tags_for_resource(params = {})
3838
+ # @param [Hash] params ({})
3839
+ def list_tags_for_resource(params = {}, options = {})
3840
+ req = build_request(:list_tags_for_resource, params)
3841
+ req.send_request(options)
3842
+ end
3843
+
3671
3844
  # Returns an array of celebrities recognized in the input image. For
3672
3845
  # more information, see Recognizing Celebrities in the Amazon
3673
3846
  # Rekognition Developer Guide.
3674
3847
  #
3675
- # `RecognizeCelebrities` returns the 100 largest faces in the image. It
3848
+ # `RecognizeCelebrities` returns the 64 largest faces in the image. It
3676
3849
  # lists recognized celebrities in the `CelebrityFaces` array and
3677
3850
  # unrecognized faces in the `UnrecognizedFaces` array.
3678
3851
  # `RecognizeCelebrities` doesn't return celebrities whose faces aren't
3679
- # among the largest 100 faces in the image.
3852
+ # among the largest 64 faces in the image.
3680
3853
  #
3681
3854
  # For each celebrity recognized, `RecognizeCelebrities` returns a
3682
3855
  # `Celebrity` object. The `Celebrity` object contains the celebrity
@@ -4872,6 +5045,65 @@ module Aws::Rekognition
4872
5045
  req.send_request(options)
4873
5046
  end
4874
5047
 
5048
+ # Adds one or more key-value tags to an Amazon Rekognition collection,
5049
+ # stream processor, or Custom Labels model. For more information, see
5050
+ # [Tagging AWS Resources][1].
5051
+ #
5052
+ #
5053
+ #
5054
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
5055
+ #
5056
+ # @option params [required, String] :resource_arn
5057
+ # Amazon Resource Name (ARN) of the model, collection, or stream
5058
+ # processor that you want to assign the tags to.
5059
+ #
5060
+ # @option params [required, Hash<String,String>] :tags
5061
+ # The key-value tags to assign to the resource.
5062
+ #
5063
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5064
+ #
5065
+ # @example Request syntax with placeholder values
5066
+ #
5067
+ # resp = client.tag_resource({
5068
+ # resource_arn: "ResourceArn", # required
5069
+ # tags: { # required
5070
+ # "TagKey" => "TagValue",
5071
+ # },
5072
+ # })
5073
+ #
5074
+ # @overload tag_resource(params = {})
5075
+ # @param [Hash] params ({})
5076
+ def tag_resource(params = {}, options = {})
5077
+ req = build_request(:tag_resource, params)
5078
+ req.send_request(options)
5079
+ end
5080
+
5081
+ # Removes one or more tags from an Amazon Rekognition collection, stream
5082
+ # processor, or Custom Labels model.
5083
+ #
5084
+ # @option params [required, String] :resource_arn
5085
+ # Amazon Resource Name (ARN) of the model, collection, or stream
5086
+ # processor that you want to remove the tags from.
5087
+ #
5088
+ # @option params [required, Array<String>] :tag_keys
5089
+ # A list of the tags that you want to remove.
5090
+ #
5091
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5092
+ #
5093
+ # @example Request syntax with placeholder values
5094
+ #
5095
+ # resp = client.untag_resource({
5096
+ # resource_arn: "ResourceArn", # required
5097
+ # tag_keys: ["TagKey"], # required
5098
+ # })
5099
+ #
5100
+ # @overload untag_resource(params = {})
5101
+ # @param [Hash] params ({})
5102
+ def untag_resource(params = {}, options = {})
5103
+ req = build_request(:untag_resource, params)
5104
+ req.send_request(options)
5105
+ end
5106
+
4875
5107
  # @!endgroup
4876
5108
 
4877
5109
  # @param params ({})
@@ -4885,7 +5117,7 @@ module Aws::Rekognition
4885
5117
  params: params,
4886
5118
  config: config)
4887
5119
  context[:gem_name] = 'aws-sdk-rekognition'
4888
- context[:gem_version] = '1.45.0'
5120
+ context[:gem_version] = '1.50.0'
4889
5121
  Seahorse::Client::Request.new(handlers, context)
4890
5122
  end
4891
5123
 
@@ -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')
@@ -184,6 +191,8 @@ module Aws::Rekognition
184
191
  ListFacesResponse = Shapes::StructureShape.new(name: 'ListFacesResponse')
185
192
  ListStreamProcessorsRequest = Shapes::StructureShape.new(name: 'ListStreamProcessorsRequest')
186
193
  ListStreamProcessorsResponse = Shapes::StructureShape.new(name: 'ListStreamProcessorsResponse')
194
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
195
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
187
196
  MaxFaces = Shapes::IntegerShape.new(name: 'MaxFaces')
188
197
  MaxFacesToIndex = Shapes::IntegerShape.new(name: 'MaxFacesToIndex')
189
198
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
@@ -220,6 +229,14 @@ module Aws::Rekognition
220
229
  ProjectVersionStatus = Shapes::StringShape.new(name: 'ProjectVersionStatus')
221
230
  ProjectVersionsPageSize = Shapes::IntegerShape.new(name: 'ProjectVersionsPageSize')
222
231
  ProjectsPageSize = Shapes::IntegerShape.new(name: 'ProjectsPageSize')
232
+ ProtectiveEquipmentBodyPart = Shapes::StructureShape.new(name: 'ProtectiveEquipmentBodyPart')
233
+ ProtectiveEquipmentPerson = Shapes::StructureShape.new(name: 'ProtectiveEquipmentPerson')
234
+ ProtectiveEquipmentPersonIds = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersonIds')
235
+ ProtectiveEquipmentPersons = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersons')
236
+ ProtectiveEquipmentSummarizationAttributes = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummarizationAttributes')
237
+ ProtectiveEquipmentSummary = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummary')
238
+ ProtectiveEquipmentType = Shapes::StringShape.new(name: 'ProtectiveEquipmentType')
239
+ ProtectiveEquipmentTypes = Shapes::ListShape.new(name: 'ProtectiveEquipmentTypes')
223
240
  ProvisionedThroughputExceededException = Shapes::StructureShape.new(name: 'ProvisionedThroughputExceededException')
224
241
  QualityFilter = Shapes::StringShape.new(name: 'QualityFilter')
225
242
  Reason = Shapes::StringShape.new(name: 'Reason')
@@ -230,6 +247,7 @@ module Aws::Rekognition
230
247
  RegionsOfInterest = Shapes::ListShape.new(name: 'RegionsOfInterest')
231
248
  RekognitionUniqueId = Shapes::StringShape.new(name: 'RekognitionUniqueId')
232
249
  ResourceAlreadyExistsException = Shapes::StructureShape.new(name: 'ResourceAlreadyExistsException')
250
+ ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
233
251
  ResourceInUseException = Shapes::StructureShape.new(name: 'ResourceInUseException')
234
252
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
235
253
  ResourceNotReadyException = Shapes::StructureShape.new(name: 'ResourceNotReadyException')
@@ -251,6 +269,7 @@ module Aws::Rekognition
251
269
  SegmentTypeInfo = Shapes::StructureShape.new(name: 'SegmentTypeInfo')
252
270
  SegmentTypes = Shapes::ListShape.new(name: 'SegmentTypes')
253
271
  SegmentTypesInfo = Shapes::ListShape.new(name: 'SegmentTypesInfo')
272
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
254
273
  ShotSegment = Shapes::StructureShape.new(name: 'ShotSegment')
255
274
  Smile = Shapes::StructureShape.new(name: 'Smile')
256
275
  StartCelebrityRecognitionRequest = Shapes::StructureShape.new(name: 'StartCelebrityRecognitionRequest')
@@ -293,6 +312,12 @@ module Aws::Rekognition
293
312
  String = Shapes::StringShape.new(name: 'String')
294
313
  Summary = Shapes::StructureShape.new(name: 'Summary')
295
314
  Sunglasses = Shapes::StructureShape.new(name: 'Sunglasses')
315
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
316
+ TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
317
+ TagMap = Shapes::MapShape.new(name: 'TagMap')
318
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
319
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
320
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
296
321
  TechnicalCueSegment = Shapes::StructureShape.new(name: 'TechnicalCueSegment')
297
322
  TechnicalCueType = Shapes::StringShape.new(name: 'TechnicalCueType')
298
323
  TestingData = Shapes::StructureShape.new(name: 'TestingData')
@@ -311,8 +336,11 @@ module Aws::Rekognition
311
336
  ULong = Shapes::IntegerShape.new(name: 'ULong')
312
337
  UnindexedFace = Shapes::StructureShape.new(name: 'UnindexedFace')
313
338
  UnindexedFaces = Shapes::ListShape.new(name: 'UnindexedFaces')
339
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
340
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
314
341
  Url = Shapes::StringShape.new(name: 'Url')
315
342
  Urls = Shapes::ListShape.new(name: 'Urls')
343
+ ValidationData = Shapes::StructureShape.new(name: 'ValidationData')
316
344
  VersionName = Shapes::StringShape.new(name: 'VersionName')
317
345
  VersionNames = Shapes::ListShape.new(name: 'VersionNames')
318
346
  Video = Shapes::StructureShape.new(name: 'Video')
@@ -346,6 +374,8 @@ module Aws::Rekognition
346
374
  Beard.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
347
375
  Beard.struct_class = Types::Beard
348
376
 
377
+ BodyParts.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentBodyPart)
378
+
349
379
  BoundingBox.add_member(:width, Shapes::ShapeRef.new(shape: Float, location_name: "Width"))
350
380
  BoundingBox.add_member(:height, Shapes::ShapeRef.new(shape: Float, location_name: "Height"))
351
381
  BoundingBox.add_member(:left, Shapes::ShapeRef.new(shape: Float, location_name: "Left"))
@@ -419,7 +449,12 @@ module Aws::Rekognition
419
449
 
420
450
  ContentModerationDetections.member = Shapes::ShapeRef.new(shape: ContentModerationDetection)
421
451
 
452
+ CoversBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
453
+ CoversBodyPart.add_member(:value, Shapes::ShapeRef.new(shape: Boolean, location_name: "Value"))
454
+ CoversBodyPart.struct_class = Types::CoversBodyPart
455
+
422
456
  CreateCollectionRequest.add_member(:collection_id, Shapes::ShapeRef.new(shape: CollectionId, required: true, location_name: "CollectionId"))
457
+ CreateCollectionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
423
458
  CreateCollectionRequest.struct_class = Types::CreateCollectionRequest
424
459
 
425
460
  CreateCollectionResponse.add_member(:status_code, Shapes::ShapeRef.new(shape: UInteger, location_name: "StatusCode"))
@@ -438,6 +473,7 @@ module Aws::Rekognition
438
473
  CreateProjectVersionRequest.add_member(:output_config, Shapes::ShapeRef.new(shape: OutputConfig, required: true, location_name: "OutputConfig"))
439
474
  CreateProjectVersionRequest.add_member(:training_data, Shapes::ShapeRef.new(shape: TrainingData, required: true, location_name: "TrainingData"))
440
475
  CreateProjectVersionRequest.add_member(:testing_data, Shapes::ShapeRef.new(shape: TestingData, required: true, location_name: "TestingData"))
476
+ CreateProjectVersionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
441
477
  CreateProjectVersionRequest.struct_class = Types::CreateProjectVersionRequest
442
478
 
443
479
  CreateProjectVersionResponse.add_member(:project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, location_name: "ProjectVersionArn"))
@@ -448,6 +484,7 @@ module Aws::Rekognition
448
484
  CreateStreamProcessorRequest.add_member(:name, Shapes::ShapeRef.new(shape: StreamProcessorName, required: true, location_name: "Name"))
449
485
  CreateStreamProcessorRequest.add_member(:settings, Shapes::ShapeRef.new(shape: StreamProcessorSettings, required: true, location_name: "Settings"))
450
486
  CreateStreamProcessorRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "RoleArn"))
487
+ CreateStreamProcessorRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
451
488
  CreateStreamProcessorRequest.struct_class = Types::CreateStreamProcessorRequest
452
489
 
453
490
  CreateStreamProcessorResponse.add_member(:stream_processor_arn, Shapes::ShapeRef.new(shape: StreamProcessorArn, location_name: "StreamProcessorArn"))
@@ -569,6 +606,15 @@ module Aws::Rekognition
569
606
  DetectModerationLabelsResponse.add_member(:human_loop_activation_output, Shapes::ShapeRef.new(shape: HumanLoopActivationOutput, location_name: "HumanLoopActivationOutput"))
570
607
  DetectModerationLabelsResponse.struct_class = Types::DetectModerationLabelsResponse
571
608
 
609
+ DetectProtectiveEquipmentRequest.add_member(:image, Shapes::ShapeRef.new(shape: Image, required: true, location_name: "Image"))
610
+ DetectProtectiveEquipmentRequest.add_member(:summarization_attributes, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummarizationAttributes, location_name: "SummarizationAttributes"))
611
+ DetectProtectiveEquipmentRequest.struct_class = Types::DetectProtectiveEquipmentRequest
612
+
613
+ DetectProtectiveEquipmentResponse.add_member(:protective_equipment_model_version, Shapes::ShapeRef.new(shape: String, location_name: "ProtectiveEquipmentModelVersion"))
614
+ DetectProtectiveEquipmentResponse.add_member(:persons, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersons, location_name: "Persons"))
615
+ DetectProtectiveEquipmentResponse.add_member(:summary, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummary, location_name: "Summary"))
616
+ DetectProtectiveEquipmentResponse.struct_class = Types::DetectProtectiveEquipmentResponse
617
+
572
618
  DetectTextFilters.add_member(:word_filter, Shapes::ShapeRef.new(shape: DetectionFilter, location_name: "WordFilter"))
573
619
  DetectTextFilters.add_member(:regions_of_interest, Shapes::ShapeRef.new(shape: RegionsOfInterest, location_name: "RegionsOfInterest"))
574
620
  DetectTextFilters.struct_class = Types::DetectTextFilters
@@ -592,6 +638,14 @@ module Aws::Rekognition
592
638
 
593
639
  Emotions.member = Shapes::ShapeRef.new(shape: Emotion)
594
640
 
641
+ EquipmentDetection.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
642
+ EquipmentDetection.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
643
+ EquipmentDetection.add_member(:type, Shapes::ShapeRef.new(shape: ProtectiveEquipmentType, location_name: "Type"))
644
+ EquipmentDetection.add_member(:covers_body_part, Shapes::ShapeRef.new(shape: CoversBodyPart, location_name: "CoversBodyPart"))
645
+ EquipmentDetection.struct_class = Types::EquipmentDetection
646
+
647
+ EquipmentDetections.member = Shapes::ShapeRef.new(shape: EquipmentDetection)
648
+
595
649
  EvaluationResult.add_member(:f1_score, Shapes::ShapeRef.new(shape: Float, location_name: "F1Score"))
596
650
  EvaluationResult.add_member(:summary, Shapes::ShapeRef.new(shape: Summary, location_name: "Summary"))
597
651
  EvaluationResult.struct_class = Types::EvaluationResult
@@ -900,6 +954,12 @@ module Aws::Rekognition
900
954
  ListStreamProcessorsResponse.add_member(:stream_processors, Shapes::ShapeRef.new(shape: StreamProcessorList, location_name: "StreamProcessors"))
901
955
  ListStreamProcessorsResponse.struct_class = Types::ListStreamProcessorsResponse
902
956
 
957
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
958
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
959
+
960
+ ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
961
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
962
+
903
963
  ModerationLabel.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
904
964
  ModerationLabel.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
905
965
  ModerationLabel.add_member(:parent_name, Shapes::ShapeRef.new(shape: String, location_name: "ParentName"))
@@ -975,10 +1035,37 @@ module Aws::Rekognition
975
1035
  ProjectVersionDescription.add_member(:training_data_result, Shapes::ShapeRef.new(shape: TrainingDataResult, location_name: "TrainingDataResult"))
976
1036
  ProjectVersionDescription.add_member(:testing_data_result, Shapes::ShapeRef.new(shape: TestingDataResult, location_name: "TestingDataResult"))
977
1037
  ProjectVersionDescription.add_member(:evaluation_result, Shapes::ShapeRef.new(shape: EvaluationResult, location_name: "EvaluationResult"))
1038
+ ProjectVersionDescription.add_member(:manifest_summary, Shapes::ShapeRef.new(shape: GroundTruthManifest, location_name: "ManifestSummary"))
978
1039
  ProjectVersionDescription.struct_class = Types::ProjectVersionDescription
979
1040
 
980
1041
  ProjectVersionDescriptions.member = Shapes::ShapeRef.new(shape: ProjectVersionDescription)
981
1042
 
1043
+ ProtectiveEquipmentBodyPart.add_member(:name, Shapes::ShapeRef.new(shape: BodyPart, location_name: "Name"))
1044
+ ProtectiveEquipmentBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1045
+ ProtectiveEquipmentBodyPart.add_member(:equipment_detections, Shapes::ShapeRef.new(shape: EquipmentDetections, location_name: "EquipmentDetections"))
1046
+ ProtectiveEquipmentBodyPart.struct_class = Types::ProtectiveEquipmentBodyPart
1047
+
1048
+ ProtectiveEquipmentPerson.add_member(:body_parts, Shapes::ShapeRef.new(shape: BodyParts, location_name: "BodyParts"))
1049
+ ProtectiveEquipmentPerson.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
1050
+ ProtectiveEquipmentPerson.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1051
+ ProtectiveEquipmentPerson.add_member(:id, Shapes::ShapeRef.new(shape: UInteger, location_name: "Id"))
1052
+ ProtectiveEquipmentPerson.struct_class = Types::ProtectiveEquipmentPerson
1053
+
1054
+ ProtectiveEquipmentPersonIds.member = Shapes::ShapeRef.new(shape: UInteger)
1055
+
1056
+ ProtectiveEquipmentPersons.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentPerson)
1057
+
1058
+ ProtectiveEquipmentSummarizationAttributes.add_member(:min_confidence, Shapes::ShapeRef.new(shape: Percent, required: true, location_name: "MinConfidence"))
1059
+ ProtectiveEquipmentSummarizationAttributes.add_member(:required_equipment_types, Shapes::ShapeRef.new(shape: ProtectiveEquipmentTypes, required: true, location_name: "RequiredEquipmentTypes"))
1060
+ ProtectiveEquipmentSummarizationAttributes.struct_class = Types::ProtectiveEquipmentSummarizationAttributes
1061
+
1062
+ ProtectiveEquipmentSummary.add_member(:persons_with_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithRequiredEquipment"))
1063
+ ProtectiveEquipmentSummary.add_member(:persons_without_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithoutRequiredEquipment"))
1064
+ ProtectiveEquipmentSummary.add_member(:persons_indeterminate, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsIndeterminate"))
1065
+ ProtectiveEquipmentSummary.struct_class = Types::ProtectiveEquipmentSummary
1066
+
1067
+ ProtectiveEquipmentTypes.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentType)
1068
+
982
1069
  ProvisionedThroughputExceededException.struct_class = Types::ProvisionedThroughputExceededException
983
1070
 
984
1071
  Reasons.member = Shapes::ShapeRef.new(shape: Reason)
@@ -1054,6 +1141,8 @@ module Aws::Rekognition
1054
1141
 
1055
1142
  SegmentTypesInfo.member = Shapes::ShapeRef.new(shape: SegmentTypeInfo)
1056
1143
 
1144
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
1145
+
1057
1146
  ShotSegment.add_member(:index, Shapes::ShapeRef.new(shape: ULong, location_name: "Index"))
1058
1147
  ShotSegment.add_member(:confidence, Shapes::ShapeRef.new(shape: SegmentConfidence, location_name: "Confidence"))
1059
1148
  ShotSegment.struct_class = Types::ShotSegment
@@ -1201,6 +1290,17 @@ module Aws::Rekognition
1201
1290
  Sunglasses.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1202
1291
  Sunglasses.struct_class = Types::Sunglasses
1203
1292
 
1293
+ TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
1294
+
1295
+ TagMap.key = Shapes::ShapeRef.new(shape: TagKey)
1296
+ TagMap.value = Shapes::ShapeRef.new(shape: TagValue)
1297
+
1298
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
1299
+ TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, required: true, location_name: "Tags"))
1300
+ TagResourceRequest.struct_class = Types::TagResourceRequest
1301
+
1302
+ TagResourceResponse.struct_class = Types::TagResourceResponse
1303
+
1204
1304
  TechnicalCueSegment.add_member(:type, Shapes::ShapeRef.new(shape: TechnicalCueType, location_name: "Type"))
1205
1305
  TechnicalCueSegment.add_member(:confidence, Shapes::ShapeRef.new(shape: SegmentConfidence, location_name: "Confidence"))
1206
1306
  TechnicalCueSegment.struct_class = Types::TechnicalCueSegment
@@ -1211,6 +1311,7 @@ module Aws::Rekognition
1211
1311
 
1212
1312
  TestingDataResult.add_member(:input, Shapes::ShapeRef.new(shape: TestingData, location_name: "Input"))
1213
1313
  TestingDataResult.add_member(:output, Shapes::ShapeRef.new(shape: TestingData, location_name: "Output"))
1314
+ TestingDataResult.add_member(:validation, Shapes::ShapeRef.new(shape: ValidationData, location_name: "Validation"))
1214
1315
  TestingDataResult.struct_class = Types::TestingDataResult
1215
1316
 
1216
1317
  TextDetection.add_member(:detected_text, Shapes::ShapeRef.new(shape: String, location_name: "DetectedText"))
@@ -1236,6 +1337,7 @@ module Aws::Rekognition
1236
1337
 
1237
1338
  TrainingDataResult.add_member(:input, Shapes::ShapeRef.new(shape: TrainingData, location_name: "Input"))
1238
1339
  TrainingDataResult.add_member(:output, Shapes::ShapeRef.new(shape: TrainingData, location_name: "Output"))
1340
+ TrainingDataResult.add_member(:validation, Shapes::ShapeRef.new(shape: ValidationData, location_name: "Validation"))
1239
1341
  TrainingDataResult.struct_class = Types::TrainingDataResult
1240
1342
 
1241
1343
  UnindexedFace.add_member(:reasons, Shapes::ShapeRef.new(shape: Reasons, location_name: "Reasons"))
@@ -1244,8 +1346,17 @@ module Aws::Rekognition
1244
1346
 
1245
1347
  UnindexedFaces.member = Shapes::ShapeRef.new(shape: UnindexedFace)
1246
1348
 
1349
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
1350
+ UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
1351
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
1352
+
1353
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
1354
+
1247
1355
  Urls.member = Shapes::ShapeRef.new(shape: Url)
1248
1356
 
1357
+ ValidationData.add_member(:assets, Shapes::ShapeRef.new(shape: Assets, location_name: "Assets"))
1358
+ ValidationData.struct_class = Types::ValidationData
1359
+
1249
1360
  VersionNames.member = Shapes::ShapeRef.new(shape: VersionName)
1250
1361
 
1251
1362
  Video.add_member(:s3_object, Shapes::ShapeRef.new(shape: S3Object, location_name: "S3Object"))
@@ -1309,6 +1420,7 @@ module Aws::Rekognition
1309
1420
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1310
1421
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1311
1422
  o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
1423
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1312
1424
  end)
1313
1425
 
1314
1426
  api.add_operation(:create_project, Seahorse::Model::Operation.new.tap do |o|
@@ -1340,6 +1452,7 @@ module Aws::Rekognition
1340
1452
  o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1341
1453
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1342
1454
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1455
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1343
1456
  end)
1344
1457
 
1345
1458
  api.add_operation(:create_stream_processor, Seahorse::Model::Operation.new.tap do |o|
@@ -1355,6 +1468,7 @@ module Aws::Rekognition
1355
1468
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1356
1469
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
1357
1470
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1471
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1358
1472
  end)
1359
1473
 
1360
1474
  api.add_operation(:delete_collection, Seahorse::Model::Operation.new.tap do |o|
@@ -1567,6 +1681,22 @@ module Aws::Rekognition
1567
1681
  o.errors << Shapes::ShapeRef.new(shape: HumanLoopQuotaExceededException)
1568
1682
  end)
1569
1683
 
1684
+ api.add_operation(:detect_protective_equipment, Seahorse::Model::Operation.new.tap do |o|
1685
+ o.name = "DetectProtectiveEquipment"
1686
+ o.http_method = "POST"
1687
+ o.http_request_uri = "/"
1688
+ o.input = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentRequest)
1689
+ o.output = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentResponse)
1690
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3ObjectException)
1691
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1692
+ o.errors << Shapes::ShapeRef.new(shape: ImageTooLargeException)
1693
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1694
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1695
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1696
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1697
+ o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1698
+ end)
1699
+
1570
1700
  api.add_operation(:detect_text, Seahorse::Model::Operation.new.tap do |o|
1571
1701
  o.name = "DetectText"
1572
1702
  o.http_method = "POST"
@@ -1780,6 +1910,7 @@ module Aws::Rekognition
1780
1910
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1781
1911
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1782
1912
  o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1913
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1783
1914
  end)
1784
1915
 
1785
1916
  api.add_operation(:list_collections, Seahorse::Model::Operation.new.tap do |o|
@@ -1844,6 +1975,20 @@ module Aws::Rekognition
1844
1975
  )
1845
1976
  end)
1846
1977
 
1978
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1979
+ o.name = "ListTagsForResource"
1980
+ o.http_method = "POST"
1981
+ o.http_request_uri = "/"
1982
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
1983
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
1984
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1985
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1986
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1987
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1988
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1989
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1990
+ end)
1991
+
1847
1992
  api.add_operation(:recognize_celebrities, Seahorse::Model::Operation.new.tap do |o|
1848
1993
  o.name = "RecognizeCelebrities"
1849
1994
  o.http_method = "POST"
@@ -2089,6 +2234,35 @@ module Aws::Rekognition
2089
2234
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
2090
2235
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2091
2236
  end)
2237
+
2238
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
2239
+ o.name = "TagResource"
2240
+ o.http_method = "POST"
2241
+ o.http_request_uri = "/"
2242
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
2243
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
2244
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2245
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2246
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2247
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2248
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2249
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2250
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2251
+ end)
2252
+
2253
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
2254
+ o.name = "UntagResource"
2255
+ o.http_method = "POST"
2256
+ o.http_request_uri = "/"
2257
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
2258
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
2259
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2260
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2261
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2262
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2263
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2264
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2265
+ end)
2092
2266
  end
2093
2267
 
2094
2268
  end