aws-sdk-rekognition 1.46.0 → 1.51.0

Sign up to get free protection for your applications and to get access to all the features.
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