aws-sdk-rekognition 1.46.0 → 1.51.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.51.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.46.0'
52
+ GEM_VERSION = '1.51.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
@@ -578,11 +588,17 @@ module Aws::Rekognition
578
588
  # </note>
579
589
  #
580
590
  # This operation requires permissions to perform the
581
- # `rekognition:CreateCollection` action.
591
+ # `rekognition:CreateCollection` action. If you want to tag your
592
+ # collection, you also require permission to perform the
593
+ # `rekognition:TagResource` operation.
582
594
  #
583
595
  # @option params [required, String] :collection_id
584
596
  # ID for the collection that you are creating.
585
597
  #
598
+ # @option params [Hash<String,String>] :tags
599
+ # A set of tags (key-value pairs) that you want to attach to the
600
+ # collection.
601
+ #
586
602
  # @return [Types::CreateCollectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
587
603
  #
588
604
  # * {Types::CreateCollectionResponse#status_code #status_code} => Integer
@@ -608,6 +624,9 @@ module Aws::Rekognition
608
624
  #
609
625
  # resp = client.create_collection({
610
626
  # collection_id: "CollectionId", # required
627
+ # tags: {
628
+ # "TagKey" => "TagValue",
629
+ # },
611
630
  # })
612
631
  #
613
632
  # @example Response structure
@@ -688,6 +707,21 @@ module Aws::Rekognition
688
707
  # @option params [required, Types::TestingData] :testing_data
689
708
  # The dataset to use for testing.
690
709
  #
710
+ # @option params [Hash<String,String>] :tags
711
+ # A set of tags (key-value pairs) that you want to attach to the model.
712
+ #
713
+ # @option params [String] :kms_key_id
714
+ # The identifier for your AWS Key Management Service (AWS KMS) customer
715
+ # master key (CMK). You can supply the Amazon Resource Name (ARN) of
716
+ # your CMK, the ID of your CMK, or an alias for your CMK. The key is
717
+ # used to encrypt training and test images copied into the service for
718
+ # model training. Your source images are unaffected. The key is also
719
+ # used to encrypt training results and manifest files written to the
720
+ # output Amazon S3 bucket (`OutputConfig`).
721
+ #
722
+ # If you don't specify a value for `KmsKeyId`, images copied into the
723
+ # service are encrypted using a key that AWS owns and manages.
724
+ #
691
725
  # @return [Types::CreateProjectVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
692
726
  #
693
727
  # * {Types::CreateProjectVersionResponse#project_version_arn #project_version_arn} => String
@@ -728,6 +762,10 @@ module Aws::Rekognition
728
762
  # ],
729
763
  # auto_create: false,
730
764
  # },
765
+ # tags: {
766
+ # "TagKey" => "TagValue",
767
+ # },
768
+ # kms_key_id: "KmsKeyId",
731
769
  # })
732
770
  #
733
771
  # @example Response structure
@@ -760,6 +798,11 @@ module Aws::Rekognition
760
798
  # StopStreamProcessor to stop processing. You can delete the stream
761
799
  # processor by calling DeleteStreamProcessor.
762
800
  #
801
+ # This operation requires permissions to perform the
802
+ # `rekognition:CreateStreamProcessor` action. If you want to tag your
803
+ # stream processor, you also require permission to perform the
804
+ # `rekognition:TagResource` operation.
805
+ #
763
806
  # @option params [required, Types::StreamProcessorInput] :input
764
807
  # Kinesis video stream stream that provides the source streaming video.
765
808
  # If you are using the AWS CLI, the parameter name is
@@ -784,6 +827,10 @@ module Aws::Rekognition
784
827
  # @option params [required, String] :role_arn
785
828
  # ARN of the IAM role that allows access to the stream processor.
786
829
  #
830
+ # @option params [Hash<String,String>] :tags
831
+ # A set of tags (key-value pairs) that you want to attach to the stream
832
+ # processor.
833
+ #
787
834
  # @return [Types::CreateStreamProcessorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
788
835
  #
789
836
  # * {Types::CreateStreamProcessorResponse#stream_processor_arn #stream_processor_arn} => String
@@ -809,6 +856,9 @@ module Aws::Rekognition
809
856
  # },
810
857
  # },
811
858
  # role_arn: "RoleArn", # required
859
+ # tags: {
860
+ # "TagKey" => "TagValue",
861
+ # },
812
862
  # })
813
863
  #
814
864
  # @example Response structure
@@ -1143,6 +1193,7 @@ module Aws::Rekognition
1143
1193
  # resp.project_version_descriptions[0].manifest_summary.s3_object.bucket #=> String
1144
1194
  # resp.project_version_descriptions[0].manifest_summary.s3_object.name #=> String
1145
1195
  # resp.project_version_descriptions[0].manifest_summary.s3_object.version #=> String
1196
+ # resp.project_version_descriptions[0].kms_key_id #=> String
1146
1197
  # resp.next_token #=> String
1147
1198
  #
1148
1199
  #
@@ -1814,6 +1865,115 @@ module Aws::Rekognition
1814
1865
  req.send_request(options)
1815
1866
  end
1816
1867
 
1868
+ # Detects Personal Protective Equipment (PPE) worn by people detected in
1869
+ # an image. Amazon Rekognition can detect the following types of PPE.
1870
+ #
1871
+ # * Face cover
1872
+ #
1873
+ # * Hand cover
1874
+ #
1875
+ # * Head cover
1876
+ #
1877
+ # You pass the input image as base64-encoded image bytes or as a
1878
+ # reference to an image in an Amazon S3 bucket. The image must be either
1879
+ # a PNG or JPG formatted file.
1880
+ #
1881
+ # `DetectProtectiveEquipment` detects PPE worn by up to 15 persons
1882
+ # detected in an image.
1883
+ #
1884
+ # For each person detected in the image the API returns an array of body
1885
+ # parts (face, head, left-hand, right-hand). For each body part, an
1886
+ # array of detected items of PPE is returned, including an indicator of
1887
+ # whether or not the PPE covers the body part. The API returns the
1888
+ # confidence it has in each detection (person, PPE, body part and body
1889
+ # part coverage). It also returns a bounding box (BoundingBox) for each
1890
+ # detected person and each detected item of PPE.
1891
+ #
1892
+ # You can optionally request a summary of detected PPE items with the
1893
+ # `SummarizationAttributes` input parameter. The summary provides the
1894
+ # following information.
1895
+ #
1896
+ # * The persons detected as wearing all of the types of PPE that you
1897
+ # specify.
1898
+ #
1899
+ # * The persons detected as not wearing all of the types PPE that you
1900
+ # specify.
1901
+ #
1902
+ # * The persons detected where PPE adornment could not be determined.
1903
+ #
1904
+ # This is a stateless API operation. That is, the operation does not
1905
+ # persist any data.
1906
+ #
1907
+ # This operation requires permissions to perform the
1908
+ # `rekognition:DetectProtectiveEquipment` action.
1909
+ #
1910
+ # @option params [required, Types::Image] :image
1911
+ # The image in which you want to detect PPE on detected persons. The
1912
+ # image can be passed as image bytes or you can reference an image
1913
+ # stored in an Amazon S3 bucket.
1914
+ #
1915
+ # @option params [Types::ProtectiveEquipmentSummarizationAttributes] :summarization_attributes
1916
+ # An array of PPE types that you want to summarize.
1917
+ #
1918
+ # @return [Types::DetectProtectiveEquipmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1919
+ #
1920
+ # * {Types::DetectProtectiveEquipmentResponse#protective_equipment_model_version #protective_equipment_model_version} => String
1921
+ # * {Types::DetectProtectiveEquipmentResponse#persons #persons} => Array&lt;Types::ProtectiveEquipmentPerson&gt;
1922
+ # * {Types::DetectProtectiveEquipmentResponse#summary #summary} => Types::ProtectiveEquipmentSummary
1923
+ #
1924
+ # @example Request syntax with placeholder values
1925
+ #
1926
+ # resp = client.detect_protective_equipment({
1927
+ # image: { # required
1928
+ # bytes: "data",
1929
+ # s3_object: {
1930
+ # bucket: "S3Bucket",
1931
+ # name: "S3ObjectName",
1932
+ # version: "S3ObjectVersion",
1933
+ # },
1934
+ # },
1935
+ # summarization_attributes: {
1936
+ # min_confidence: 1.0, # required
1937
+ # required_equipment_types: ["FACE_COVER"], # required, accepts FACE_COVER, HAND_COVER, HEAD_COVER
1938
+ # },
1939
+ # })
1940
+ #
1941
+ # @example Response structure
1942
+ #
1943
+ # resp.protective_equipment_model_version #=> String
1944
+ # resp.persons #=> Array
1945
+ # resp.persons[0].body_parts #=> Array
1946
+ # resp.persons[0].body_parts[0].name #=> String, one of "FACE", "HEAD", "LEFT_HAND", "RIGHT_HAND"
1947
+ # resp.persons[0].body_parts[0].confidence #=> Float
1948
+ # resp.persons[0].body_parts[0].equipment_detections #=> Array
1949
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.width #=> Float
1950
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.height #=> Float
1951
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.left #=> Float
1952
+ # resp.persons[0].body_parts[0].equipment_detections[0].bounding_box.top #=> Float
1953
+ # resp.persons[0].body_parts[0].equipment_detections[0].confidence #=> Float
1954
+ # resp.persons[0].body_parts[0].equipment_detections[0].type #=> String, one of "FACE_COVER", "HAND_COVER", "HEAD_COVER"
1955
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.confidence #=> Float
1956
+ # resp.persons[0].body_parts[0].equipment_detections[0].covers_body_part.value #=> Boolean
1957
+ # resp.persons[0].bounding_box.width #=> Float
1958
+ # resp.persons[0].bounding_box.height #=> Float
1959
+ # resp.persons[0].bounding_box.left #=> Float
1960
+ # resp.persons[0].bounding_box.top #=> Float
1961
+ # resp.persons[0].confidence #=> Float
1962
+ # resp.persons[0].id #=> Integer
1963
+ # resp.summary.persons_with_required_equipment #=> Array
1964
+ # resp.summary.persons_with_required_equipment[0] #=> Integer
1965
+ # resp.summary.persons_without_required_equipment #=> Array
1966
+ # resp.summary.persons_without_required_equipment[0] #=> Integer
1967
+ # resp.summary.persons_indeterminate #=> Array
1968
+ # resp.summary.persons_indeterminate[0] #=> Integer
1969
+ #
1970
+ # @overload detect_protective_equipment(params = {})
1971
+ # @param [Hash] params ({})
1972
+ def detect_protective_equipment(params = {}, options = {})
1973
+ req = build_request(:detect_protective_equipment, params)
1974
+ req.send_request(options)
1975
+ end
1976
+
1817
1977
  # Detects text in the input image and converts it into machine-readable
1818
1978
  # text.
1819
1979
  #
@@ -3673,6 +3833,38 @@ module Aws::Rekognition
3673
3833
  req.send_request(options)
3674
3834
  end
3675
3835
 
3836
+ # Returns a list of tags in an Amazon Rekognition collection, stream
3837
+ # processor, or Custom Labels model.
3838
+ #
3839
+ # This operation requires permissions to perform the
3840
+ # `rekognition:ListTagsForResource` action.
3841
+ #
3842
+ # @option params [required, String] :resource_arn
3843
+ # Amazon Resource Name (ARN) of the model, collection, or stream
3844
+ # processor that contains the tags that you want a list of.
3845
+ #
3846
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3847
+ #
3848
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
3849
+ #
3850
+ # @example Request syntax with placeholder values
3851
+ #
3852
+ # resp = client.list_tags_for_resource({
3853
+ # resource_arn: "ResourceArn", # required
3854
+ # })
3855
+ #
3856
+ # @example Response structure
3857
+ #
3858
+ # resp.tags #=> Hash
3859
+ # resp.tags["TagKey"] #=> String
3860
+ #
3861
+ # @overload list_tags_for_resource(params = {})
3862
+ # @param [Hash] params ({})
3863
+ def list_tags_for_resource(params = {}, options = {})
3864
+ req = build_request(:list_tags_for_resource, params)
3865
+ req.send_request(options)
3866
+ end
3867
+
3676
3868
  # Returns an array of celebrities recognized in the input image. For
3677
3869
  # more information, see Recognizing Celebrities in the Amazon
3678
3870
  # Rekognition Developer Guide.
@@ -3949,6 +4141,9 @@ module Aws::Rekognition
3949
4141
  # bounding box contains a face) of the face that Amazon Rekognition used
3950
4142
  # for the input image.
3951
4143
  #
4144
+ # If no faces are detected in the input image, `SearchFacesByImage`
4145
+ # returns an `InvalidParameterException` error.
4146
+ #
3952
4147
  # For an example, Searching for a Face Using an Image in the Amazon
3953
4148
  # Rekognition Developer Guide.
3954
4149
  #
@@ -4877,6 +5072,71 @@ module Aws::Rekognition
4877
5072
  req.send_request(options)
4878
5073
  end
4879
5074
 
5075
+ # Adds one or more key-value tags to an Amazon Rekognition collection,
5076
+ # stream processor, or Custom Labels model. For more information, see
5077
+ # [Tagging AWS Resources][1].
5078
+ #
5079
+ # This operation requires permissions to perform the
5080
+ # `rekognition:TagResource` action.
5081
+ #
5082
+ #
5083
+ #
5084
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
5085
+ #
5086
+ # @option params [required, String] :resource_arn
5087
+ # Amazon Resource Name (ARN) of the model, collection, or stream
5088
+ # processor that you want to assign the tags to.
5089
+ #
5090
+ # @option params [required, Hash<String,String>] :tags
5091
+ # The key-value tags to assign to the resource.
5092
+ #
5093
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5094
+ #
5095
+ # @example Request syntax with placeholder values
5096
+ #
5097
+ # resp = client.tag_resource({
5098
+ # resource_arn: "ResourceArn", # required
5099
+ # tags: { # required
5100
+ # "TagKey" => "TagValue",
5101
+ # },
5102
+ # })
5103
+ #
5104
+ # @overload tag_resource(params = {})
5105
+ # @param [Hash] params ({})
5106
+ def tag_resource(params = {}, options = {})
5107
+ req = build_request(:tag_resource, params)
5108
+ req.send_request(options)
5109
+ end
5110
+
5111
+ # Removes one or more tags from an Amazon Rekognition collection, stream
5112
+ # processor, or Custom Labels model.
5113
+ #
5114
+ # This operation requires permissions to perform the
5115
+ # `rekognition:UntagResource` action.
5116
+ #
5117
+ # @option params [required, String] :resource_arn
5118
+ # Amazon Resource Name (ARN) of the model, collection, or stream
5119
+ # processor that you want to remove the tags from.
5120
+ #
5121
+ # @option params [required, Array<String>] :tag_keys
5122
+ # A list of the tags that you want to remove.
5123
+ #
5124
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5125
+ #
5126
+ # @example Request syntax with placeholder values
5127
+ #
5128
+ # resp = client.untag_resource({
5129
+ # resource_arn: "ResourceArn", # required
5130
+ # tag_keys: ["TagKey"], # required
5131
+ # })
5132
+ #
5133
+ # @overload untag_resource(params = {})
5134
+ # @param [Hash] params ({})
5135
+ def untag_resource(params = {}, options = {})
5136
+ req = build_request(:untag_resource, params)
5137
+ req.send_request(options)
5138
+ end
5139
+
4880
5140
  # @!endgroup
4881
5141
 
4882
5142
  # @param params ({})
@@ -4890,7 +5150,7 @@ module Aws::Rekognition
4890
5150
  params: params,
4891
5151
  config: config)
4892
5152
  context[:gem_name] = 'aws-sdk-rekognition'
4893
- context[:gem_version] = '1.46.0'
5153
+ context[:gem_version] = '1.51.0'
4894
5154
  Seahorse::Client::Request.new(handlers, context)
4895
5155
  end
4896
5156
 
@@ -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')
@@ -169,6 +176,7 @@ module Aws::Rekognition
169
176
  KinesisDataStream = Shapes::StructureShape.new(name: 'KinesisDataStream')
170
177
  KinesisVideoArn = Shapes::StringShape.new(name: 'KinesisVideoArn')
171
178
  KinesisVideoStream = Shapes::StructureShape.new(name: 'KinesisVideoStream')
179
+ KmsKeyId = Shapes::StringShape.new(name: 'KmsKeyId')
172
180
  Label = Shapes::StructureShape.new(name: 'Label')
173
181
  LabelDetection = Shapes::StructureShape.new(name: 'LabelDetection')
174
182
  LabelDetectionSortBy = Shapes::StringShape.new(name: 'LabelDetectionSortBy')
@@ -184,6 +192,8 @@ module Aws::Rekognition
184
192
  ListFacesResponse = Shapes::StructureShape.new(name: 'ListFacesResponse')
185
193
  ListStreamProcessorsRequest = Shapes::StructureShape.new(name: 'ListStreamProcessorsRequest')
186
194
  ListStreamProcessorsResponse = Shapes::StructureShape.new(name: 'ListStreamProcessorsResponse')
195
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
196
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
187
197
  MaxFaces = Shapes::IntegerShape.new(name: 'MaxFaces')
188
198
  MaxFacesToIndex = Shapes::IntegerShape.new(name: 'MaxFacesToIndex')
189
199
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
@@ -220,6 +230,14 @@ module Aws::Rekognition
220
230
  ProjectVersionStatus = Shapes::StringShape.new(name: 'ProjectVersionStatus')
221
231
  ProjectVersionsPageSize = Shapes::IntegerShape.new(name: 'ProjectVersionsPageSize')
222
232
  ProjectsPageSize = Shapes::IntegerShape.new(name: 'ProjectsPageSize')
233
+ ProtectiveEquipmentBodyPart = Shapes::StructureShape.new(name: 'ProtectiveEquipmentBodyPart')
234
+ ProtectiveEquipmentPerson = Shapes::StructureShape.new(name: 'ProtectiveEquipmentPerson')
235
+ ProtectiveEquipmentPersonIds = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersonIds')
236
+ ProtectiveEquipmentPersons = Shapes::ListShape.new(name: 'ProtectiveEquipmentPersons')
237
+ ProtectiveEquipmentSummarizationAttributes = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummarizationAttributes')
238
+ ProtectiveEquipmentSummary = Shapes::StructureShape.new(name: 'ProtectiveEquipmentSummary')
239
+ ProtectiveEquipmentType = Shapes::StringShape.new(name: 'ProtectiveEquipmentType')
240
+ ProtectiveEquipmentTypes = Shapes::ListShape.new(name: 'ProtectiveEquipmentTypes')
223
241
  ProvisionedThroughputExceededException = Shapes::StructureShape.new(name: 'ProvisionedThroughputExceededException')
224
242
  QualityFilter = Shapes::StringShape.new(name: 'QualityFilter')
225
243
  Reason = Shapes::StringShape.new(name: 'Reason')
@@ -230,6 +248,7 @@ module Aws::Rekognition
230
248
  RegionsOfInterest = Shapes::ListShape.new(name: 'RegionsOfInterest')
231
249
  RekognitionUniqueId = Shapes::StringShape.new(name: 'RekognitionUniqueId')
232
250
  ResourceAlreadyExistsException = Shapes::StructureShape.new(name: 'ResourceAlreadyExistsException')
251
+ ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
233
252
  ResourceInUseException = Shapes::StructureShape.new(name: 'ResourceInUseException')
234
253
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
235
254
  ResourceNotReadyException = Shapes::StructureShape.new(name: 'ResourceNotReadyException')
@@ -251,6 +270,7 @@ module Aws::Rekognition
251
270
  SegmentTypeInfo = Shapes::StructureShape.new(name: 'SegmentTypeInfo')
252
271
  SegmentTypes = Shapes::ListShape.new(name: 'SegmentTypes')
253
272
  SegmentTypesInfo = Shapes::ListShape.new(name: 'SegmentTypesInfo')
273
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
254
274
  ShotSegment = Shapes::StructureShape.new(name: 'ShotSegment')
255
275
  Smile = Shapes::StructureShape.new(name: 'Smile')
256
276
  StartCelebrityRecognitionRequest = Shapes::StructureShape.new(name: 'StartCelebrityRecognitionRequest')
@@ -293,6 +313,12 @@ module Aws::Rekognition
293
313
  String = Shapes::StringShape.new(name: 'String')
294
314
  Summary = Shapes::StructureShape.new(name: 'Summary')
295
315
  Sunglasses = Shapes::StructureShape.new(name: 'Sunglasses')
316
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
317
+ TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
318
+ TagMap = Shapes::MapShape.new(name: 'TagMap')
319
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
320
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
321
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
296
322
  TechnicalCueSegment = Shapes::StructureShape.new(name: 'TechnicalCueSegment')
297
323
  TechnicalCueType = Shapes::StringShape.new(name: 'TechnicalCueType')
298
324
  TestingData = Shapes::StructureShape.new(name: 'TestingData')
@@ -311,6 +337,8 @@ module Aws::Rekognition
311
337
  ULong = Shapes::IntegerShape.new(name: 'ULong')
312
338
  UnindexedFace = Shapes::StructureShape.new(name: 'UnindexedFace')
313
339
  UnindexedFaces = Shapes::ListShape.new(name: 'UnindexedFaces')
340
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
341
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
314
342
  Url = Shapes::StringShape.new(name: 'Url')
315
343
  Urls = Shapes::ListShape.new(name: 'Urls')
316
344
  ValidationData = Shapes::StructureShape.new(name: 'ValidationData')
@@ -347,6 +375,8 @@ module Aws::Rekognition
347
375
  Beard.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
348
376
  Beard.struct_class = Types::Beard
349
377
 
378
+ BodyParts.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentBodyPart)
379
+
350
380
  BoundingBox.add_member(:width, Shapes::ShapeRef.new(shape: Float, location_name: "Width"))
351
381
  BoundingBox.add_member(:height, Shapes::ShapeRef.new(shape: Float, location_name: "Height"))
352
382
  BoundingBox.add_member(:left, Shapes::ShapeRef.new(shape: Float, location_name: "Left"))
@@ -420,7 +450,12 @@ module Aws::Rekognition
420
450
 
421
451
  ContentModerationDetections.member = Shapes::ShapeRef.new(shape: ContentModerationDetection)
422
452
 
453
+ CoversBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
454
+ CoversBodyPart.add_member(:value, Shapes::ShapeRef.new(shape: Boolean, location_name: "Value"))
455
+ CoversBodyPart.struct_class = Types::CoversBodyPart
456
+
423
457
  CreateCollectionRequest.add_member(:collection_id, Shapes::ShapeRef.new(shape: CollectionId, required: true, location_name: "CollectionId"))
458
+ CreateCollectionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
424
459
  CreateCollectionRequest.struct_class = Types::CreateCollectionRequest
425
460
 
426
461
  CreateCollectionResponse.add_member(:status_code, Shapes::ShapeRef.new(shape: UInteger, location_name: "StatusCode"))
@@ -439,6 +474,8 @@ module Aws::Rekognition
439
474
  CreateProjectVersionRequest.add_member(:output_config, Shapes::ShapeRef.new(shape: OutputConfig, required: true, location_name: "OutputConfig"))
440
475
  CreateProjectVersionRequest.add_member(:training_data, Shapes::ShapeRef.new(shape: TrainingData, required: true, location_name: "TrainingData"))
441
476
  CreateProjectVersionRequest.add_member(:testing_data, Shapes::ShapeRef.new(shape: TestingData, required: true, location_name: "TestingData"))
477
+ CreateProjectVersionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
478
+ CreateProjectVersionRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
442
479
  CreateProjectVersionRequest.struct_class = Types::CreateProjectVersionRequest
443
480
 
444
481
  CreateProjectVersionResponse.add_member(:project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, location_name: "ProjectVersionArn"))
@@ -449,6 +486,7 @@ module Aws::Rekognition
449
486
  CreateStreamProcessorRequest.add_member(:name, Shapes::ShapeRef.new(shape: StreamProcessorName, required: true, location_name: "Name"))
450
487
  CreateStreamProcessorRequest.add_member(:settings, Shapes::ShapeRef.new(shape: StreamProcessorSettings, required: true, location_name: "Settings"))
451
488
  CreateStreamProcessorRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "RoleArn"))
489
+ CreateStreamProcessorRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
452
490
  CreateStreamProcessorRequest.struct_class = Types::CreateStreamProcessorRequest
453
491
 
454
492
  CreateStreamProcessorResponse.add_member(:stream_processor_arn, Shapes::ShapeRef.new(shape: StreamProcessorArn, location_name: "StreamProcessorArn"))
@@ -570,6 +608,15 @@ module Aws::Rekognition
570
608
  DetectModerationLabelsResponse.add_member(:human_loop_activation_output, Shapes::ShapeRef.new(shape: HumanLoopActivationOutput, location_name: "HumanLoopActivationOutput"))
571
609
  DetectModerationLabelsResponse.struct_class = Types::DetectModerationLabelsResponse
572
610
 
611
+ DetectProtectiveEquipmentRequest.add_member(:image, Shapes::ShapeRef.new(shape: Image, required: true, location_name: "Image"))
612
+ DetectProtectiveEquipmentRequest.add_member(:summarization_attributes, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummarizationAttributes, location_name: "SummarizationAttributes"))
613
+ DetectProtectiveEquipmentRequest.struct_class = Types::DetectProtectiveEquipmentRequest
614
+
615
+ DetectProtectiveEquipmentResponse.add_member(:protective_equipment_model_version, Shapes::ShapeRef.new(shape: String, location_name: "ProtectiveEquipmentModelVersion"))
616
+ DetectProtectiveEquipmentResponse.add_member(:persons, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersons, location_name: "Persons"))
617
+ DetectProtectiveEquipmentResponse.add_member(:summary, Shapes::ShapeRef.new(shape: ProtectiveEquipmentSummary, location_name: "Summary"))
618
+ DetectProtectiveEquipmentResponse.struct_class = Types::DetectProtectiveEquipmentResponse
619
+
573
620
  DetectTextFilters.add_member(:word_filter, Shapes::ShapeRef.new(shape: DetectionFilter, location_name: "WordFilter"))
574
621
  DetectTextFilters.add_member(:regions_of_interest, Shapes::ShapeRef.new(shape: RegionsOfInterest, location_name: "RegionsOfInterest"))
575
622
  DetectTextFilters.struct_class = Types::DetectTextFilters
@@ -593,6 +640,14 @@ module Aws::Rekognition
593
640
 
594
641
  Emotions.member = Shapes::ShapeRef.new(shape: Emotion)
595
642
 
643
+ EquipmentDetection.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
644
+ EquipmentDetection.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
645
+ EquipmentDetection.add_member(:type, Shapes::ShapeRef.new(shape: ProtectiveEquipmentType, location_name: "Type"))
646
+ EquipmentDetection.add_member(:covers_body_part, Shapes::ShapeRef.new(shape: CoversBodyPart, location_name: "CoversBodyPart"))
647
+ EquipmentDetection.struct_class = Types::EquipmentDetection
648
+
649
+ EquipmentDetections.member = Shapes::ShapeRef.new(shape: EquipmentDetection)
650
+
596
651
  EvaluationResult.add_member(:f1_score, Shapes::ShapeRef.new(shape: Float, location_name: "F1Score"))
597
652
  EvaluationResult.add_member(:summary, Shapes::ShapeRef.new(shape: Summary, location_name: "Summary"))
598
653
  EvaluationResult.struct_class = Types::EvaluationResult
@@ -901,6 +956,12 @@ module Aws::Rekognition
901
956
  ListStreamProcessorsResponse.add_member(:stream_processors, Shapes::ShapeRef.new(shape: StreamProcessorList, location_name: "StreamProcessors"))
902
957
  ListStreamProcessorsResponse.struct_class = Types::ListStreamProcessorsResponse
903
958
 
959
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
960
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
961
+
962
+ ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
963
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
964
+
904
965
  ModerationLabel.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
905
966
  ModerationLabel.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
906
967
  ModerationLabel.add_member(:parent_name, Shapes::ShapeRef.new(shape: String, location_name: "ParentName"))
@@ -977,10 +1038,37 @@ module Aws::Rekognition
977
1038
  ProjectVersionDescription.add_member(:testing_data_result, Shapes::ShapeRef.new(shape: TestingDataResult, location_name: "TestingDataResult"))
978
1039
  ProjectVersionDescription.add_member(:evaluation_result, Shapes::ShapeRef.new(shape: EvaluationResult, location_name: "EvaluationResult"))
979
1040
  ProjectVersionDescription.add_member(:manifest_summary, Shapes::ShapeRef.new(shape: GroundTruthManifest, location_name: "ManifestSummary"))
1041
+ ProjectVersionDescription.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
980
1042
  ProjectVersionDescription.struct_class = Types::ProjectVersionDescription
981
1043
 
982
1044
  ProjectVersionDescriptions.member = Shapes::ShapeRef.new(shape: ProjectVersionDescription)
983
1045
 
1046
+ ProtectiveEquipmentBodyPart.add_member(:name, Shapes::ShapeRef.new(shape: BodyPart, location_name: "Name"))
1047
+ ProtectiveEquipmentBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1048
+ ProtectiveEquipmentBodyPart.add_member(:equipment_detections, Shapes::ShapeRef.new(shape: EquipmentDetections, location_name: "EquipmentDetections"))
1049
+ ProtectiveEquipmentBodyPart.struct_class = Types::ProtectiveEquipmentBodyPart
1050
+
1051
+ ProtectiveEquipmentPerson.add_member(:body_parts, Shapes::ShapeRef.new(shape: BodyParts, location_name: "BodyParts"))
1052
+ ProtectiveEquipmentPerson.add_member(:bounding_box, Shapes::ShapeRef.new(shape: BoundingBox, location_name: "BoundingBox"))
1053
+ ProtectiveEquipmentPerson.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1054
+ ProtectiveEquipmentPerson.add_member(:id, Shapes::ShapeRef.new(shape: UInteger, location_name: "Id"))
1055
+ ProtectiveEquipmentPerson.struct_class = Types::ProtectiveEquipmentPerson
1056
+
1057
+ ProtectiveEquipmentPersonIds.member = Shapes::ShapeRef.new(shape: UInteger)
1058
+
1059
+ ProtectiveEquipmentPersons.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentPerson)
1060
+
1061
+ ProtectiveEquipmentSummarizationAttributes.add_member(:min_confidence, Shapes::ShapeRef.new(shape: Percent, required: true, location_name: "MinConfidence"))
1062
+ ProtectiveEquipmentSummarizationAttributes.add_member(:required_equipment_types, Shapes::ShapeRef.new(shape: ProtectiveEquipmentTypes, required: true, location_name: "RequiredEquipmentTypes"))
1063
+ ProtectiveEquipmentSummarizationAttributes.struct_class = Types::ProtectiveEquipmentSummarizationAttributes
1064
+
1065
+ ProtectiveEquipmentSummary.add_member(:persons_with_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithRequiredEquipment"))
1066
+ ProtectiveEquipmentSummary.add_member(:persons_without_required_equipment, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsWithoutRequiredEquipment"))
1067
+ ProtectiveEquipmentSummary.add_member(:persons_indeterminate, Shapes::ShapeRef.new(shape: ProtectiveEquipmentPersonIds, location_name: "PersonsIndeterminate"))
1068
+ ProtectiveEquipmentSummary.struct_class = Types::ProtectiveEquipmentSummary
1069
+
1070
+ ProtectiveEquipmentTypes.member = Shapes::ShapeRef.new(shape: ProtectiveEquipmentType)
1071
+
984
1072
  ProvisionedThroughputExceededException.struct_class = Types::ProvisionedThroughputExceededException
985
1073
 
986
1074
  Reasons.member = Shapes::ShapeRef.new(shape: Reason)
@@ -1056,6 +1144,8 @@ module Aws::Rekognition
1056
1144
 
1057
1145
  SegmentTypesInfo.member = Shapes::ShapeRef.new(shape: SegmentTypeInfo)
1058
1146
 
1147
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
1148
+
1059
1149
  ShotSegment.add_member(:index, Shapes::ShapeRef.new(shape: ULong, location_name: "Index"))
1060
1150
  ShotSegment.add_member(:confidence, Shapes::ShapeRef.new(shape: SegmentConfidence, location_name: "Confidence"))
1061
1151
  ShotSegment.struct_class = Types::ShotSegment
@@ -1203,6 +1293,17 @@ module Aws::Rekognition
1203
1293
  Sunglasses.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1204
1294
  Sunglasses.struct_class = Types::Sunglasses
1205
1295
 
1296
+ TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
1297
+
1298
+ TagMap.key = Shapes::ShapeRef.new(shape: TagKey)
1299
+ TagMap.value = Shapes::ShapeRef.new(shape: TagValue)
1300
+
1301
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
1302
+ TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, required: true, location_name: "Tags"))
1303
+ TagResourceRequest.struct_class = Types::TagResourceRequest
1304
+
1305
+ TagResourceResponse.struct_class = Types::TagResourceResponse
1306
+
1206
1307
  TechnicalCueSegment.add_member(:type, Shapes::ShapeRef.new(shape: TechnicalCueType, location_name: "Type"))
1207
1308
  TechnicalCueSegment.add_member(:confidence, Shapes::ShapeRef.new(shape: SegmentConfidence, location_name: "Confidence"))
1208
1309
  TechnicalCueSegment.struct_class = Types::TechnicalCueSegment
@@ -1248,6 +1349,12 @@ module Aws::Rekognition
1248
1349
 
1249
1350
  UnindexedFaces.member = Shapes::ShapeRef.new(shape: UnindexedFace)
1250
1351
 
1352
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
1353
+ UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "TagKeys"))
1354
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
1355
+
1356
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
1357
+
1251
1358
  Urls.member = Shapes::ShapeRef.new(shape: Url)
1252
1359
 
1253
1360
  ValidationData.add_member(:assets, Shapes::ShapeRef.new(shape: Assets, location_name: "Assets"))
@@ -1316,6 +1423,7 @@ module Aws::Rekognition
1316
1423
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1317
1424
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1318
1425
  o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
1426
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1319
1427
  end)
1320
1428
 
1321
1429
  api.add_operation(:create_project, Seahorse::Model::Operation.new.tap do |o|
@@ -1347,6 +1455,7 @@ module Aws::Rekognition
1347
1455
  o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1348
1456
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1349
1457
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1458
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1350
1459
  end)
1351
1460
 
1352
1461
  api.add_operation(:create_stream_processor, Seahorse::Model::Operation.new.tap do |o|
@@ -1362,6 +1471,7 @@ module Aws::Rekognition
1362
1471
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1363
1472
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
1364
1473
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1474
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1365
1475
  end)
1366
1476
 
1367
1477
  api.add_operation(:delete_collection, Seahorse::Model::Operation.new.tap do |o|
@@ -1574,6 +1684,22 @@ module Aws::Rekognition
1574
1684
  o.errors << Shapes::ShapeRef.new(shape: HumanLoopQuotaExceededException)
1575
1685
  end)
1576
1686
 
1687
+ api.add_operation(:detect_protective_equipment, Seahorse::Model::Operation.new.tap do |o|
1688
+ o.name = "DetectProtectiveEquipment"
1689
+ o.http_method = "POST"
1690
+ o.http_request_uri = "/"
1691
+ o.input = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentRequest)
1692
+ o.output = Shapes::ShapeRef.new(shape: DetectProtectiveEquipmentResponse)
1693
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3ObjectException)
1694
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1695
+ o.errors << Shapes::ShapeRef.new(shape: ImageTooLargeException)
1696
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1697
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1698
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1699
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1700
+ o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1701
+ end)
1702
+
1577
1703
  api.add_operation(:detect_text, Seahorse::Model::Operation.new.tap do |o|
1578
1704
  o.name = "DetectText"
1579
1705
  o.http_method = "POST"
@@ -1787,6 +1913,7 @@ module Aws::Rekognition
1787
1913
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1788
1914
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1789
1915
  o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1916
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1790
1917
  end)
1791
1918
 
1792
1919
  api.add_operation(:list_collections, Seahorse::Model::Operation.new.tap do |o|
@@ -1851,6 +1978,20 @@ module Aws::Rekognition
1851
1978
  )
1852
1979
  end)
1853
1980
 
1981
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1982
+ o.name = "ListTagsForResource"
1983
+ o.http_method = "POST"
1984
+ o.http_request_uri = "/"
1985
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
1986
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
1987
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1988
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1989
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1990
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1991
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1992
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1993
+ end)
1994
+
1854
1995
  api.add_operation(:recognize_celebrities, Seahorse::Model::Operation.new.tap do |o|
1855
1996
  o.name = "RecognizeCelebrities"
1856
1997
  o.http_method = "POST"
@@ -2096,6 +2237,35 @@ module Aws::Rekognition
2096
2237
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
2097
2238
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2098
2239
  end)
2240
+
2241
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
2242
+ o.name = "TagResource"
2243
+ o.http_method = "POST"
2244
+ o.http_request_uri = "/"
2245
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
2246
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
2247
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2248
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2249
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2250
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2251
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2252
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2253
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2254
+ end)
2255
+
2256
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
2257
+ o.name = "UntagResource"
2258
+ o.http_method = "POST"
2259
+ o.http_request_uri = "/"
2260
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
2261
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
2262
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2263
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2264
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2265
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2266
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2267
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2268
+ end)
2099
2269
  end
2100
2270
 
2101
2271
  end