aws-sdk-rekognition 1.69.0 → 1.70.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c18f35079e645c8c14ba246ba76f0d1eb862b205192d586c1a0c4bc306376a4f
4
- data.tar.gz: 6e3bc7e3aeabde379f20eeeee5804c9fd3bcd5c58048e359e10a8fb3321a9622
3
+ metadata.gz: b1c79326cfd1c7cf481cf914bb433cb3f612455f2fb4760ad6305bb69931db46
4
+ data.tar.gz: '091c2e5dc7ff1cf9e1f7755b6fe1cc7ce8c399c5b7d892387a3e28209d30154b'
5
5
  SHA512:
6
- metadata.gz: 26aa60c7d490065be88643d7870384ffe4650545385d9f951fc5dce97bc30d67c2db7b3e8f2a356bf9aa0896e5dfd1755787edcddcbdff8129e6063a63782764
7
- data.tar.gz: 9cce0427913d4f6db324ba298a4cefea78f5c2e3e4a4457b5984db659a77d62ef2661a7ac6898c505fb7f32cb1f4072f67906a021fa833c598be261baf97b906
6
+ metadata.gz: d564f921a21050ca6a9b7da53fe4efa0e086654cf1b430bed68e2aa773e58bb5b3d6c394607873d1b9d6f53789c3db73a78c14fa4f6f85351e2e0ada85e51814
7
+ data.tar.gz: 89ac4c11c313c9848125989e93aced5fdd40503a69fcb83022806c0a97d915079f7641cdae6ebc60bf3abd81e24c884cc0b8da2731854672387e5f7f25628eb6
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.70.0 (2022-08-16)
5
+ ------------------
6
+
7
+ * Feature - This release adds APIs which support copying an Amazon Rekognition Custom Labels model and managing project policies across AWS account.
8
+
4
9
  1.69.0 (2022-07-26)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.69.0
1
+ 1.70.0
@@ -606,6 +606,135 @@ module Aws::Rekognition
606
606
  req.send_request(options)
607
607
  end
608
608
 
609
+ # Copies a version of an Amazon Rekognition Custom Labels model from a
610
+ # source project to a destination project. The source and destination
611
+ # projects can be in different AWS accounts but must be in the same AWS
612
+ # Region. You can't copy a model to another AWS service.
613
+ #
614
+ # To copy a model version to a different AWS account, you need to create
615
+ # a resource-based policy known as a *project policy*. You attach the
616
+ # project policy to the source project by calling PutProjectPolicy. The
617
+ # project policy gives permission to copy the model version from a
618
+ # trusting AWS account to a trusted account.
619
+ #
620
+ # For more information creating and attaching a project policy, see
621
+ # Attaching a project policy (SDK) in the *Amazon Rekognition Custom
622
+ # Labels Developer Guide*.
623
+ #
624
+ # If you are copying a model version to a project in the same AWS
625
+ # account, you don't need to create a project policy.
626
+ #
627
+ # <note markdown="1"> To copy a model, the destination project, source project, and source
628
+ # model version must already exist.
629
+ #
630
+ # </note>
631
+ #
632
+ # Copying a model version takes a while to complete. To get the current
633
+ # status, call DescribeProjectVersions and check the value of `Status`
634
+ # in the ProjectVersionDescription object. The copy operation has
635
+ # finished when the value of `Status` is `COPYING_COMPLETED`.
636
+ #
637
+ # @option params [required, String] :source_project_arn
638
+ # The ARN of the source project in the trusting AWS account.
639
+ #
640
+ # @option params [required, String] :source_project_version_arn
641
+ # The ARN of the model version in the source project that you want to
642
+ # copy to a destination project.
643
+ #
644
+ # @option params [required, String] :destination_project_arn
645
+ # The ARN of the project in the trusted AWS account that you want to
646
+ # copy the model version to.
647
+ #
648
+ # @option params [required, String] :version_name
649
+ # A name for the version of the model that's copied to the destination
650
+ # project.
651
+ #
652
+ # @option params [required, Types::OutputConfig] :output_config
653
+ # The S3 bucket and folder location where the training output for the
654
+ # source model version is placed.
655
+ #
656
+ # @option params [Hash<String,String>] :tags
657
+ # The key-value tags to assign to the model version.
658
+ #
659
+ # @option params [String] :kms_key_id
660
+ # The identifier for your AWS Key Management Service key (AWS KMS key).
661
+ # You can supply the Amazon Resource Name (ARN) of your KMS key, the ID
662
+ # of your KMS key, an alias for your KMS key, or an alias ARN. The key
663
+ # is used to encrypt training results and manifest files written to the
664
+ # output Amazon S3 bucket (`OutputConfig`).
665
+ #
666
+ # If you choose to use your own KMS key, you need the following
667
+ # permissions on the KMS key.
668
+ #
669
+ # * kms:CreateGrant
670
+ #
671
+ # * kms:DescribeKey
672
+ #
673
+ # * kms:GenerateDataKey
674
+ #
675
+ # * kms:Decrypt
676
+ #
677
+ # If you don't specify a value for `KmsKeyId`, images copied into the
678
+ # service are encrypted using a key that AWS owns and manages.
679
+ #
680
+ # @return [Types::CopyProjectVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
681
+ #
682
+ # * {Types::CopyProjectVersionResponse#project_version_arn #project_version_arn} => String
683
+ #
684
+ #
685
+ # @example Example: CopyProjectVersion
686
+ #
687
+ # # This operation copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination
688
+ # # project.
689
+ #
690
+ # resp = client.copy_project_version({
691
+ # destination_project_arn: "arn:aws:rekognition:us-east-1:555555555555:project/DestinationProject/1656705098765",
692
+ # kms_key_id: "arn:1234abcd-12ab-34cd-56ef-1234567890ab",
693
+ # output_config: {
694
+ # s3_bucket: "bucket-name",
695
+ # s3_key_prefix: "path_to_folder",
696
+ # },
697
+ # source_project_arn: "arn:aws:rekognition:us-east-1:111122223333:project/SourceProject/16565123456",
698
+ # source_project_version_arn: "arn:aws:rekognition:us-east-1:111122223333:project/SourceProject/version/model_1/1656611123456",
699
+ # tags: {
700
+ # "key1" => "val1",
701
+ # },
702
+ # version_name: "DestinationVersionName_cross_account",
703
+ # })
704
+ #
705
+ # resp.to_h outputs the following:
706
+ # {
707
+ # project_version_arn: "arn:aws:rekognition:us-east-1:555555555555:project/DestinationProject/version/DestinationVersionName_cross_account/16567050987651",
708
+ # }
709
+ #
710
+ # @example Request syntax with placeholder values
711
+ #
712
+ # resp = client.copy_project_version({
713
+ # source_project_arn: "ProjectArn", # required
714
+ # source_project_version_arn: "ProjectVersionArn", # required
715
+ # destination_project_arn: "ProjectArn", # required
716
+ # version_name: "VersionName", # required
717
+ # output_config: { # required
718
+ # s3_bucket: "S3Bucket",
719
+ # s3_key_prefix: "S3KeyPrefix",
720
+ # },
721
+ # tags: {
722
+ # "TagKey" => "TagValue",
723
+ # },
724
+ # kms_key_id: "KmsKeyId",
725
+ # })
726
+ #
727
+ # @example Response structure
728
+ #
729
+ # resp.project_version_arn #=> String
730
+ #
731
+ # @overload copy_project_version(params = {})
732
+ # @param [Hash] params ({})
733
+ def copy_project_version(params = {}, options = {})
734
+ req = build_request(:copy_project_version, params)
735
+ req.send_request(options)
736
+ end
737
+
609
738
  # Creates a collection in an AWS Region. You can add faces to the
610
739
  # collection using the IndexFaces operation.
611
740
  #
@@ -1255,7 +1384,9 @@ module Aws::Rekognition
1255
1384
  #
1256
1385
  # `DeleteProject` is an asynchronous operation. To check if the project
1257
1386
  # is deleted, call DescribeProjects. The project is deleted when the
1258
- # project no longer appears in the response.
1387
+ # project no longer appears in the response. Be aware that deleting a
1388
+ # given project will also delete any `ProjectPolicies` associated with
1389
+ # that project.
1259
1390
  #
1260
1391
  # This operation requires permissions to perform the
1261
1392
  # `rekognition:DeleteProject` action.
@@ -1284,6 +1415,54 @@ module Aws::Rekognition
1284
1415
  req.send_request(options)
1285
1416
  end
1286
1417
 
1418
+ # Deletes an existing project policy.
1419
+ #
1420
+ # To get a list of project policies attached to a project, call
1421
+ # ListProjectPolicies. To attach a project policy to a project, call
1422
+ # PutProjectPolicy.
1423
+ #
1424
+ # @option params [required, String] :project_arn
1425
+ # The Amazon Resource Name (ARN) of the project that the project policy
1426
+ # you want to delete is attached to.
1427
+ #
1428
+ # @option params [required, String] :policy_name
1429
+ # The name of the policy that you want to delete.
1430
+ #
1431
+ # @option params [String] :policy_revision_id
1432
+ # The ID of the project policy revision that you want to delete.
1433
+ #
1434
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1435
+ #
1436
+ #
1437
+ # @example Example: DeleteProjectPolicy
1438
+ #
1439
+ # # This operation deletes a revision of an existing project policy from an Amazon Rekognition Custom Labels project.
1440
+ #
1441
+ # resp = client.delete_project_policy({
1442
+ # policy_name: "testPolicy1",
1443
+ # policy_revision_id: "3b274c25e9203a56a99e00e3ff205fbc",
1444
+ # project_arn: "arn:aws:rekognition:us-east-1:111122223333:project/SourceProject/1656557123456",
1445
+ # })
1446
+ #
1447
+ # resp.to_h outputs the following:
1448
+ # {
1449
+ # }
1450
+ #
1451
+ # @example Request syntax with placeholder values
1452
+ #
1453
+ # resp = client.delete_project_policy({
1454
+ # project_arn: "ProjectArn", # required
1455
+ # policy_name: "ProjectPolicyName", # required
1456
+ # policy_revision_id: "ProjectPolicyRevisionId",
1457
+ # })
1458
+ #
1459
+ # @overload delete_project_policy(params = {})
1460
+ # @param [Hash] params ({})
1461
+ def delete_project_policy(params = {}, options = {})
1462
+ req = build_request(:delete_project_policy, params)
1463
+ req.send_request(options)
1464
+ end
1465
+
1287
1466
  # Deletes an Amazon Rekognition Custom Labels model.
1288
1467
  #
1289
1468
  # You can't delete a model if it is running or if it is training. To
@@ -1310,7 +1489,7 @@ module Aws::Rekognition
1310
1489
  #
1311
1490
  # @example Response structure
1312
1491
  #
1313
- # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING"
1492
+ # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING", "COPYING_IN_PROGRESS", "COPYING_COMPLETED", "COPYING_FAILED"
1314
1493
  #
1315
1494
  # @overload delete_project_version(params = {})
1316
1495
  # @param [Hash] params ({})
@@ -1476,7 +1655,7 @@ module Aws::Rekognition
1476
1655
  # resp.project_version_descriptions[0].project_version_arn #=> String
1477
1656
  # resp.project_version_descriptions[0].creation_timestamp #=> Time
1478
1657
  # resp.project_version_descriptions[0].min_inference_units #=> Integer
1479
- # resp.project_version_descriptions[0].status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING"
1658
+ # resp.project_version_descriptions[0].status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING", "COPYING_IN_PROGRESS", "COPYING_COMPLETED", "COPYING_FAILED"
1480
1659
  # resp.project_version_descriptions[0].status_message #=> String
1481
1660
  # resp.project_version_descriptions[0].billable_training_time_in_seconds #=> Integer
1482
1661
  # resp.project_version_descriptions[0].training_end_timestamp #=> Time
@@ -1517,6 +1696,7 @@ module Aws::Rekognition
1517
1696
  # resp.project_version_descriptions[0].manifest_summary.s3_object.version #=> String
1518
1697
  # resp.project_version_descriptions[0].kms_key_id #=> String
1519
1698
  # resp.project_version_descriptions[0].max_inference_units #=> Integer
1699
+ # resp.project_version_descriptions[0].source_project_version_arn #=> String
1520
1700
  # resp.next_token #=> String
1521
1701
  #
1522
1702
  #
@@ -4386,6 +4566,85 @@ module Aws::Rekognition
4386
4566
  req.send_request(options)
4387
4567
  end
4388
4568
 
4569
+ # Gets a list of the project policies attached to a project.
4570
+ #
4571
+ # To attach a project policy to a project, call PutProjectPolicy. To
4572
+ # remove a project policy from a project, call DeleteProjectPolicy.
4573
+ #
4574
+ # @option params [required, String] :project_arn
4575
+ # The ARN of the project for which you want to list the project
4576
+ # policies.
4577
+ #
4578
+ # @option params [String] :next_token
4579
+ # If the previous response was incomplete (because there is more results
4580
+ # to retrieve), Amazon Rekognition Custom Labels returns a pagination
4581
+ # token in the response. You can use this pagination token to retrieve
4582
+ # the next set of results.
4583
+ #
4584
+ # @option params [Integer] :max_results
4585
+ # The maximum number of results to return per paginated call. The
4586
+ # largest value you can specify is 5. If you specify a value greater
4587
+ # than 5, a ValidationException error occurs. The default value is 5.
4588
+ #
4589
+ # @return [Types::ListProjectPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4590
+ #
4591
+ # * {Types::ListProjectPoliciesResponse#project_policies #project_policies} => Array&lt;Types::ProjectPolicy&gt;
4592
+ # * {Types::ListProjectPoliciesResponse#next_token #next_token} => String
4593
+ #
4594
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4595
+ #
4596
+ #
4597
+ # @example Example: ListProjectPolicies
4598
+ #
4599
+ # # This operation lists the project policies that are attached to an Amazon Rekognition Custom Labels project.
4600
+ #
4601
+ # resp = client.list_project_policies({
4602
+ # max_results: 5,
4603
+ # next_token: "",
4604
+ # project_arn: "arn:aws:rekognition:us-east-1:111122223333:project/my-sdk-project/1656557051929",
4605
+ # })
4606
+ #
4607
+ # resp.to_h outputs the following:
4608
+ # {
4609
+ # next_token: "",
4610
+ # project_policies: [
4611
+ # {
4612
+ # creation_timestamp: Time.parse("2022-07-01T11:51:27.086000-07:00"),
4613
+ # last_updated_timestamp: Time.parse("2022-07-01T11:51:27.086000-07:00"),
4614
+ # policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Statemented1\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\"},\"Action\":\"rekognition:CopyProjectVersion\",\"Resource\":\"*\"}]}",
4615
+ # policy_name: "testPolicy",
4616
+ # policy_revision_id: "3b274c25e9203a56a99e00e3ff205fbc",
4617
+ # project_arn: "arn:aws:rekognition:us-east-1:111122223333:project/my-sdk-project/1656557051929",
4618
+ # },
4619
+ # ],
4620
+ # }
4621
+ #
4622
+ # @example Request syntax with placeholder values
4623
+ #
4624
+ # resp = client.list_project_policies({
4625
+ # project_arn: "ProjectArn", # required
4626
+ # next_token: "ExtendedPaginationToken",
4627
+ # max_results: 1,
4628
+ # })
4629
+ #
4630
+ # @example Response structure
4631
+ #
4632
+ # resp.project_policies #=> Array
4633
+ # resp.project_policies[0].project_arn #=> String
4634
+ # resp.project_policies[0].policy_name #=> String
4635
+ # resp.project_policies[0].policy_revision_id #=> String
4636
+ # resp.project_policies[0].policy_document #=> String
4637
+ # resp.project_policies[0].creation_timestamp #=> Time
4638
+ # resp.project_policies[0].last_updated_timestamp #=> Time
4639
+ # resp.next_token #=> String
4640
+ #
4641
+ # @overload list_project_policies(params = {})
4642
+ # @param [Hash] params ({})
4643
+ def list_project_policies(params = {}, options = {})
4644
+ req = build_request(:list_project_policies, params)
4645
+ req.send_request(options)
4646
+ end
4647
+
4389
4648
  # Gets a list of stream processors that you have created with
4390
4649
  # CreateStreamProcessor.
4391
4650
  #
@@ -4459,6 +4718,92 @@ module Aws::Rekognition
4459
4718
  req.send_request(options)
4460
4719
  end
4461
4720
 
4721
+ # Attaches a project policy to a Amazon Rekognition Custom Labels
4722
+ # project in a trusting AWS account. A project policy specifies that a
4723
+ # trusted AWS account can copy a model version from a trusting AWS
4724
+ # account to a project in the trusted AWS account. To copy a model
4725
+ # version you use the CopyProjectVersion operation.
4726
+ #
4727
+ # For more information about the format of a project policy document,
4728
+ # see Attaching a project policy (SDK) in the *Amazon Rekognition Custom
4729
+ # Labels Developer Guide*.
4730
+ #
4731
+ # The response from `PutProjectPolicy` is a revision ID for the project
4732
+ # policy. You can attach multiple project policies to a project. You can
4733
+ # also update an existing project policy by specifying the policy
4734
+ # revision ID of the existing policy.
4735
+ #
4736
+ # To remove a project policy from a project, call DeleteProjectPolicy.
4737
+ # To get a list of project policies attached to a project, call
4738
+ # ListProjectPolicies.
4739
+ #
4740
+ # You copy a model version by calling CopyProjectVersion.
4741
+ #
4742
+ # @option params [required, String] :project_arn
4743
+ # The Amazon Resource Name (ARN) of the project that the project policy
4744
+ # is attached to.
4745
+ #
4746
+ # @option params [required, String] :policy_name
4747
+ # A name for the policy.
4748
+ #
4749
+ # @option params [String] :policy_revision_id
4750
+ # The revision ID for the Project Policy. Each time you modify a policy,
4751
+ # Amazon Rekognition Custom Labels generates and assigns a new
4752
+ # `PolicyRevisionId` and then deletes the previous version of the
4753
+ # policy.
4754
+ #
4755
+ # @option params [required, String] :policy_document
4756
+ # A resource policy to add to the model. The policy is a JSON structure
4757
+ # that contains one or more statements that define the policy. The
4758
+ # policy must follow the IAM syntax. For more information about the
4759
+ # contents of a JSON policy document, see [IAM JSON policy
4760
+ # reference][1].
4761
+ #
4762
+ #
4763
+ #
4764
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
4765
+ #
4766
+ # @return [Types::PutProjectPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4767
+ #
4768
+ # * {Types::PutProjectPolicyResponse#policy_revision_id #policy_revision_id} => String
4769
+ #
4770
+ #
4771
+ # @example Example: PutProjectPolicy
4772
+ #
4773
+ # # This operation attaches a project policy to a Amazon Rekognition Custom Labels project in a trusting AWS account.
4774
+ #
4775
+ # resp = client.put_project_policy({
4776
+ # policy_document: "'{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"ALLOW\",\"Principal\":{\"AWS\":\"principal\"},\"Action\":\"rekognition:CopyProjectVersion\",\"Resource\":\"arn:aws:rekognition:us-east-1:123456789012:project/my-sdk-project/version/DestinationVersionName/1627045542080\"}]}'",
4777
+ # policy_name: "SamplePolicy",
4778
+ # policy_revision_id: "0123456789abcdef",
4779
+ # project_arn: "arn:aws:rekognition:us-east-1:111122223333:project/my-sdk-project/1656557051929",
4780
+ # })
4781
+ #
4782
+ # resp.to_h outputs the following:
4783
+ # {
4784
+ # policy_revision_id: "0123456789abcdef",
4785
+ # }
4786
+ #
4787
+ # @example Request syntax with placeholder values
4788
+ #
4789
+ # resp = client.put_project_policy({
4790
+ # project_arn: "ProjectArn", # required
4791
+ # policy_name: "ProjectPolicyName", # required
4792
+ # policy_revision_id: "ProjectPolicyRevisionId",
4793
+ # policy_document: "ProjectPolicyDocument", # required
4794
+ # })
4795
+ #
4796
+ # @example Response structure
4797
+ #
4798
+ # resp.policy_revision_id #=> String
4799
+ #
4800
+ # @overload put_project_policy(params = {})
4801
+ # @param [Hash] params ({})
4802
+ def put_project_policy(params = {}, options = {})
4803
+ req = build_request(:put_project_policy, params)
4804
+ req.send_request(options)
4805
+ end
4806
+
4462
4807
  # Returns an array of celebrities recognized in the input image. For
4463
4808
  # more information, see Recognizing celebrities in the Amazon
4464
4809
  # Rekognition Developer Guide.
@@ -5444,7 +5789,7 @@ module Aws::Rekognition
5444
5789
  #
5445
5790
  # @example Response structure
5446
5791
  #
5447
- # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING"
5792
+ # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING", "COPYING_IN_PROGRESS", "COPYING_COMPLETED", "COPYING_FAILED"
5448
5793
  #
5449
5794
  # @overload start_project_version(params = {})
5450
5795
  # @param [Hash] params ({})
@@ -5747,7 +6092,7 @@ module Aws::Rekognition
5747
6092
  #
5748
6093
  # @example Response structure
5749
6094
  #
5750
- # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING"
6095
+ # resp.status #=> String, one of "TRAINING_IN_PROGRESS", "TRAINING_COMPLETED", "TRAINING_FAILED", "STARTING", "RUNNING", "FAILED", "STOPPING", "STOPPED", "DELETING", "COPYING_IN_PROGRESS", "COPYING_COMPLETED", "COPYING_FAILED"
5751
6096
  #
5752
6097
  # @overload stop_project_version(params = {})
5753
6098
  # @param [Hash] params ({})
@@ -5976,7 +6321,7 @@ module Aws::Rekognition
5976
6321
  params: params,
5977
6322
  config: config)
5978
6323
  context[:gem_name] = 'aws-sdk-rekognition'
5979
- context[:gem_version] = '1.69.0'
6324
+ context[:gem_version] = '1.70.0'
5980
6325
  Seahorse::Client::Request.new(handlers, context)
5981
6326
  end
5982
6327
 
@@ -55,6 +55,8 @@ module Aws::Rekognition
55
55
  ContentModerationDetection = Shapes::StructureShape.new(name: 'ContentModerationDetection')
56
56
  ContentModerationDetections = Shapes::ListShape.new(name: 'ContentModerationDetections')
57
57
  ContentModerationSortBy = Shapes::StringShape.new(name: 'ContentModerationSortBy')
58
+ CopyProjectVersionRequest = Shapes::StructureShape.new(name: 'CopyProjectVersionRequest')
59
+ CopyProjectVersionResponse = Shapes::StructureShape.new(name: 'CopyProjectVersionResponse')
58
60
  CoversBodyPart = Shapes::StructureShape.new(name: 'CoversBodyPart')
59
61
  CreateCollectionRequest = Shapes::StructureShape.new(name: 'CreateCollectionRequest')
60
62
  CreateCollectionResponse = Shapes::StructureShape.new(name: 'CreateCollectionResponse')
@@ -93,6 +95,8 @@ module Aws::Rekognition
93
95
  DeleteDatasetResponse = Shapes::StructureShape.new(name: 'DeleteDatasetResponse')
94
96
  DeleteFacesRequest = Shapes::StructureShape.new(name: 'DeleteFacesRequest')
95
97
  DeleteFacesResponse = Shapes::StructureShape.new(name: 'DeleteFacesResponse')
98
+ DeleteProjectPolicyRequest = Shapes::StructureShape.new(name: 'DeleteProjectPolicyRequest')
99
+ DeleteProjectPolicyResponse = Shapes::StructureShape.new(name: 'DeleteProjectPolicyResponse')
96
100
  DeleteProjectRequest = Shapes::StructureShape.new(name: 'DeleteProjectRequest')
97
101
  DeleteProjectResponse = Shapes::StructureShape.new(name: 'DeleteProjectResponse')
98
102
  DeleteProjectVersionRequest = Shapes::StructureShape.new(name: 'DeleteProjectVersionRequest')
@@ -204,6 +208,7 @@ module Aws::Rekognition
204
208
  InvalidImageFormatException = Shapes::StructureShape.new(name: 'InvalidImageFormatException')
205
209
  InvalidPaginationTokenException = Shapes::StructureShape.new(name: 'InvalidPaginationTokenException')
206
210
  InvalidParameterException = Shapes::StructureShape.new(name: 'InvalidParameterException')
211
+ InvalidPolicyRevisionIdException = Shapes::StructureShape.new(name: 'InvalidPolicyRevisionIdException')
207
212
  InvalidS3ObjectException = Shapes::StructureShape.new(name: 'InvalidS3ObjectException')
208
213
  IsLabeled = Shapes::BooleanShape.new(name: 'IsLabeled')
209
214
  JobId = Shapes::StringShape.new(name: 'JobId')
@@ -236,10 +241,14 @@ module Aws::Rekognition
236
241
  ListDatasetLabelsResponse = Shapes::StructureShape.new(name: 'ListDatasetLabelsResponse')
237
242
  ListFacesRequest = Shapes::StructureShape.new(name: 'ListFacesRequest')
238
243
  ListFacesResponse = Shapes::StructureShape.new(name: 'ListFacesResponse')
244
+ ListProjectPoliciesPageSize = Shapes::IntegerShape.new(name: 'ListProjectPoliciesPageSize')
245
+ ListProjectPoliciesRequest = Shapes::StructureShape.new(name: 'ListProjectPoliciesRequest')
246
+ ListProjectPoliciesResponse = Shapes::StructureShape.new(name: 'ListProjectPoliciesResponse')
239
247
  ListStreamProcessorsRequest = Shapes::StructureShape.new(name: 'ListStreamProcessorsRequest')
240
248
  ListStreamProcessorsResponse = Shapes::StructureShape.new(name: 'ListStreamProcessorsResponse')
241
249
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
242
250
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
251
+ MalformedPolicyDocumentException = Shapes::StructureShape.new(name: 'MalformedPolicyDocumentException')
243
252
  MaxDurationInSecondsULong = Shapes::IntegerShape.new(name: 'MaxDurationInSecondsULong')
244
253
  MaxFaces = Shapes::IntegerShape.new(name: 'MaxFaces')
245
254
  MaxFacesToIndex = Shapes::IntegerShape.new(name: 'MaxFacesToIndex')
@@ -273,6 +282,11 @@ module Aws::Rekognition
273
282
  ProjectDescriptions = Shapes::ListShape.new(name: 'ProjectDescriptions')
274
283
  ProjectName = Shapes::StringShape.new(name: 'ProjectName')
275
284
  ProjectNames = Shapes::ListShape.new(name: 'ProjectNames')
285
+ ProjectPolicies = Shapes::ListShape.new(name: 'ProjectPolicies')
286
+ ProjectPolicy = Shapes::StructureShape.new(name: 'ProjectPolicy')
287
+ ProjectPolicyDocument = Shapes::StringShape.new(name: 'ProjectPolicyDocument')
288
+ ProjectPolicyName = Shapes::StringShape.new(name: 'ProjectPolicyName')
289
+ ProjectPolicyRevisionId = Shapes::StringShape.new(name: 'ProjectPolicyRevisionId')
276
290
  ProjectStatus = Shapes::StringShape.new(name: 'ProjectStatus')
277
291
  ProjectVersionArn = Shapes::StringShape.new(name: 'ProjectVersionArn')
278
292
  ProjectVersionDescription = Shapes::StructureShape.new(name: 'ProjectVersionDescription')
@@ -289,6 +303,8 @@ module Aws::Rekognition
289
303
  ProtectiveEquipmentType = Shapes::StringShape.new(name: 'ProtectiveEquipmentType')
290
304
  ProtectiveEquipmentTypes = Shapes::ListShape.new(name: 'ProtectiveEquipmentTypes')
291
305
  ProvisionedThroughputExceededException = Shapes::StructureShape.new(name: 'ProvisionedThroughputExceededException')
306
+ PutProjectPolicyRequest = Shapes::StructureShape.new(name: 'PutProjectPolicyRequest')
307
+ PutProjectPolicyResponse = Shapes::StructureShape.new(name: 'PutProjectPolicyResponse')
292
308
  QualityFilter = Shapes::StringShape.new(name: 'QualityFilter')
293
309
  QueryString = Shapes::StringShape.new(name: 'QueryString')
294
310
  Reason = Shapes::StringShape.new(name: 'Reason')
@@ -533,6 +549,18 @@ module Aws::Rekognition
533
549
 
534
550
  ContentModerationDetections.member = Shapes::ShapeRef.new(shape: ContentModerationDetection)
535
551
 
552
+ CopyProjectVersionRequest.add_member(:source_project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "SourceProjectArn"))
553
+ CopyProjectVersionRequest.add_member(:source_project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, required: true, location_name: "SourceProjectVersionArn"))
554
+ CopyProjectVersionRequest.add_member(:destination_project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "DestinationProjectArn"))
555
+ CopyProjectVersionRequest.add_member(:version_name, Shapes::ShapeRef.new(shape: VersionName, required: true, location_name: "VersionName"))
556
+ CopyProjectVersionRequest.add_member(:output_config, Shapes::ShapeRef.new(shape: OutputConfig, required: true, location_name: "OutputConfig"))
557
+ CopyProjectVersionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
558
+ CopyProjectVersionRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
559
+ CopyProjectVersionRequest.struct_class = Types::CopyProjectVersionRequest
560
+
561
+ CopyProjectVersionResponse.add_member(:project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, location_name: "ProjectVersionArn"))
562
+ CopyProjectVersionResponse.struct_class = Types::CopyProjectVersionResponse
563
+
536
564
  CoversBodyPart.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
537
565
  CoversBodyPart.add_member(:value, Shapes::ShapeRef.new(shape: Boolean, location_name: "Value"))
538
566
  CoversBodyPart.struct_class = Types::CoversBodyPart
@@ -657,6 +685,13 @@ module Aws::Rekognition
657
685
  DeleteFacesResponse.add_member(:deleted_faces, Shapes::ShapeRef.new(shape: FaceIdList, location_name: "DeletedFaces"))
658
686
  DeleteFacesResponse.struct_class = Types::DeleteFacesResponse
659
687
 
688
+ DeleteProjectPolicyRequest.add_member(:project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "ProjectArn"))
689
+ DeleteProjectPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: ProjectPolicyName, required: true, location_name: "PolicyName"))
690
+ DeleteProjectPolicyRequest.add_member(:policy_revision_id, Shapes::ShapeRef.new(shape: ProjectPolicyRevisionId, location_name: "PolicyRevisionId"))
691
+ DeleteProjectPolicyRequest.struct_class = Types::DeleteProjectPolicyRequest
692
+
693
+ DeleteProjectPolicyResponse.struct_class = Types::DeleteProjectPolicyResponse
694
+
660
695
  DeleteProjectRequest.add_member(:project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "ProjectArn"))
661
696
  DeleteProjectRequest.struct_class = Types::DeleteProjectRequest
662
697
 
@@ -1066,6 +1101,8 @@ module Aws::Rekognition
1066
1101
 
1067
1102
  InvalidParameterException.struct_class = Types::InvalidParameterException
1068
1103
 
1104
+ InvalidPolicyRevisionIdException.struct_class = Types::InvalidPolicyRevisionIdException
1105
+
1069
1106
  InvalidS3ObjectException.struct_class = Types::InvalidS3ObjectException
1070
1107
 
1071
1108
  KinesisDataStream.add_member(:arn, Shapes::ShapeRef.new(shape: KinesisDataArn, location_name: "Arn"))
@@ -1145,6 +1182,15 @@ module Aws::Rekognition
1145
1182
  ListFacesResponse.add_member(:face_model_version, Shapes::ShapeRef.new(shape: String, location_name: "FaceModelVersion"))
1146
1183
  ListFacesResponse.struct_class = Types::ListFacesResponse
1147
1184
 
1185
+ ListProjectPoliciesRequest.add_member(:project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "ProjectArn"))
1186
+ ListProjectPoliciesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: ExtendedPaginationToken, location_name: "NextToken"))
1187
+ ListProjectPoliciesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListProjectPoliciesPageSize, location_name: "MaxResults"))
1188
+ ListProjectPoliciesRequest.struct_class = Types::ListProjectPoliciesRequest
1189
+
1190
+ ListProjectPoliciesResponse.add_member(:project_policies, Shapes::ShapeRef.new(shape: ProjectPolicies, location_name: "ProjectPolicies"))
1191
+ ListProjectPoliciesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: ExtendedPaginationToken, location_name: "NextToken"))
1192
+ ListProjectPoliciesResponse.struct_class = Types::ListProjectPoliciesResponse
1193
+
1148
1194
  ListStreamProcessorsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
1149
1195
  ListStreamProcessorsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
1150
1196
  ListStreamProcessorsRequest.struct_class = Types::ListStreamProcessorsRequest
@@ -1159,6 +1205,8 @@ module Aws::Rekognition
1159
1205
  ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
1160
1206
  ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
1161
1207
 
1208
+ MalformedPolicyDocumentException.struct_class = Types::MalformedPolicyDocumentException
1209
+
1162
1210
  ModerationLabel.add_member(:confidence, Shapes::ShapeRef.new(shape: Percent, location_name: "Confidence"))
1163
1211
  ModerationLabel.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
1164
1212
  ModerationLabel.add_member(:parent_name, Shapes::ShapeRef.new(shape: String, location_name: "ParentName"))
@@ -1226,6 +1274,16 @@ module Aws::Rekognition
1226
1274
 
1227
1275
  ProjectNames.member = Shapes::ShapeRef.new(shape: ProjectName)
1228
1276
 
1277
+ ProjectPolicies.member = Shapes::ShapeRef.new(shape: ProjectPolicy)
1278
+
1279
+ ProjectPolicy.add_member(:project_arn, Shapes::ShapeRef.new(shape: ProjectArn, location_name: "ProjectArn"))
1280
+ ProjectPolicy.add_member(:policy_name, Shapes::ShapeRef.new(shape: ProjectPolicyName, location_name: "PolicyName"))
1281
+ ProjectPolicy.add_member(:policy_revision_id, Shapes::ShapeRef.new(shape: ProjectPolicyRevisionId, location_name: "PolicyRevisionId"))
1282
+ ProjectPolicy.add_member(:policy_document, Shapes::ShapeRef.new(shape: ProjectPolicyDocument, location_name: "PolicyDocument"))
1283
+ ProjectPolicy.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "CreationTimestamp"))
1284
+ ProjectPolicy.add_member(:last_updated_timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "LastUpdatedTimestamp"))
1285
+ ProjectPolicy.struct_class = Types::ProjectPolicy
1286
+
1229
1287
  ProjectVersionDescription.add_member(:project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, location_name: "ProjectVersionArn"))
1230
1288
  ProjectVersionDescription.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "CreationTimestamp"))
1231
1289
  ProjectVersionDescription.add_member(:min_inference_units, Shapes::ShapeRef.new(shape: InferenceUnits, location_name: "MinInferenceUnits"))
@@ -1240,6 +1298,7 @@ module Aws::Rekognition
1240
1298
  ProjectVersionDescription.add_member(:manifest_summary, Shapes::ShapeRef.new(shape: GroundTruthManifest, location_name: "ManifestSummary"))
1241
1299
  ProjectVersionDescription.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
1242
1300
  ProjectVersionDescription.add_member(:max_inference_units, Shapes::ShapeRef.new(shape: InferenceUnits, location_name: "MaxInferenceUnits"))
1301
+ ProjectVersionDescription.add_member(:source_project_version_arn, Shapes::ShapeRef.new(shape: ProjectVersionArn, location_name: "SourceProjectVersionArn"))
1243
1302
  ProjectVersionDescription.struct_class = Types::ProjectVersionDescription
1244
1303
 
1245
1304
  ProjectVersionDescriptions.member = Shapes::ShapeRef.new(shape: ProjectVersionDescription)
@@ -1272,6 +1331,15 @@ module Aws::Rekognition
1272
1331
 
1273
1332
  ProvisionedThroughputExceededException.struct_class = Types::ProvisionedThroughputExceededException
1274
1333
 
1334
+ PutProjectPolicyRequest.add_member(:project_arn, Shapes::ShapeRef.new(shape: ProjectArn, required: true, location_name: "ProjectArn"))
1335
+ PutProjectPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: ProjectPolicyName, required: true, location_name: "PolicyName"))
1336
+ PutProjectPolicyRequest.add_member(:policy_revision_id, Shapes::ShapeRef.new(shape: ProjectPolicyRevisionId, location_name: "PolicyRevisionId"))
1337
+ PutProjectPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: ProjectPolicyDocument, required: true, location_name: "PolicyDocument"))
1338
+ PutProjectPolicyRequest.struct_class = Types::PutProjectPolicyRequest
1339
+
1340
+ PutProjectPolicyResponse.add_member(:policy_revision_id, Shapes::ShapeRef.new(shape: ProjectPolicyRevisionId, location_name: "PolicyRevisionId"))
1341
+ PutProjectPolicyResponse.struct_class = Types::PutProjectPolicyResponse
1342
+
1275
1343
  Reasons.member = Shapes::ShapeRef.new(shape: Reason)
1276
1344
 
1277
1345
  RecognizeCelebritiesRequest.add_member(:image, Shapes::ShapeRef.new(shape: Image, required: true, location_name: "Image"))
@@ -1660,6 +1728,23 @@ module Aws::Rekognition
1660
1728
  o.errors << Shapes::ShapeRef.new(shape: InvalidImageFormatException)
1661
1729
  end)
1662
1730
 
1731
+ api.add_operation(:copy_project_version, Seahorse::Model::Operation.new.tap do |o|
1732
+ o.name = "CopyProjectVersion"
1733
+ o.http_method = "POST"
1734
+ o.http_request_uri = "/"
1735
+ o.input = Shapes::ShapeRef.new(shape: CopyProjectVersionRequest)
1736
+ o.output = Shapes::ShapeRef.new(shape: CopyProjectVersionResponse)
1737
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1738
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1739
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1740
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1741
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1742
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1743
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1744
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1745
+ o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
1746
+ end)
1747
+
1663
1748
  api.add_operation(:create_collection, Seahorse::Model::Operation.new.tap do |o|
1664
1749
  o.name = "CreateCollection"
1665
1750
  o.http_method = "POST"
@@ -1799,6 +1884,21 @@ module Aws::Rekognition
1799
1884
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1800
1885
  end)
1801
1886
 
1887
+ api.add_operation(:delete_project_policy, Seahorse::Model::Operation.new.tap do |o|
1888
+ o.name = "DeleteProjectPolicy"
1889
+ o.http_method = "POST"
1890
+ o.http_request_uri = "/"
1891
+ o.input = Shapes::ShapeRef.new(shape: DeleteProjectPolicyRequest)
1892
+ o.output = Shapes::ShapeRef.new(shape: DeleteProjectPolicyResponse)
1893
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1894
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1895
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1896
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1897
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1898
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
1899
+ o.errors << Shapes::ShapeRef.new(shape: InvalidPolicyRevisionIdException)
1900
+ end)
1901
+
1802
1902
  api.add_operation(:delete_project_version, Seahorse::Model::Operation.new.tap do |o|
1803
1903
  o.name = "DeleteProjectVersion"
1804
1904
  o.http_method = "POST"
@@ -2315,6 +2415,27 @@ module Aws::Rekognition
2315
2415
  )
2316
2416
  end)
2317
2417
 
2418
+ api.add_operation(:list_project_policies, Seahorse::Model::Operation.new.tap do |o|
2419
+ o.name = "ListProjectPolicies"
2420
+ o.http_method = "POST"
2421
+ o.http_request_uri = "/"
2422
+ o.input = Shapes::ShapeRef.new(shape: ListProjectPoliciesRequest)
2423
+ o.output = Shapes::ShapeRef.new(shape: ListProjectPoliciesResponse)
2424
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2425
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2426
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2427
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2428
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2429
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2430
+ o.errors << Shapes::ShapeRef.new(shape: InvalidPaginationTokenException)
2431
+ o[:pager] = Aws::Pager.new(
2432
+ limit_key: "max_results",
2433
+ tokens: {
2434
+ "next_token" => "next_token"
2435
+ }
2436
+ )
2437
+ end)
2438
+
2318
2439
  api.add_operation(:list_stream_processors, Seahorse::Model::Operation.new.tap do |o|
2319
2440
  o.name = "ListStreamProcessors"
2320
2441
  o.http_method = "POST"
@@ -2349,6 +2470,25 @@ module Aws::Rekognition
2349
2470
  o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2350
2471
  end)
2351
2472
 
2473
+ api.add_operation(:put_project_policy, Seahorse::Model::Operation.new.tap do |o|
2474
+ o.name = "PutProjectPolicy"
2475
+ o.http_method = "POST"
2476
+ o.http_request_uri = "/"
2477
+ o.input = Shapes::ShapeRef.new(shape: PutProjectPolicyRequest)
2478
+ o.output = Shapes::ShapeRef.new(shape: PutProjectPolicyResponse)
2479
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
2480
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2481
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
2482
+ o.errors << Shapes::ShapeRef.new(shape: InvalidPolicyRevisionIdException)
2483
+ o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
2484
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2485
+ o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
2486
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2487
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2488
+ o.errors << Shapes::ShapeRef.new(shape: ProvisionedThroughputExceededException)
2489
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
2490
+ end)
2491
+
2352
2492
  api.add_operation(:recognize_celebrities, Seahorse::Model::Operation.new.tap do |o|
2353
2493
  o.name = "RecognizeCelebrities"
2354
2494
  o.http_method = "POST"
@@ -35,8 +35,10 @@ module Aws::Rekognition
35
35
  # * {InvalidImageFormatException}
36
36
  # * {InvalidPaginationTokenException}
37
37
  # * {InvalidParameterException}
38
+ # * {InvalidPolicyRevisionIdException}
38
39
  # * {InvalidS3ObjectException}
39
40
  # * {LimitExceededException}
41
+ # * {MalformedPolicyDocumentException}
40
42
  # * {ProvisionedThroughputExceededException}
41
43
  # * {ResourceAlreadyExistsException}
42
44
  # * {ResourceInUseException}
@@ -147,6 +149,16 @@ module Aws::Rekognition
147
149
  end
148
150
  end
149
151
 
152
+ class InvalidPolicyRevisionIdException < ServiceError
153
+
154
+ # @param [Seahorse::Client::RequestContext] context
155
+ # @param [String] message
156
+ # @param [Aws::Rekognition::Types::InvalidPolicyRevisionIdException] data
157
+ def initialize(context, message, data = Aws::EmptyStructure.new)
158
+ super(context, message, data)
159
+ end
160
+ end
161
+
150
162
  class InvalidS3ObjectException < ServiceError
151
163
 
152
164
  # @param [Seahorse::Client::RequestContext] context
@@ -167,6 +179,16 @@ module Aws::Rekognition
167
179
  end
168
180
  end
169
181
 
182
+ class MalformedPolicyDocumentException < ServiceError
183
+
184
+ # @param [Seahorse::Client::RequestContext] context
185
+ # @param [String] message
186
+ # @param [Aws::Rekognition::Types::MalformedPolicyDocumentException] data
187
+ def initialize(context, message, data = Aws::EmptyStructure.new)
188
+ super(context, message, data)
189
+ end
190
+ end
191
+
170
192
  class ProvisionedThroughputExceededException < ServiceError
171
193
 
172
194
  # @param [Seahorse::Client::RequestContext] context
@@ -643,6 +643,96 @@ module Aws::Rekognition
643
643
  include Aws::Structure
644
644
  end
645
645
 
646
+ # @note When making an API call, you may pass CopyProjectVersionRequest
647
+ # data as a hash:
648
+ #
649
+ # {
650
+ # source_project_arn: "ProjectArn", # required
651
+ # source_project_version_arn: "ProjectVersionArn", # required
652
+ # destination_project_arn: "ProjectArn", # required
653
+ # version_name: "VersionName", # required
654
+ # output_config: { # required
655
+ # s3_bucket: "S3Bucket",
656
+ # s3_key_prefix: "S3KeyPrefix",
657
+ # },
658
+ # tags: {
659
+ # "TagKey" => "TagValue",
660
+ # },
661
+ # kms_key_id: "KmsKeyId",
662
+ # }
663
+ #
664
+ # @!attribute [rw] source_project_arn
665
+ # The ARN of the source project in the trusting AWS account.
666
+ # @return [String]
667
+ #
668
+ # @!attribute [rw] source_project_version_arn
669
+ # The ARN of the model version in the source project that you want to
670
+ # copy to a destination project.
671
+ # @return [String]
672
+ #
673
+ # @!attribute [rw] destination_project_arn
674
+ # The ARN of the project in the trusted AWS account that you want to
675
+ # copy the model version to.
676
+ # @return [String]
677
+ #
678
+ # @!attribute [rw] version_name
679
+ # A name for the version of the model that's copied to the
680
+ # destination project.
681
+ # @return [String]
682
+ #
683
+ # @!attribute [rw] output_config
684
+ # The S3 bucket and folder location where the training output for the
685
+ # source model version is placed.
686
+ # @return [Types::OutputConfig]
687
+ #
688
+ # @!attribute [rw] tags
689
+ # The key-value tags to assign to the model version.
690
+ # @return [Hash<String,String>]
691
+ #
692
+ # @!attribute [rw] kms_key_id
693
+ # The identifier for your AWS Key Management Service key (AWS KMS
694
+ # key). You can supply the Amazon Resource Name (ARN) of your KMS key,
695
+ # the ID of your KMS key, an alias for your KMS key, or an alias ARN.
696
+ # The key is used to encrypt training results and manifest files
697
+ # written to the output Amazon S3 bucket (`OutputConfig`).
698
+ #
699
+ # If you choose to use your own KMS key, you need the following
700
+ # permissions on the KMS key.
701
+ #
702
+ # * kms:CreateGrant
703
+ #
704
+ # * kms:DescribeKey
705
+ #
706
+ # * kms:GenerateDataKey
707
+ #
708
+ # * kms:Decrypt
709
+ #
710
+ # If you don't specify a value for `KmsKeyId`, images copied into the
711
+ # service are encrypted using a key that AWS owns and manages.
712
+ # @return [String]
713
+ #
714
+ class CopyProjectVersionRequest < Struct.new(
715
+ :source_project_arn,
716
+ :source_project_version_arn,
717
+ :destination_project_arn,
718
+ :version_name,
719
+ :output_config,
720
+ :tags,
721
+ :kms_key_id)
722
+ SENSITIVE = []
723
+ include Aws::Structure
724
+ end
725
+
726
+ # @!attribute [rw] project_version_arn
727
+ # The ARN of the copied model version in the destination project.
728
+ # @return [String]
729
+ #
730
+ class CopyProjectVersionResponse < Struct.new(
731
+ :project_version_arn)
732
+ SENSITIVE = []
733
+ include Aws::Structure
734
+ end
735
+
646
736
  # Information about an item of Personal Protective Equipment covering a
647
737
  # corresponding body part. For more information, see
648
738
  # DetectProtectiveEquipment.
@@ -1421,6 +1511,38 @@ module Aws::Rekognition
1421
1511
  include Aws::Structure
1422
1512
  end
1423
1513
 
1514
+ # @note When making an API call, you may pass DeleteProjectPolicyRequest
1515
+ # data as a hash:
1516
+ #
1517
+ # {
1518
+ # project_arn: "ProjectArn", # required
1519
+ # policy_name: "ProjectPolicyName", # required
1520
+ # policy_revision_id: "ProjectPolicyRevisionId",
1521
+ # }
1522
+ #
1523
+ # @!attribute [rw] project_arn
1524
+ # The Amazon Resource Name (ARN) of the project that the project
1525
+ # policy you want to delete is attached to.
1526
+ # @return [String]
1527
+ #
1528
+ # @!attribute [rw] policy_name
1529
+ # The name of the policy that you want to delete.
1530
+ # @return [String]
1531
+ #
1532
+ # @!attribute [rw] policy_revision_id
1533
+ # The ID of the project policy revision that you want to delete.
1534
+ # @return [String]
1535
+ #
1536
+ class DeleteProjectPolicyRequest < Struct.new(
1537
+ :project_arn,
1538
+ :policy_name,
1539
+ :policy_revision_id)
1540
+ SENSITIVE = []
1541
+ include Aws::Structure
1542
+ end
1543
+
1544
+ class DeleteProjectPolicyResponse < Aws::EmptyStructure; end
1545
+
1424
1546
  # @note When making an API call, you may pass DeleteProjectRequest
1425
1547
  # data as a hash:
1426
1548
  #
@@ -3954,6 +4076,10 @@ module Aws::Rekognition
3954
4076
  #
3955
4077
  class InvalidParameterException < Aws::EmptyStructure; end
3956
4078
 
4079
+ # The supplied revision id for the project policy is invalid.
4080
+ #
4081
+ class InvalidPolicyRevisionIdException < Aws::EmptyStructure; end
4082
+
3957
4083
  # Amazon Rekognition is unable to access the S3 object specified in the
3958
4084
  # request.
3959
4085
  #
@@ -4382,6 +4508,58 @@ module Aws::Rekognition
4382
4508
  include Aws::Structure
4383
4509
  end
4384
4510
 
4511
+ # @note When making an API call, you may pass ListProjectPoliciesRequest
4512
+ # data as a hash:
4513
+ #
4514
+ # {
4515
+ # project_arn: "ProjectArn", # required
4516
+ # next_token: "ExtendedPaginationToken",
4517
+ # max_results: 1,
4518
+ # }
4519
+ #
4520
+ # @!attribute [rw] project_arn
4521
+ # The ARN of the project for which you want to list the project
4522
+ # policies.
4523
+ # @return [String]
4524
+ #
4525
+ # @!attribute [rw] next_token
4526
+ # If the previous response was incomplete (because there is more
4527
+ # results to retrieve), Amazon Rekognition Custom Labels returns a
4528
+ # pagination token in the response. You can use this pagination token
4529
+ # to retrieve the next set of results.
4530
+ # @return [String]
4531
+ #
4532
+ # @!attribute [rw] max_results
4533
+ # The maximum number of results to return per paginated call. The
4534
+ # largest value you can specify is 5. If you specify a value greater
4535
+ # than 5, a ValidationException error occurs. The default value is 5.
4536
+ # @return [Integer]
4537
+ #
4538
+ class ListProjectPoliciesRequest < Struct.new(
4539
+ :project_arn,
4540
+ :next_token,
4541
+ :max_results)
4542
+ SENSITIVE = []
4543
+ include Aws::Structure
4544
+ end
4545
+
4546
+ # @!attribute [rw] project_policies
4547
+ # A list of project policies attached to the project.
4548
+ # @return [Array<Types::ProjectPolicy>]
4549
+ #
4550
+ # @!attribute [rw] next_token
4551
+ # If the response is truncated, Amazon Rekognition returns this token
4552
+ # that you can use in the subsequent request to retrieve the next set
4553
+ # of project policies.
4554
+ # @return [String]
4555
+ #
4556
+ class ListProjectPoliciesResponse < Struct.new(
4557
+ :project_policies,
4558
+ :next_token)
4559
+ SENSITIVE = []
4560
+ include Aws::Structure
4561
+ end
4562
+
4385
4563
  # @note When making an API call, you may pass ListStreamProcessorsRequest
4386
4564
  # data as a hash:
4387
4565
  #
@@ -4454,6 +4632,11 @@ module Aws::Rekognition
4454
4632
  include Aws::Structure
4455
4633
  end
4456
4634
 
4635
+ # The format of the project policy document that you supplied to
4636
+ # `PutProjectPolicy` is incorrect.
4637
+ #
4638
+ class MalformedPolicyDocumentException < Aws::EmptyStructure; end
4639
+
4457
4640
  # Provides information about a single type of inappropriate, unwanted,
4458
4641
  # or offensive content found in an image or video. Each type of
4459
4642
  # moderated content has a label within a hierarchical taxonomy. For more
@@ -4762,6 +4945,44 @@ module Aws::Rekognition
4762
4945
  include Aws::Structure
4763
4946
  end
4764
4947
 
4948
+ # Describes a project policy in the response from ListProjectPolicies.
4949
+ #
4950
+ # @!attribute [rw] project_arn
4951
+ # The Amazon Resource Name (ARN) of the project to which the project
4952
+ # policy is attached.
4953
+ # @return [String]
4954
+ #
4955
+ # @!attribute [rw] policy_name
4956
+ # The name of the project policy.
4957
+ # @return [String]
4958
+ #
4959
+ # @!attribute [rw] policy_revision_id
4960
+ # The revision ID of the project policy.
4961
+ # @return [String]
4962
+ #
4963
+ # @!attribute [rw] policy_document
4964
+ # The JSON document for the project policy.
4965
+ # @return [String]
4966
+ #
4967
+ # @!attribute [rw] creation_timestamp
4968
+ # The Unix datetime for the creation of the project policy.
4969
+ # @return [Time]
4970
+ #
4971
+ # @!attribute [rw] last_updated_timestamp
4972
+ # The Unix datetime for when the project policy was last updated.
4973
+ # @return [Time]
4974
+ #
4975
+ class ProjectPolicy < Struct.new(
4976
+ :project_arn,
4977
+ :policy_name,
4978
+ :policy_revision_id,
4979
+ :policy_document,
4980
+ :creation_timestamp,
4981
+ :last_updated_timestamp)
4982
+ SENSITIVE = []
4983
+ include Aws::Structure
4984
+ end
4985
+
4765
4986
  # A description of a version of an Amazon Rekognition Custom Labels
4766
4987
  # model.
4767
4988
  #
@@ -4830,6 +5051,12 @@ module Aws::Rekognition
4830
5051
  # StartProjectVersion.
4831
5052
  # @return [Integer]
4832
5053
  #
5054
+ # @!attribute [rw] source_project_version_arn
5055
+ # If the model version was copied from a different project,
5056
+ # `SourceProjectVersionArn` contains the ARN of the source model
5057
+ # version.
5058
+ # @return [String]
5059
+ #
4833
5060
  class ProjectVersionDescription < Struct.new(
4834
5061
  :project_version_arn,
4835
5062
  :creation_timestamp,
@@ -4844,7 +5071,8 @@ module Aws::Rekognition
4844
5071
  :evaluation_result,
4845
5072
  :manifest_summary,
4846
5073
  :kms_key_id,
4847
- :max_inference_units)
5074
+ :max_inference_units,
5075
+ :source_project_version_arn)
4848
5076
  SENSITIVE = []
4849
5077
  include Aws::Structure
4850
5078
  end
@@ -5004,6 +5232,63 @@ module Aws::Rekognition
5004
5232
  #
5005
5233
  class ProvisionedThroughputExceededException < Aws::EmptyStructure; end
5006
5234
 
5235
+ # @note When making an API call, you may pass PutProjectPolicyRequest
5236
+ # data as a hash:
5237
+ #
5238
+ # {
5239
+ # project_arn: "ProjectArn", # required
5240
+ # policy_name: "ProjectPolicyName", # required
5241
+ # policy_revision_id: "ProjectPolicyRevisionId",
5242
+ # policy_document: "ProjectPolicyDocument", # required
5243
+ # }
5244
+ #
5245
+ # @!attribute [rw] project_arn
5246
+ # The Amazon Resource Name (ARN) of the project that the project
5247
+ # policy is attached to.
5248
+ # @return [String]
5249
+ #
5250
+ # @!attribute [rw] policy_name
5251
+ # A name for the policy.
5252
+ # @return [String]
5253
+ #
5254
+ # @!attribute [rw] policy_revision_id
5255
+ # The revision ID for the Project Policy. Each time you modify a
5256
+ # policy, Amazon Rekognition Custom Labels generates and assigns a new
5257
+ # `PolicyRevisionId` and then deletes the previous version of the
5258
+ # policy.
5259
+ # @return [String]
5260
+ #
5261
+ # @!attribute [rw] policy_document
5262
+ # A resource policy to add to the model. The policy is a JSON
5263
+ # structure that contains one or more statements that define the
5264
+ # policy. The policy must follow the IAM syntax. For more information
5265
+ # about the contents of a JSON policy document, see [IAM JSON policy
5266
+ # reference][1].
5267
+ #
5268
+ #
5269
+ #
5270
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html
5271
+ # @return [String]
5272
+ #
5273
+ class PutProjectPolicyRequest < Struct.new(
5274
+ :project_arn,
5275
+ :policy_name,
5276
+ :policy_revision_id,
5277
+ :policy_document)
5278
+ SENSITIVE = []
5279
+ include Aws::Structure
5280
+ end
5281
+
5282
+ # @!attribute [rw] policy_revision_id
5283
+ # The ID of the project policy.
5284
+ # @return [String]
5285
+ #
5286
+ class PutProjectPolicyResponse < Struct.new(
5287
+ :policy_revision_id)
5288
+ SENSITIVE = []
5289
+ include Aws::Structure
5290
+ end
5291
+
5007
5292
  # @note When making an API call, you may pass RecognizeCelebritiesRequest
5008
5293
  # data as a hash:
5009
5294
  #
@@ -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.69.0'
52
+ GEM_VERSION = '1.70.0'
53
53
 
54
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-rekognition
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.69.0
4
+ version: 1.70.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-26 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core