aws-sdk-codegurureviewer 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de1579048264593150393396476a03d254711166e6f38e131f27bf76f010320e
4
- data.tar.gz: dc6fdeb64156b0d626b3491ecbc2da1cfd9a96b5ad9f533c8bf4176cb3e07188
3
+ metadata.gz: dd58cf124a5bfa53af08ab54f1db6f50232a5bf8c969425ce57d2b71b8c17331
4
+ data.tar.gz: 2a6a71c5350414f863ee60cdda1540e3db35319ef5d4f5dfffbe9139218792ba
5
5
  SHA512:
6
- metadata.gz: 9eb0f2c09c67f1c8d7158fba240d86ec92ed9b375c21622dd97272e454bc71431ce5d158ff41bde6cfcbbe480dfd321d7560e7d735d10c5f11fc974ea519ee72
7
- data.tar.gz: 266915a8a37edc43fba5220256d13561f9dc81447da34a7542da471077a888a2bea9566a8cb4fb0d505881b014e5758c8d70c4be4f54004d96ed50c6313d7419
6
+ metadata.gz: 68853136fe7a85f934fe26575d1db8983f9036c878d60dc1f5963a8c956d6e1b5ef9d4ba234e5c5ef9a2a3fd489e75665053b5d6040f7b9fd8aa63c0b9d687e9
7
+ data.tar.gz: 2a6857a2febfe227241a91415c0b7a06dff28c9738262cdbeebee89ccf3d10c192702011e262d6f0c336709faca63a12f7dc04650b51a6254fc215a083609b30
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.18.0 (2021-06-23)
5
+ ------------------
6
+
7
+ * Feature - Adds support for S3 based full repository analysis and changed lines scan.
8
+
4
9
  1.17.0 (2021-04-26)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.17.0
1
+ 1.18.0
@@ -15,6 +15,7 @@ require_relative 'aws-sdk-codegurureviewer/types'
15
15
  require_relative 'aws-sdk-codegurureviewer/client_api'
16
16
  require_relative 'aws-sdk-codegurureviewer/client'
17
17
  require_relative 'aws-sdk-codegurureviewer/errors'
18
+ require_relative 'aws-sdk-codegurureviewer/waiters'
18
19
  require_relative 'aws-sdk-codegurureviewer/resource'
19
20
  require_relative 'aws-sdk-codegurureviewer/customizations'
20
21
 
@@ -48,6 +49,6 @@ require_relative 'aws-sdk-codegurureviewer/customizations'
48
49
  # @!group service
49
50
  module Aws::CodeGuruReviewer
50
51
 
51
- GEM_VERSION = '1.17.0'
52
+ GEM_VERSION = '1.18.0'
52
53
 
53
54
  end
@@ -335,9 +335,9 @@ module Aws::CodeGuruReviewer
335
335
  # Reviewer console. For more information, see [Recommendations in Amazon
336
336
  # CodeGuru Reviewer][1] in the *Amazon CodeGuru Reviewer User Guide.*
337
337
  #
338
- # If you associate a CodeCommit repository, it must be in the same AWS
339
- # Region and AWS account where its CodeGuru Reviewer code reviews are
340
- # configured.
338
+ # If you associate a CodeCommit or S3 repository, it must be in the same
339
+ # AWS Region and AWS account where its CodeGuru Reviewer code reviews
340
+ # are configured.
341
341
  #
342
342
  # Bitbucket and GitHub Enterprise Server repositories are managed by AWS
343
343
  # CodeStar Connections to connect to CodeGuru Reviewer. For more
@@ -413,6 +413,10 @@ module Aws::CodeGuruReviewer
413
413
  # connection_arn: "ConnectionArn", # required
414
414
  # owner: "Owner", # required
415
415
  # },
416
+ # s3_bucket: {
417
+ # name: "Name", # required
418
+ # bucket_name: "S3BucketName", # required
419
+ # },
416
420
  # },
417
421
  # client_request_token: "ClientRequestToken",
418
422
  # tags: {
@@ -431,13 +435,16 @@ module Aws::CodeGuruReviewer
431
435
  # resp.repository_association.connection_arn #=> String
432
436
  # resp.repository_association.name #=> String
433
437
  # resp.repository_association.owner #=> String
434
- # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
438
+ # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
435
439
  # resp.repository_association.state #=> String, one of "Associated", "Associating", "Failed", "Disassociating", "Disassociated"
436
440
  # resp.repository_association.state_reason #=> String
437
441
  # resp.repository_association.last_updated_time_stamp #=> Time
438
442
  # resp.repository_association.created_time_stamp #=> Time
439
443
  # resp.repository_association.kms_key_details.kms_key_id #=> String
440
444
  # resp.repository_association.kms_key_details.encryption_option #=> String, one of "AWS_OWNED_CMK", "CUSTOMER_MANAGED_CMK"
445
+ # resp.repository_association.s3_repository_details.bucket_name #=> String
446
+ # resp.repository_association.s3_repository_details.code_artifacts.source_code_artifacts_object_key #=> String
447
+ # resp.repository_association.s3_repository_details.code_artifacts.build_artifacts_object_key #=> String
441
448
  # resp.tags #=> Hash
442
449
  # resp.tags["TagKey"] #=> String
443
450
  #
@@ -453,8 +460,7 @@ module Aws::CodeGuruReviewer
453
460
  # Use to create a code review with a [ `CodeReviewType` ][1] of
454
461
  # `RepositoryAnalysis`. This type of code review analyzes all code under
455
462
  # a specified branch in an associated repository. `PullRequest` code
456
- # reviews are automatically triggered by a pull request so cannot be
457
- # created using this method.
463
+ # reviews are automatically triggered by a pull request.
458
464
  #
459
465
  #
460
466
  #
@@ -504,10 +510,44 @@ module Aws::CodeGuruReviewer
504
510
  # repository_association_arn: "AssociationArn", # required
505
511
  # type: { # required
506
512
  # repository_analysis: { # required
507
- # repository_head: { # required
513
+ # repository_head: {
508
514
  # branch_name: "BranchName", # required
509
515
  # },
516
+ # source_code_type: {
517
+ # commit_diff: {
518
+ # source_commit: "CommitId",
519
+ # destination_commit: "CommitId",
520
+ # merge_base_commit: "CommitId",
521
+ # },
522
+ # repository_head: {
523
+ # branch_name: "BranchName", # required
524
+ # },
525
+ # branch_diff: {
526
+ # source_branch_name: "BranchName", # required
527
+ # destination_branch_name: "BranchName", # required
528
+ # },
529
+ # s3_bucket_repository: {
530
+ # name: "Name", # required
531
+ # details: {
532
+ # bucket_name: "S3BucketName",
533
+ # code_artifacts: {
534
+ # source_code_artifacts_object_key: "SourceCodeArtifactsObjectKey", # required
535
+ # build_artifacts_object_key: "BuildArtifactsObjectKey",
536
+ # },
537
+ # },
538
+ # },
539
+ # request_metadata: {
540
+ # request_id: "RequestId",
541
+ # requester: "Requester",
542
+ # event_info: {
543
+ # name: "EventName",
544
+ # state: "EventState",
545
+ # },
546
+ # vendor_name: "GitHub", # accepts GitHub, GitLab, NativeS3
547
+ # },
548
+ # },
510
549
  # },
550
+ # analysis_types: ["Security"], # accepts Security, CodeQuality
511
551
  # },
512
552
  # client_request_token: "ClientRequestToken",
513
553
  # })
@@ -518,7 +558,7 @@ module Aws::CodeGuruReviewer
518
558
  # resp.code_review.code_review_arn #=> String
519
559
  # resp.code_review.repository_name #=> String
520
560
  # resp.code_review.owner #=> String
521
- # resp.code_review.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
561
+ # resp.code_review.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
522
562
  # resp.code_review.state #=> String, one of "Completed", "Pending", "Failed", "Deleting"
523
563
  # resp.code_review.state_reason #=> String
524
564
  # resp.code_review.created_time_stamp #=> Time
@@ -527,10 +567,24 @@ module Aws::CodeGuruReviewer
527
567
  # resp.code_review.pull_request_id #=> String
528
568
  # resp.code_review.source_code_type.commit_diff.source_commit #=> String
529
569
  # resp.code_review.source_code_type.commit_diff.destination_commit #=> String
570
+ # resp.code_review.source_code_type.commit_diff.merge_base_commit #=> String
530
571
  # resp.code_review.source_code_type.repository_head.branch_name #=> String
572
+ # resp.code_review.source_code_type.branch_diff.source_branch_name #=> String
573
+ # resp.code_review.source_code_type.branch_diff.destination_branch_name #=> String
574
+ # resp.code_review.source_code_type.s3_bucket_repository.name #=> String
575
+ # resp.code_review.source_code_type.s3_bucket_repository.details.bucket_name #=> String
576
+ # resp.code_review.source_code_type.s3_bucket_repository.details.code_artifacts.source_code_artifacts_object_key #=> String
577
+ # resp.code_review.source_code_type.s3_bucket_repository.details.code_artifacts.build_artifacts_object_key #=> String
578
+ # resp.code_review.source_code_type.request_metadata.request_id #=> String
579
+ # resp.code_review.source_code_type.request_metadata.requester #=> String
580
+ # resp.code_review.source_code_type.request_metadata.event_info.name #=> String
581
+ # resp.code_review.source_code_type.request_metadata.event_info.state #=> String
582
+ # resp.code_review.source_code_type.request_metadata.vendor_name #=> String, one of "GitHub", "GitLab", "NativeS3"
531
583
  # resp.code_review.association_arn #=> String
532
584
  # resp.code_review.metrics.metered_lines_of_code_count #=> Integer
533
585
  # resp.code_review.metrics.findings_count #=> Integer
586
+ # resp.code_review.analysis_types #=> Array
587
+ # resp.code_review.analysis_types[0] #=> String, one of "Security", "CodeQuality"
534
588
  #
535
589
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/CreateCodeReview AWS API Documentation
536
590
  #
@@ -567,7 +621,7 @@ module Aws::CodeGuruReviewer
567
621
  # resp.code_review.code_review_arn #=> String
568
622
  # resp.code_review.repository_name #=> String
569
623
  # resp.code_review.owner #=> String
570
- # resp.code_review.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
624
+ # resp.code_review.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
571
625
  # resp.code_review.state #=> String, one of "Completed", "Pending", "Failed", "Deleting"
572
626
  # resp.code_review.state_reason #=> String
573
627
  # resp.code_review.created_time_stamp #=> Time
@@ -576,10 +630,29 @@ module Aws::CodeGuruReviewer
576
630
  # resp.code_review.pull_request_id #=> String
577
631
  # resp.code_review.source_code_type.commit_diff.source_commit #=> String
578
632
  # resp.code_review.source_code_type.commit_diff.destination_commit #=> String
633
+ # resp.code_review.source_code_type.commit_diff.merge_base_commit #=> String
579
634
  # resp.code_review.source_code_type.repository_head.branch_name #=> String
635
+ # resp.code_review.source_code_type.branch_diff.source_branch_name #=> String
636
+ # resp.code_review.source_code_type.branch_diff.destination_branch_name #=> String
637
+ # resp.code_review.source_code_type.s3_bucket_repository.name #=> String
638
+ # resp.code_review.source_code_type.s3_bucket_repository.details.bucket_name #=> String
639
+ # resp.code_review.source_code_type.s3_bucket_repository.details.code_artifacts.source_code_artifacts_object_key #=> String
640
+ # resp.code_review.source_code_type.s3_bucket_repository.details.code_artifacts.build_artifacts_object_key #=> String
641
+ # resp.code_review.source_code_type.request_metadata.request_id #=> String
642
+ # resp.code_review.source_code_type.request_metadata.requester #=> String
643
+ # resp.code_review.source_code_type.request_metadata.event_info.name #=> String
644
+ # resp.code_review.source_code_type.request_metadata.event_info.state #=> String
645
+ # resp.code_review.source_code_type.request_metadata.vendor_name #=> String, one of "GitHub", "GitLab", "NativeS3"
580
646
  # resp.code_review.association_arn #=> String
581
647
  # resp.code_review.metrics.metered_lines_of_code_count #=> Integer
582
648
  # resp.code_review.metrics.findings_count #=> Integer
649
+ # resp.code_review.analysis_types #=> Array
650
+ # resp.code_review.analysis_types[0] #=> String, one of "Security", "CodeQuality"
651
+ #
652
+ #
653
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
654
+ #
655
+ # * code_review_completed
583
656
  #
584
657
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/DescribeCodeReview AWS API Documentation
585
658
  #
@@ -683,16 +756,24 @@ module Aws::CodeGuruReviewer
683
756
  # resp.repository_association.connection_arn #=> String
684
757
  # resp.repository_association.name #=> String
685
758
  # resp.repository_association.owner #=> String
686
- # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
759
+ # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
687
760
  # resp.repository_association.state #=> String, one of "Associated", "Associating", "Failed", "Disassociating", "Disassociated"
688
761
  # resp.repository_association.state_reason #=> String
689
762
  # resp.repository_association.last_updated_time_stamp #=> Time
690
763
  # resp.repository_association.created_time_stamp #=> Time
691
764
  # resp.repository_association.kms_key_details.kms_key_id #=> String
692
765
  # resp.repository_association.kms_key_details.encryption_option #=> String, one of "AWS_OWNED_CMK", "CUSTOMER_MANAGED_CMK"
766
+ # resp.repository_association.s3_repository_details.bucket_name #=> String
767
+ # resp.repository_association.s3_repository_details.code_artifacts.source_code_artifacts_object_key #=> String
768
+ # resp.repository_association.s3_repository_details.code_artifacts.build_artifacts_object_key #=> String
693
769
  # resp.tags #=> Hash
694
770
  # resp.tags["TagKey"] #=> String
695
771
  #
772
+ #
773
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
774
+ #
775
+ # * repository_association_succeeded
776
+ #
696
777
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/DescribeRepositoryAssociation AWS API Documentation
697
778
  #
698
779
  # @overload describe_repository_association(params = {})
@@ -733,13 +814,16 @@ module Aws::CodeGuruReviewer
733
814
  # resp.repository_association.connection_arn #=> String
734
815
  # resp.repository_association.name #=> String
735
816
  # resp.repository_association.owner #=> String
736
- # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
817
+ # resp.repository_association.provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
737
818
  # resp.repository_association.state #=> String, one of "Associated", "Associating", "Failed", "Disassociating", "Disassociated"
738
819
  # resp.repository_association.state_reason #=> String
739
820
  # resp.repository_association.last_updated_time_stamp #=> Time
740
821
  # resp.repository_association.created_time_stamp #=> Time
741
822
  # resp.repository_association.kms_key_details.kms_key_id #=> String
742
823
  # resp.repository_association.kms_key_details.encryption_option #=> String, one of "AWS_OWNED_CMK", "CUSTOMER_MANAGED_CMK"
824
+ # resp.repository_association.s3_repository_details.bucket_name #=> String
825
+ # resp.repository_association.s3_repository_details.code_artifacts.source_code_artifacts_object_key #=> String
826
+ # resp.repository_association.s3_repository_details.code_artifacts.build_artifacts_object_key #=> String
743
827
  # resp.tags #=> Hash
744
828
  # resp.tags["TagKey"] #=> String
745
829
  #
@@ -802,7 +886,7 @@ module Aws::CodeGuruReviewer
802
886
  # @example Request syntax with placeholder values
803
887
  #
804
888
  # resp = client.list_code_reviews({
805
- # provider_types: ["CodeCommit"], # accepts CodeCommit, GitHub, Bitbucket, GitHubEnterpriseServer
889
+ # provider_types: ["CodeCommit"], # accepts CodeCommit, GitHub, Bitbucket, GitHubEnterpriseServer, S3Bucket
806
890
  # states: ["Completed"], # accepts Completed, Pending, Failed, Deleting
807
891
  # repository_names: ["Name"],
808
892
  # type: "PullRequest", # required, accepts PullRequest, RepositoryAnalysis
@@ -817,7 +901,7 @@ module Aws::CodeGuruReviewer
817
901
  # resp.code_review_summaries[0].code_review_arn #=> String
818
902
  # resp.code_review_summaries[0].repository_name #=> String
819
903
  # resp.code_review_summaries[0].owner #=> String
820
- # resp.code_review_summaries[0].provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
904
+ # resp.code_review_summaries[0].provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
821
905
  # resp.code_review_summaries[0].state #=> String, one of "Completed", "Pending", "Failed", "Deleting"
822
906
  # resp.code_review_summaries[0].created_time_stamp #=> Time
823
907
  # resp.code_review_summaries[0].last_updated_time_stamp #=> Time
@@ -825,6 +909,21 @@ module Aws::CodeGuruReviewer
825
909
  # resp.code_review_summaries[0].pull_request_id #=> String
826
910
  # resp.code_review_summaries[0].metrics_summary.metered_lines_of_code_count #=> Integer
827
911
  # resp.code_review_summaries[0].metrics_summary.findings_count #=> Integer
912
+ # resp.code_review_summaries[0].source_code_type.commit_diff.source_commit #=> String
913
+ # resp.code_review_summaries[0].source_code_type.commit_diff.destination_commit #=> String
914
+ # resp.code_review_summaries[0].source_code_type.commit_diff.merge_base_commit #=> String
915
+ # resp.code_review_summaries[0].source_code_type.repository_head.branch_name #=> String
916
+ # resp.code_review_summaries[0].source_code_type.branch_diff.source_branch_name #=> String
917
+ # resp.code_review_summaries[0].source_code_type.branch_diff.destination_branch_name #=> String
918
+ # resp.code_review_summaries[0].source_code_type.s3_bucket_repository.name #=> String
919
+ # resp.code_review_summaries[0].source_code_type.s3_bucket_repository.details.bucket_name #=> String
920
+ # resp.code_review_summaries[0].source_code_type.s3_bucket_repository.details.code_artifacts.source_code_artifacts_object_key #=> String
921
+ # resp.code_review_summaries[0].source_code_type.s3_bucket_repository.details.code_artifacts.build_artifacts_object_key #=> String
922
+ # resp.code_review_summaries[0].source_code_type.request_metadata.request_id #=> String
923
+ # resp.code_review_summaries[0].source_code_type.request_metadata.requester #=> String
924
+ # resp.code_review_summaries[0].source_code_type.request_metadata.event_info.name #=> String
925
+ # resp.code_review_summaries[0].source_code_type.request_metadata.event_info.state #=> String
926
+ # resp.code_review_summaries[0].source_code_type.request_metadata.vendor_name #=> String, one of "GitHub", "GitLab", "NativeS3"
828
927
  # resp.next_token #=> String
829
928
  #
830
929
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/ListCodeReviews AWS API Documentation
@@ -951,6 +1050,7 @@ module Aws::CodeGuruReviewer
951
1050
  # resp.recommendation_summaries[0].start_line #=> Integer
952
1051
  # resp.recommendation_summaries[0].end_line #=> Integer
953
1052
  # resp.recommendation_summaries[0].description #=> String
1053
+ # resp.recommendation_summaries[0].recommendation_category #=> String, one of "AWSBestPractices", "AWSCloudFormationIssues", "DuplicateCode", "CodeMaintenanceIssues", "ConcurrencyIssues", "InputValidations", "PythonBestPractices", "JavaBestPractices", "ResourceLeaks", "SecurityIssues"
954
1054
  # resp.next_token #=> String
955
1055
  #
956
1056
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguru-reviewer-2019-09-19/ListRecommendations AWS API Documentation
@@ -1061,7 +1161,7 @@ module Aws::CodeGuruReviewer
1061
1161
  # @example Request syntax with placeholder values
1062
1162
  #
1063
1163
  # resp = client.list_repository_associations({
1064
- # provider_types: ["CodeCommit"], # accepts CodeCommit, GitHub, Bitbucket, GitHubEnterpriseServer
1164
+ # provider_types: ["CodeCommit"], # accepts CodeCommit, GitHub, Bitbucket, GitHubEnterpriseServer, S3Bucket
1065
1165
  # states: ["Associated"], # accepts Associated, Associating, Failed, Disassociating, Disassociated
1066
1166
  # names: ["Name"],
1067
1167
  # owners: ["Owner"],
@@ -1078,7 +1178,7 @@ module Aws::CodeGuruReviewer
1078
1178
  # resp.repository_association_summaries[0].association_id #=> String
1079
1179
  # resp.repository_association_summaries[0].name #=> String
1080
1180
  # resp.repository_association_summaries[0].owner #=> String
1081
- # resp.repository_association_summaries[0].provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer"
1181
+ # resp.repository_association_summaries[0].provider_type #=> String, one of "CodeCommit", "GitHub", "Bitbucket", "GitHubEnterpriseServer", "S3Bucket"
1082
1182
  # resp.repository_association_summaries[0].state #=> String, one of "Associated", "Associating", "Failed", "Disassociating", "Disassociated"
1083
1183
  # resp.next_token #=> String
1084
1184
  #
@@ -1257,14 +1357,129 @@ module Aws::CodeGuruReviewer
1257
1357
  params: params,
1258
1358
  config: config)
1259
1359
  context[:gem_name] = 'aws-sdk-codegurureviewer'
1260
- context[:gem_version] = '1.17.0'
1360
+ context[:gem_version] = '1.18.0'
1261
1361
  Seahorse::Client::Request.new(handlers, context)
1262
1362
  end
1263
1363
 
1364
+ # Polls an API operation until a resource enters a desired state.
1365
+ #
1366
+ # ## Basic Usage
1367
+ #
1368
+ # A waiter will call an API operation until:
1369
+ #
1370
+ # * It is successful
1371
+ # * It enters a terminal state
1372
+ # * It makes the maximum number of attempts
1373
+ #
1374
+ # In between attempts, the waiter will sleep.
1375
+ #
1376
+ # # polls in a loop, sleeping between attempts
1377
+ # client.wait_until(waiter_name, params)
1378
+ #
1379
+ # ## Configuration
1380
+ #
1381
+ # You can configure the maximum number of polling attempts, and the
1382
+ # delay (in seconds) between each polling attempt. You can pass
1383
+ # configuration as the final arguments hash.
1384
+ #
1385
+ # # poll for ~25 seconds
1386
+ # client.wait_until(waiter_name, params, {
1387
+ # max_attempts: 5,
1388
+ # delay: 5,
1389
+ # })
1390
+ #
1391
+ # ## Callbacks
1392
+ #
1393
+ # You can be notified before each polling attempt and before each
1394
+ # delay. If you throw `:success` or `:failure` from these callbacks,
1395
+ # it will terminate the waiter.
1396
+ #
1397
+ # started_at = Time.now
1398
+ # client.wait_until(waiter_name, params, {
1399
+ #
1400
+ # # disable max attempts
1401
+ # max_attempts: nil,
1402
+ #
1403
+ # # poll for 1 hour, instead of a number of attempts
1404
+ # before_wait: -> (attempts, response) do
1405
+ # throw :failure if Time.now - started_at > 3600
1406
+ # end
1407
+ # })
1408
+ #
1409
+ # ## Handling Errors
1410
+ #
1411
+ # When a waiter is unsuccessful, it will raise an error.
1412
+ # All of the failure errors extend from
1413
+ # {Aws::Waiters::Errors::WaiterFailed}.
1414
+ #
1415
+ # begin
1416
+ # client.wait_until(...)
1417
+ # rescue Aws::Waiters::Errors::WaiterFailed
1418
+ # # resource did not enter the desired state in time
1419
+ # end
1420
+ #
1421
+ # ## Valid Waiters
1422
+ #
1423
+ # The following table lists the valid waiter names, the operations they call,
1424
+ # and the default `:delay` and `:max_attempts` values.
1425
+ #
1426
+ # | waiter_name | params | :delay | :max_attempts |
1427
+ # | -------------------------------- | ---------------------------------------- | -------- | ------------- |
1428
+ # | code_review_completed | {Client#describe_code_review} | 10 | 60 |
1429
+ # | repository_association_succeeded | {Client#describe_repository_association} | 10 | 20 |
1430
+ #
1431
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
1432
+ # because the waiter has entered a state that it will not transition
1433
+ # out of, preventing success.
1434
+ #
1435
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
1436
+ # maximum number of attempts have been made, and the waiter is not
1437
+ # yet successful.
1438
+ #
1439
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
1440
+ # while polling for a resource that is not expected.
1441
+ #
1442
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1443
+ # for an unknown state.
1444
+ #
1445
+ # @return [Boolean] Returns `true` if the waiter was successful.
1446
+ # @param [Symbol] waiter_name
1447
+ # @param [Hash] params ({})
1448
+ # @param [Hash] options ({})
1449
+ # @option options [Integer] :max_attempts
1450
+ # @option options [Integer] :delay
1451
+ # @option options [Proc] :before_attempt
1452
+ # @option options [Proc] :before_wait
1453
+ def wait_until(waiter_name, params = {}, options = {})
1454
+ w = waiter(waiter_name, options)
1455
+ yield(w.waiter) if block_given? # deprecated
1456
+ w.wait(params)
1457
+ end
1458
+
1264
1459
  # @api private
1265
1460
  # @deprecated
1266
1461
  def waiter_names
1267
- []
1462
+ waiters.keys
1463
+ end
1464
+
1465
+ private
1466
+
1467
+ # @param [Symbol] waiter_name
1468
+ # @param [Hash] options ({})
1469
+ def waiter(waiter_name, options = {})
1470
+ waiter_class = waiters[waiter_name]
1471
+ if waiter_class
1472
+ waiter_class.new(options.merge(client: self))
1473
+ else
1474
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1475
+ end
1476
+ end
1477
+
1478
+ def waiters
1479
+ {
1480
+ code_review_completed: Waiters::CodeReviewCompleted,
1481
+ repository_association_succeeded: Waiters::RepositoryAssociationSucceeded
1482
+ }
1268
1483
  end
1269
1484
 
1270
1485
  class << self