aws-sdk-codegurureviewer 1.17.0 → 1.18.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: 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