strongdm 3.6.1 → 3.7.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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.git/ORIG_HEAD +1 -1
  3. data/.git/index +0 -0
  4. data/.git/logs/HEAD +3 -3
  5. data/.git/logs/refs/heads/master +2 -2
  6. data/.git/logs/refs/remotes/origin/HEAD +1 -1
  7. data/.git/objects/pack/{pack-c0eff6575c38c9865988c2b59ce4060fff518355.idx → pack-6ff24cd25221e788819ff2b8012b5e54f3c5d426.idx} +0 -0
  8. data/.git/objects/pack/{pack-c0eff6575c38c9865988c2b59ce4060fff518355.pack → pack-6ff24cd25221e788819ff2b8012b5e54f3c5d426.pack} +0 -0
  9. data/.git/packed-refs +3 -2
  10. data/.git/refs/heads/master +1 -1
  11. data/lib/constants.rb +311 -0
  12. data/lib/grpc/account_attachments_history_pb.rb +48 -0
  13. data/lib/grpc/account_attachments_history_services_pb.rb +37 -0
  14. data/lib/grpc/account_grants_history_pb.rb +48 -0
  15. data/lib/grpc/account_grants_history_services_pb.rb +37 -0
  16. data/lib/grpc/account_permissions_pb.rb +48 -0
  17. data/lib/grpc/account_permissions_services_pb.rb +38 -0
  18. data/lib/grpc/account_resources_pb.rb +49 -0
  19. data/lib/grpc/account_resources_services_pb.rb +38 -0
  20. data/lib/grpc/accounts_history_pb.rb +48 -0
  21. data/lib/grpc/accounts_history_services_pb.rb +37 -0
  22. data/lib/grpc/activities_pb.rb +77 -0
  23. data/lib/grpc/activities_services_pb.rb +41 -0
  24. data/lib/grpc/nodes_history_pb.rb +48 -0
  25. data/lib/grpc/nodes_history_services_pb.rb +37 -0
  26. data/lib/grpc/organization_history_pb.rb +74 -0
  27. data/lib/grpc/organization_history_services_pb.rb +37 -0
  28. data/lib/grpc/plumbing.rb +977 -4
  29. data/lib/grpc/queries_pb.rb +67 -0
  30. data/lib/grpc/queries_services_pb.rb +39 -0
  31. data/lib/grpc/remote_identities_history_pb.rb +48 -0
  32. data/lib/grpc/remote_identities_history_services_pb.rb +37 -0
  33. data/lib/grpc/remote_identity_groups_history_pb.rb +48 -0
  34. data/lib/grpc/remote_identity_groups_history_services_pb.rb +37 -0
  35. data/lib/grpc/replays_pb.rb +50 -0
  36. data/lib/grpc/replays_services_pb.rb +38 -0
  37. data/lib/grpc/resources_history_pb.rb +48 -0
  38. data/lib/grpc/resources_history_services_pb.rb +37 -0
  39. data/lib/grpc/role_resources_history_pb.rb +48 -0
  40. data/lib/grpc/role_resources_history_services_pb.rb +37 -0
  41. data/lib/grpc/role_resources_pb.rb +46 -0
  42. data/lib/grpc/role_resources_services_pb.rb +38 -0
  43. data/lib/grpc/roles_history_pb.rb +48 -0
  44. data/lib/grpc/roles_history_services_pb.rb +37 -0
  45. data/lib/grpc/secret_stores_history_pb.rb +48 -0
  46. data/lib/grpc/secret_stores_history_services_pb.rb +37 -0
  47. data/lib/models/porcelain.rb +912 -0
  48. data/lib/strongdm.rb +219 -1
  49. data/lib/svc.rb +1555 -120
  50. data/lib/version +1 -1
  51. data/lib/version.rb +1 -1
  52. metadata +38 -4
data/lib/svc.rb CHANGED
@@ -75,6 +75,10 @@ module SDM #:nodoc:
75
75
  deadline: nil
76
76
  )
77
77
  req = V1::AccountAttachmentGetRequest.new()
78
+ if not @parent.snapshot_time.nil?
79
+ req.meta = V1::GetRequestMetadata.new()
80
+ req.meta.snapshot_at = @parent.snapshot_time
81
+ end
78
82
 
79
83
  req.id = (id)
80
84
  tries = 0
@@ -140,6 +144,9 @@ module SDM #:nodoc:
140
144
  if page_size_option.is_a? Integer
141
145
  req.meta.limit = page_size_option
142
146
  end
147
+ if not @parent.snapshot_time.nil?
148
+ req.meta.snapshot_at = @parent.snapshot_time
149
+ end
143
150
 
144
151
  req.filter = Plumbing::quote_filter_args(filter, *args)
145
152
  resp = Enumerator::Generator.new { |g|
@@ -166,6 +173,96 @@ module SDM #:nodoc:
166
173
  end
167
174
  end
168
175
 
176
+ # SnapshotAccountAttachments exposes the read only methods of the AccountAttachments
177
+ # service for historical queries.
178
+ class SnapshotAccountAttachments
179
+ extend Gem::Deprecate
180
+
181
+ def initialize(account_attachments)
182
+ @account_attachments = account_attachments
183
+ end
184
+
185
+ # Get reads one AccountAttachment by ID.
186
+ def get(
187
+ id,
188
+ deadline: nil
189
+ )
190
+ return @account_attachments.get(
191
+ id,
192
+ deadline: deadline,
193
+ )
194
+ end
195
+
196
+ # List gets a list of AccountAttachments matching a given set of criteria.
197
+ def list(
198
+ filter,
199
+ *args,
200
+ deadline: nil
201
+ )
202
+ return @account_attachments.list(
203
+ filter,
204
+ *args,
205
+ deadline: deadline,
206
+ )
207
+ end
208
+ end
209
+
210
+ # AccountAttachmentsHistory records all changes to the state of an AccountAttachment.
211
+ #
212
+ # See {AccountAttachmentHistory}.
213
+ class AccountAttachmentsHistory
214
+ extend Gem::Deprecate
215
+
216
+ def initialize(channel, parent)
217
+ begin
218
+ @stub = V1::AccountAttachmentsHistory::Stub.new(nil, nil, channel_override: channel)
219
+ rescue => exception
220
+ raise Plumbing::convert_error_to_porcelain(exception)
221
+ end
222
+ @parent = parent
223
+ end
224
+
225
+ # List gets a list of AccountAttachmentHistory records matching a given set of criteria.
226
+ def list(
227
+ filter,
228
+ *args,
229
+ deadline: nil
230
+ )
231
+ req = V1::AccountAttachmentHistoryListRequest.new()
232
+ req.meta = V1::ListRequestMetadata.new()
233
+ page_size_option = @parent._test_options["PageSize"]
234
+ if page_size_option.is_a? Integer
235
+ req.meta.limit = page_size_option
236
+ end
237
+ if not @parent.snapshot_time.nil?
238
+ req.meta.snapshot_at = @parent.snapshot_time
239
+ end
240
+
241
+ req.filter = Plumbing::quote_filter_args(filter, *args)
242
+ resp = Enumerator::Generator.new { |g|
243
+ tries = 0
244
+ loop do
245
+ begin
246
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountAttachmentsHistory.List", req), deadline: deadline)
247
+ rescue => exception
248
+ if (@parent.shouldRetry(tries, exception))
249
+ tries + +@parent.jitterSleep(tries)
250
+ next
251
+ end
252
+ raise Plumbing::convert_error_to_porcelain(exception)
253
+ end
254
+ tries = 0
255
+ plumbing_response.history.each do |plumbing_item|
256
+ g.yield Plumbing::convert_account_attachment_history_to_porcelain(plumbing_item)
257
+ end
258
+ break if plumbing_response.meta.next_cursor == ""
259
+ req.meta.cursor = plumbing_response.meta.next_cursor
260
+ end
261
+ }
262
+ resp
263
+ end
264
+ end
265
+
169
266
  # AccountGrants assign a resource directly to an account, giving the account the permission to connect to that resource.
170
267
  #
171
268
  # See {AccountGrant}.
@@ -217,6 +314,10 @@ module SDM #:nodoc:
217
314
  deadline: nil
218
315
  )
219
316
  req = V1::AccountGrantGetRequest.new()
317
+ if not @parent.snapshot_time.nil?
318
+ req.meta = V1::GetRequestMetadata.new()
319
+ req.meta.snapshot_at = @parent.snapshot_time
320
+ end
220
321
 
221
322
  req.id = (id)
222
323
  tries = 0
@@ -282,6 +383,9 @@ module SDM #:nodoc:
282
383
  if page_size_option.is_a? Integer
283
384
  req.meta.limit = page_size_option
284
385
  end
386
+ if not @parent.snapshot_time.nil?
387
+ req.meta.snapshot_at = @parent.snapshot_time
388
+ end
285
389
 
286
390
  req.filter = Plumbing::quote_filter_args(filter, *args)
287
391
  resp = Enumerator::Generator.new { |g|
@@ -308,6 +412,256 @@ module SDM #:nodoc:
308
412
  end
309
413
  end
310
414
 
415
+ # SnapshotAccountGrants exposes the read only methods of the AccountGrants
416
+ # service for historical queries.
417
+ class SnapshotAccountGrants
418
+ extend Gem::Deprecate
419
+
420
+ def initialize(account_grants)
421
+ @account_grants = account_grants
422
+ end
423
+
424
+ # Get reads one AccountGrant by ID.
425
+ def get(
426
+ id,
427
+ deadline: nil
428
+ )
429
+ return @account_grants.get(
430
+ id,
431
+ deadline: deadline,
432
+ )
433
+ end
434
+
435
+ # List gets a list of AccountGrants matching a given set of criteria.
436
+ def list(
437
+ filter,
438
+ *args,
439
+ deadline: nil
440
+ )
441
+ return @account_grants.list(
442
+ filter,
443
+ *args,
444
+ deadline: deadline,
445
+ )
446
+ end
447
+ end
448
+
449
+ # AccountGrantsHistory records all changes to the state of an AccountGrant.
450
+ #
451
+ # See {AccountGrantHistory}.
452
+ class AccountGrantsHistory
453
+ extend Gem::Deprecate
454
+
455
+ def initialize(channel, parent)
456
+ begin
457
+ @stub = V1::AccountGrantsHistory::Stub.new(nil, nil, channel_override: channel)
458
+ rescue => exception
459
+ raise Plumbing::convert_error_to_porcelain(exception)
460
+ end
461
+ @parent = parent
462
+ end
463
+
464
+ # List gets a list of AccountGrantHistory records matching a given set of criteria.
465
+ def list(
466
+ filter,
467
+ *args,
468
+ deadline: nil
469
+ )
470
+ req = V1::AccountGrantHistoryListRequest.new()
471
+ req.meta = V1::ListRequestMetadata.new()
472
+ page_size_option = @parent._test_options["PageSize"]
473
+ if page_size_option.is_a? Integer
474
+ req.meta.limit = page_size_option
475
+ end
476
+ if not @parent.snapshot_time.nil?
477
+ req.meta.snapshot_at = @parent.snapshot_time
478
+ end
479
+
480
+ req.filter = Plumbing::quote_filter_args(filter, *args)
481
+ resp = Enumerator::Generator.new { |g|
482
+ tries = 0
483
+ loop do
484
+ begin
485
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountGrantsHistory.List", req), deadline: deadline)
486
+ rescue => exception
487
+ if (@parent.shouldRetry(tries, exception))
488
+ tries + +@parent.jitterSleep(tries)
489
+ next
490
+ end
491
+ raise Plumbing::convert_error_to_porcelain(exception)
492
+ end
493
+ tries = 0
494
+ plumbing_response.history.each do |plumbing_item|
495
+ g.yield Plumbing::convert_account_grant_history_to_porcelain(plumbing_item)
496
+ end
497
+ break if plumbing_response.meta.next_cursor == ""
498
+ req.meta.cursor = plumbing_response.meta.next_cursor
499
+ end
500
+ }
501
+ resp
502
+ end
503
+ end
504
+
505
+ # AccountPermissions records the granular permissions accounts have, allowing them to execute
506
+ # relevant commands via StrongDM's APIs.
507
+ #
508
+ # See {AccountPermission}.
509
+ class AccountPermissions
510
+ extend Gem::Deprecate
511
+
512
+ def initialize(channel, parent)
513
+ begin
514
+ @stub = V1::AccountPermissions::Stub.new(nil, nil, channel_override: channel)
515
+ rescue => exception
516
+ raise Plumbing::convert_error_to_porcelain(exception)
517
+ end
518
+ @parent = parent
519
+ end
520
+
521
+ # List gets a list of Permission records matching a given set of criteria.
522
+ def list(
523
+ filter,
524
+ *args,
525
+ deadline: nil
526
+ )
527
+ req = V1::AccountPermissionListRequest.new()
528
+ req.meta = V1::ListRequestMetadata.new()
529
+ page_size_option = @parent._test_options["PageSize"]
530
+ if page_size_option.is_a? Integer
531
+ req.meta.limit = page_size_option
532
+ end
533
+ if not @parent.snapshot_time.nil?
534
+ req.meta.snapshot_at = @parent.snapshot_time
535
+ end
536
+
537
+ req.filter = Plumbing::quote_filter_args(filter, *args)
538
+ resp = Enumerator::Generator.new { |g|
539
+ tries = 0
540
+ loop do
541
+ begin
542
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountPermissions.List", req), deadline: deadline)
543
+ rescue => exception
544
+ if (@parent.shouldRetry(tries, exception))
545
+ tries + +@parent.jitterSleep(tries)
546
+ next
547
+ end
548
+ raise Plumbing::convert_error_to_porcelain(exception)
549
+ end
550
+ tries = 0
551
+ plumbing_response.permissions.each do |plumbing_item|
552
+ g.yield Plumbing::convert_account_permission_to_porcelain(plumbing_item)
553
+ end
554
+ break if plumbing_response.meta.next_cursor == ""
555
+ req.meta.cursor = plumbing_response.meta.next_cursor
556
+ end
557
+ }
558
+ resp
559
+ end
560
+ end
561
+
562
+ # SnapshotAccountPermissions exposes the read only methods of the AccountPermissions
563
+ # service for historical queries.
564
+ class SnapshotAccountPermissions
565
+ extend Gem::Deprecate
566
+
567
+ def initialize(account_permissions)
568
+ @account_permissions = account_permissions
569
+ end
570
+
571
+ # List gets a list of Permission records matching a given set of criteria.
572
+ def list(
573
+ filter,
574
+ *args,
575
+ deadline: nil
576
+ )
577
+ return @account_permissions.list(
578
+ filter,
579
+ *args,
580
+ deadline: deadline,
581
+ )
582
+ end
583
+ end
584
+
585
+ # AccountResources enumerates the resources to which accounts have access.
586
+ # The AccountResources service is read-only.
587
+ #
588
+ # See {AccountResource}.
589
+ class AccountResources
590
+ extend Gem::Deprecate
591
+
592
+ def initialize(channel, parent)
593
+ begin
594
+ @stub = V1::AccountResources::Stub.new(nil, nil, channel_override: channel)
595
+ rescue => exception
596
+ raise Plumbing::convert_error_to_porcelain(exception)
597
+ end
598
+ @parent = parent
599
+ end
600
+
601
+ # List gets a list of AccountResource records matching a given set of criteria.
602
+ def list(
603
+ filter,
604
+ *args,
605
+ deadline: nil
606
+ )
607
+ req = V1::AccountResourceListRequest.new()
608
+ req.meta = V1::ListRequestMetadata.new()
609
+ page_size_option = @parent._test_options["PageSize"]
610
+ if page_size_option.is_a? Integer
611
+ req.meta.limit = page_size_option
612
+ end
613
+ if not @parent.snapshot_time.nil?
614
+ req.meta.snapshot_at = @parent.snapshot_time
615
+ end
616
+
617
+ req.filter = Plumbing::quote_filter_args(filter, *args)
618
+ resp = Enumerator::Generator.new { |g|
619
+ tries = 0
620
+ loop do
621
+ begin
622
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountResources.List", req), deadline: deadline)
623
+ rescue => exception
624
+ if (@parent.shouldRetry(tries, exception))
625
+ tries + +@parent.jitterSleep(tries)
626
+ next
627
+ end
628
+ raise Plumbing::convert_error_to_porcelain(exception)
629
+ end
630
+ tries = 0
631
+ plumbing_response.account_resources.each do |plumbing_item|
632
+ g.yield Plumbing::convert_account_resource_to_porcelain(plumbing_item)
633
+ end
634
+ break if plumbing_response.meta.next_cursor == ""
635
+ req.meta.cursor = plumbing_response.meta.next_cursor
636
+ end
637
+ }
638
+ resp
639
+ end
640
+ end
641
+
642
+ # SnapshotAccountResources exposes the read only methods of the AccountResources
643
+ # service for historical queries.
644
+ class SnapshotAccountResources
645
+ extend Gem::Deprecate
646
+
647
+ def initialize(account_resources)
648
+ @account_resources = account_resources
649
+ end
650
+
651
+ # List gets a list of AccountResource records matching a given set of criteria.
652
+ def list(
653
+ filter,
654
+ *args,
655
+ deadline: nil
656
+ )
657
+ return @account_resources.list(
658
+ filter,
659
+ *args,
660
+ deadline: deadline,
661
+ )
662
+ end
663
+ end
664
+
311
665
  # Accounts are users that have access to strongDM. There are two types of accounts:
312
666
  # 1. **Users:** humans who are authenticated through username and password or SSO.
313
667
  # 2. **Service Accounts:** machines that are authenticated using a service token.
@@ -364,6 +718,10 @@ module SDM #:nodoc:
364
718
  deadline: nil
365
719
  )
366
720
  req = V1::AccountGetRequest.new()
721
+ if not @parent.snapshot_time.nil?
722
+ req.meta = V1::GetRequestMetadata.new()
723
+ req.meta.snapshot_at = @parent.snapshot_time
724
+ end
367
725
 
368
726
  req.id = (id)
369
727
  tries = 0
@@ -459,6 +817,9 @@ module SDM #:nodoc:
459
817
  if page_size_option.is_a? Integer
460
818
  req.meta.limit = page_size_option
461
819
  end
820
+ if not @parent.snapshot_time.nil?
821
+ req.meta.snapshot_at = @parent.snapshot_time
822
+ end
462
823
 
463
824
  req.filter = Plumbing::quote_filter_args(filter, *args)
464
825
  resp = Enumerator::Generator.new { |g|
@@ -485,14 +846,196 @@ module SDM #:nodoc:
485
846
  end
486
847
  end
487
848
 
488
- # ControlPanel contains all administrative controls.
489
- class ControlPanel
849
+ # SnapshotAccounts exposes the read only methods of the Accounts
850
+ # service for historical queries.
851
+ class SnapshotAccounts
490
852
  extend Gem::Deprecate
491
853
 
492
- def initialize(channel, parent)
493
- begin
494
- @stub = V1::ControlPanel::Stub.new(nil, nil, channel_override: channel)
495
- rescue => exception
854
+ def initialize(accounts)
855
+ @accounts = accounts
856
+ end
857
+
858
+ # Get reads one Account by ID.
859
+ def get(
860
+ id,
861
+ deadline: nil
862
+ )
863
+ return @accounts.get(
864
+ id,
865
+ deadline: deadline,
866
+ )
867
+ end
868
+
869
+ # List gets a list of Accounts matching a given set of criteria.
870
+ def list(
871
+ filter,
872
+ *args,
873
+ deadline: nil
874
+ )
875
+ return @accounts.list(
876
+ filter,
877
+ *args,
878
+ deadline: deadline,
879
+ )
880
+ end
881
+ end
882
+
883
+ # AccountsHistory records all changes to the state of an Account.
884
+ #
885
+ # See {AccountHistory}.
886
+ class AccountsHistory
887
+ extend Gem::Deprecate
888
+
889
+ def initialize(channel, parent)
890
+ begin
891
+ @stub = V1::AccountsHistory::Stub.new(nil, nil, channel_override: channel)
892
+ rescue => exception
893
+ raise Plumbing::convert_error_to_porcelain(exception)
894
+ end
895
+ @parent = parent
896
+ end
897
+
898
+ # List gets a list of AccountHistory records matching a given set of criteria.
899
+ def list(
900
+ filter,
901
+ *args,
902
+ deadline: nil
903
+ )
904
+ req = V1::AccountHistoryListRequest.new()
905
+ req.meta = V1::ListRequestMetadata.new()
906
+ page_size_option = @parent._test_options["PageSize"]
907
+ if page_size_option.is_a? Integer
908
+ req.meta.limit = page_size_option
909
+ end
910
+ if not @parent.snapshot_time.nil?
911
+ req.meta.snapshot_at = @parent.snapshot_time
912
+ end
913
+
914
+ req.filter = Plumbing::quote_filter_args(filter, *args)
915
+ resp = Enumerator::Generator.new { |g|
916
+ tries = 0
917
+ loop do
918
+ begin
919
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountsHistory.List", req), deadline: deadline)
920
+ rescue => exception
921
+ if (@parent.shouldRetry(tries, exception))
922
+ tries + +@parent.jitterSleep(tries)
923
+ next
924
+ end
925
+ raise Plumbing::convert_error_to_porcelain(exception)
926
+ end
927
+ tries = 0
928
+ plumbing_response.history.each do |plumbing_item|
929
+ g.yield Plumbing::convert_account_history_to_porcelain(plumbing_item)
930
+ end
931
+ break if plumbing_response.meta.next_cursor == ""
932
+ req.meta.cursor = plumbing_response.meta.next_cursor
933
+ end
934
+ }
935
+ resp
936
+ end
937
+ end
938
+
939
+ # An Activity is a record of an action taken against a strongDM deployment, e.g.
940
+ # a user creation, resource deletion, sso configuration change, etc. The Activities
941
+ # service is read-only.
942
+ #
943
+ # See {Activity}.
944
+ class Activities
945
+ extend Gem::Deprecate
946
+
947
+ def initialize(channel, parent)
948
+ begin
949
+ @stub = V1::Activities::Stub.new(nil, nil, channel_override: channel)
950
+ rescue => exception
951
+ raise Plumbing::convert_error_to_porcelain(exception)
952
+ end
953
+ @parent = parent
954
+ end
955
+
956
+ # Get reads one Activity by ID.
957
+ def get(
958
+ id,
959
+ deadline: nil
960
+ )
961
+ req = V1::ActivityGetRequest.new()
962
+ if not @parent.snapshot_time.nil?
963
+ req.meta = V1::GetRequestMetadata.new()
964
+ req.meta.snapshot_at = @parent.snapshot_time
965
+ end
966
+
967
+ req.id = (id)
968
+ tries = 0
969
+ plumbing_response = nil
970
+ loop do
971
+ begin
972
+ plumbing_response = @stub.get(req, metadata: @parent.get_metadata("Activities.Get", req), deadline: deadline)
973
+ rescue => exception
974
+ if (@parent.shouldRetry(tries, exception))
975
+ tries + +@parent.jitterSleep(tries)
976
+ next
977
+ end
978
+ raise Plumbing::convert_error_to_porcelain(exception)
979
+ end
980
+ break
981
+ end
982
+
983
+ resp = ActivityGetResponse.new()
984
+ resp.activity = Plumbing::convert_activity_to_porcelain(plumbing_response.activity)
985
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
986
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
987
+ resp
988
+ end
989
+
990
+ # List gets a list of Activities matching a given set of criteria.
991
+ def list(
992
+ filter,
993
+ *args,
994
+ deadline: nil
995
+ )
996
+ req = V1::ActivityListRequest.new()
997
+ req.meta = V1::ListRequestMetadata.new()
998
+ page_size_option = @parent._test_options["PageSize"]
999
+ if page_size_option.is_a? Integer
1000
+ req.meta.limit = page_size_option
1001
+ end
1002
+ if not @parent.snapshot_time.nil?
1003
+ req.meta.snapshot_at = @parent.snapshot_time
1004
+ end
1005
+
1006
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1007
+ resp = Enumerator::Generator.new { |g|
1008
+ tries = 0
1009
+ loop do
1010
+ begin
1011
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Activities.List", req), deadline: deadline)
1012
+ rescue => exception
1013
+ if (@parent.shouldRetry(tries, exception))
1014
+ tries + +@parent.jitterSleep(tries)
1015
+ next
1016
+ end
1017
+ raise Plumbing::convert_error_to_porcelain(exception)
1018
+ end
1019
+ tries = 0
1020
+ plumbing_response.activities.each do |plumbing_item|
1021
+ g.yield Plumbing::convert_activity_to_porcelain(plumbing_item)
1022
+ end
1023
+ break if plumbing_response.meta.next_cursor == ""
1024
+ req.meta.cursor = plumbing_response.meta.next_cursor
1025
+ end
1026
+ }
1027
+ resp
1028
+ end
1029
+ end
1030
+
1031
+ # ControlPanel contains all administrative controls.
1032
+ class ControlPanel
1033
+ extend Gem::Deprecate
1034
+
1035
+ def initialize(channel, parent)
1036
+ begin
1037
+ @stub = V1::ControlPanel::Stub.new(nil, nil, channel_override: channel)
1038
+ rescue => exception
496
1039
  raise Plumbing::convert_error_to_porcelain(exception)
497
1040
  end
498
1041
  @parent = parent
@@ -613,6 +1156,10 @@ module SDM #:nodoc:
613
1156
  deadline: nil
614
1157
  )
615
1158
  req = V1::NodeGetRequest.new()
1159
+ if not @parent.snapshot_time.nil?
1160
+ req.meta = V1::GetRequestMetadata.new()
1161
+ req.meta.snapshot_at = @parent.snapshot_time
1162
+ end
616
1163
 
617
1164
  req.id = (id)
618
1165
  tries = 0
@@ -708,6 +1255,9 @@ module SDM #:nodoc:
708
1255
  if page_size_option.is_a? Integer
709
1256
  req.meta.limit = page_size_option
710
1257
  end
1258
+ if not @parent.snapshot_time.nil?
1259
+ req.meta.snapshot_at = @parent.snapshot_time
1260
+ end
711
1261
 
712
1262
  req.filter = Plumbing::quote_filter_args(filter, *args)
713
1263
  resp = Enumerator::Generator.new { |g|
@@ -734,87 +1284,295 @@ module SDM #:nodoc:
734
1284
  end
735
1285
  end
736
1286
 
737
- # RemoteIdentities assign a resource directly to an account, giving the account the permission to connect to that resource.
1287
+ # SnapshotNodes exposes the read only methods of the Nodes
1288
+ # service for historical queries.
1289
+ class SnapshotNodes
1290
+ extend Gem::Deprecate
1291
+
1292
+ def initialize(nodes)
1293
+ @nodes = nodes
1294
+ end
1295
+
1296
+ # Get reads one Node by ID.
1297
+ def get(
1298
+ id,
1299
+ deadline: nil
1300
+ )
1301
+ return @nodes.get(
1302
+ id,
1303
+ deadline: deadline,
1304
+ )
1305
+ end
1306
+
1307
+ # List gets a list of Nodes matching a given set of criteria.
1308
+ def list(
1309
+ filter,
1310
+ *args,
1311
+ deadline: nil
1312
+ )
1313
+ return @nodes.list(
1314
+ filter,
1315
+ *args,
1316
+ deadline: deadline,
1317
+ )
1318
+ end
1319
+ end
1320
+
1321
+ # NodesHistory records all changes to the state of a Node.
738
1322
  #
739
- # See {RemoteIdentity}.
740
- class RemoteIdentities
1323
+ # See {NodeHistory}.
1324
+ class NodesHistory
741
1325
  extend Gem::Deprecate
742
1326
 
743
1327
  def initialize(channel, parent)
744
1328
  begin
745
- @stub = V1::RemoteIdentities::Stub.new(nil, nil, channel_override: channel)
1329
+ @stub = V1::NodesHistory::Stub.new(nil, nil, channel_override: channel)
746
1330
  rescue => exception
747
1331
  raise Plumbing::convert_error_to_porcelain(exception)
748
1332
  end
749
1333
  @parent = parent
750
1334
  end
751
1335
 
752
- # Create registers a new RemoteIdentity.
753
- def create(
754
- remote_identity,
1336
+ # List gets a list of NodeHistory records matching a given set of criteria.
1337
+ def list(
1338
+ filter,
1339
+ *args,
755
1340
  deadline: nil
756
1341
  )
757
- req = V1::RemoteIdentityCreateRequest.new()
1342
+ req = V1::NodeHistoryListRequest.new()
1343
+ req.meta = V1::ListRequestMetadata.new()
1344
+ page_size_option = @parent._test_options["PageSize"]
1345
+ if page_size_option.is_a? Integer
1346
+ req.meta.limit = page_size_option
1347
+ end
1348
+ if not @parent.snapshot_time.nil?
1349
+ req.meta.snapshot_at = @parent.snapshot_time
1350
+ end
758
1351
 
759
- req.remote_identity = Plumbing::convert_remote_identity_to_plumbing(remote_identity)
760
- tries = 0
761
- plumbing_response = nil
762
- loop do
763
- begin
764
- plumbing_response = @stub.create(req, metadata: @parent.get_metadata("RemoteIdentities.Create", req), deadline: deadline)
765
- rescue => exception
766
- if (@parent.shouldRetry(tries, exception))
767
- tries + +@parent.jitterSleep(tries)
768
- next
1352
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1353
+ resp = Enumerator::Generator.new { |g|
1354
+ tries = 0
1355
+ loop do
1356
+ begin
1357
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("NodesHistory.List", req), deadline: deadline)
1358
+ rescue => exception
1359
+ if (@parent.shouldRetry(tries, exception))
1360
+ tries + +@parent.jitterSleep(tries)
1361
+ next
1362
+ end
1363
+ raise Plumbing::convert_error_to_porcelain(exception)
769
1364
  end
770
- raise Plumbing::convert_error_to_porcelain(exception)
1365
+ tries = 0
1366
+ plumbing_response.history.each do |plumbing_item|
1367
+ g.yield Plumbing::convert_node_history_to_porcelain(plumbing_item)
1368
+ end
1369
+ break if plumbing_response.meta.next_cursor == ""
1370
+ req.meta.cursor = plumbing_response.meta.next_cursor
771
1371
  end
772
- break
773
- end
774
-
775
- resp = RemoteIdentityCreateResponse.new()
776
- resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
777
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
778
- resp.remote_identity = Plumbing::convert_remote_identity_to_porcelain(plumbing_response.remote_identity)
1372
+ }
779
1373
  resp
780
1374
  end
1375
+ end
781
1376
 
782
- # Get reads one RemoteIdentity by ID.
783
- def get(
784
- id,
785
- deadline: nil
786
- )
787
- req = V1::RemoteIdentityGetRequest.new()
1377
+ # OrganizationHistory records all changes to the state of an Organization.
1378
+ #
1379
+ # See {OrganizationHistoryRecord}.
1380
+ class OrganizationHistory
1381
+ extend Gem::Deprecate
788
1382
 
789
- req.id = (id)
790
- tries = 0
791
- plumbing_response = nil
792
- loop do
793
- begin
794
- plumbing_response = @stub.get(req, metadata: @parent.get_metadata("RemoteIdentities.Get", req), deadline: deadline)
795
- rescue => exception
796
- if (@parent.shouldRetry(tries, exception))
797
- tries + +@parent.jitterSleep(tries)
798
- next
799
- end
800
- raise Plumbing::convert_error_to_porcelain(exception)
801
- end
802
- break
1383
+ def initialize(channel, parent)
1384
+ begin
1385
+ @stub = V1::OrganizationHistory::Stub.new(nil, nil, channel_override: channel)
1386
+ rescue => exception
1387
+ raise Plumbing::convert_error_to_porcelain(exception)
803
1388
  end
804
-
805
- resp = RemoteIdentityGetResponse.new()
806
- resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
807
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
808
- resp.remote_identity = Plumbing::convert_remote_identity_to_porcelain(plumbing_response.remote_identity)
809
- resp
1389
+ @parent = parent
810
1390
  end
811
1391
 
812
- # Update replaces all the fields of a RemoteIdentity by ID.
813
- def update(
814
- remote_identity,
1392
+ # List gets a list of OrganizationHistory records matching a given set of criteria.
1393
+ def list(
1394
+ filter,
1395
+ *args,
815
1396
  deadline: nil
816
1397
  )
817
- req = V1::RemoteIdentityUpdateRequest.new()
1398
+ req = V1::OrganizationHistoryListRequest.new()
1399
+ req.meta = V1::ListRequestMetadata.new()
1400
+ page_size_option = @parent._test_options["PageSize"]
1401
+ if page_size_option.is_a? Integer
1402
+ req.meta.limit = page_size_option
1403
+ end
1404
+ if not @parent.snapshot_time.nil?
1405
+ req.meta.snapshot_at = @parent.snapshot_time
1406
+ end
1407
+
1408
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1409
+ resp = Enumerator::Generator.new { |g|
1410
+ tries = 0
1411
+ loop do
1412
+ begin
1413
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("OrganizationHistory.List", req), deadline: deadline)
1414
+ rescue => exception
1415
+ if (@parent.shouldRetry(tries, exception))
1416
+ tries + +@parent.jitterSleep(tries)
1417
+ next
1418
+ end
1419
+ raise Plumbing::convert_error_to_porcelain(exception)
1420
+ end
1421
+ tries = 0
1422
+ plumbing_response.history.each do |plumbing_item|
1423
+ g.yield Plumbing::convert_organization_history_record_to_porcelain(plumbing_item)
1424
+ end
1425
+ break if plumbing_response.meta.next_cursor == ""
1426
+ req.meta.cursor = plumbing_response.meta.next_cursor
1427
+ end
1428
+ }
1429
+ resp
1430
+ end
1431
+ end
1432
+
1433
+ # A Query is a record of a single client request to a resource, such as an SQL query.
1434
+ # Long-running SSH, RDP, or Kubernetes interactive sessions also count as queries.
1435
+ # The Queries service is read-only.
1436
+ #
1437
+ # See {Query}.
1438
+ class Queries
1439
+ extend Gem::Deprecate
1440
+
1441
+ def initialize(channel, parent)
1442
+ begin
1443
+ @stub = V1::Queries::Stub.new(nil, nil, channel_override: channel)
1444
+ rescue => exception
1445
+ raise Plumbing::convert_error_to_porcelain(exception)
1446
+ end
1447
+ @parent = parent
1448
+ end
1449
+
1450
+ # List gets a list of Queries matching a given set of criteria.
1451
+ def list(
1452
+ filter,
1453
+ *args,
1454
+ deadline: nil
1455
+ )
1456
+ req = V1::QueryListRequest.new()
1457
+ req.meta = V1::ListRequestMetadata.new()
1458
+ page_size_option = @parent._test_options["PageSize"]
1459
+ if page_size_option.is_a? Integer
1460
+ req.meta.limit = page_size_option
1461
+ end
1462
+ if not @parent.snapshot_time.nil?
1463
+ req.meta.snapshot_at = @parent.snapshot_time
1464
+ end
1465
+
1466
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1467
+ resp = Enumerator::Generator.new { |g|
1468
+ tries = 0
1469
+ loop do
1470
+ begin
1471
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Queries.List", req), deadline: deadline)
1472
+ rescue => exception
1473
+ if (@parent.shouldRetry(tries, exception))
1474
+ tries + +@parent.jitterSleep(tries)
1475
+ next
1476
+ end
1477
+ raise Plumbing::convert_error_to_porcelain(exception)
1478
+ end
1479
+ tries = 0
1480
+ plumbing_response.queries.each do |plumbing_item|
1481
+ g.yield Plumbing::convert_query_to_porcelain(plumbing_item)
1482
+ end
1483
+ break if plumbing_response.meta.next_cursor == ""
1484
+ req.meta.cursor = plumbing_response.meta.next_cursor
1485
+ end
1486
+ }
1487
+ resp
1488
+ end
1489
+ end
1490
+
1491
+ # RemoteIdentities assign a resource directly to an account, giving the account the permission to connect to that resource.
1492
+ #
1493
+ # See {RemoteIdentity}.
1494
+ class RemoteIdentities
1495
+ extend Gem::Deprecate
1496
+
1497
+ def initialize(channel, parent)
1498
+ begin
1499
+ @stub = V1::RemoteIdentities::Stub.new(nil, nil, channel_override: channel)
1500
+ rescue => exception
1501
+ raise Plumbing::convert_error_to_porcelain(exception)
1502
+ end
1503
+ @parent = parent
1504
+ end
1505
+
1506
+ # Create registers a new RemoteIdentity.
1507
+ def create(
1508
+ remote_identity,
1509
+ deadline: nil
1510
+ )
1511
+ req = V1::RemoteIdentityCreateRequest.new()
1512
+
1513
+ req.remote_identity = Plumbing::convert_remote_identity_to_plumbing(remote_identity)
1514
+ tries = 0
1515
+ plumbing_response = nil
1516
+ loop do
1517
+ begin
1518
+ plumbing_response = @stub.create(req, metadata: @parent.get_metadata("RemoteIdentities.Create", req), deadline: deadline)
1519
+ rescue => exception
1520
+ if (@parent.shouldRetry(tries, exception))
1521
+ tries + +@parent.jitterSleep(tries)
1522
+ next
1523
+ end
1524
+ raise Plumbing::convert_error_to_porcelain(exception)
1525
+ end
1526
+ break
1527
+ end
1528
+
1529
+ resp = RemoteIdentityCreateResponse.new()
1530
+ resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
1531
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
1532
+ resp.remote_identity = Plumbing::convert_remote_identity_to_porcelain(plumbing_response.remote_identity)
1533
+ resp
1534
+ end
1535
+
1536
+ # Get reads one RemoteIdentity by ID.
1537
+ def get(
1538
+ id,
1539
+ deadline: nil
1540
+ )
1541
+ req = V1::RemoteIdentityGetRequest.new()
1542
+ if not @parent.snapshot_time.nil?
1543
+ req.meta = V1::GetRequestMetadata.new()
1544
+ req.meta.snapshot_at = @parent.snapshot_time
1545
+ end
1546
+
1547
+ req.id = (id)
1548
+ tries = 0
1549
+ plumbing_response = nil
1550
+ loop do
1551
+ begin
1552
+ plumbing_response = @stub.get(req, metadata: @parent.get_metadata("RemoteIdentities.Get", req), deadline: deadline)
1553
+ rescue => exception
1554
+ if (@parent.shouldRetry(tries, exception))
1555
+ tries + +@parent.jitterSleep(tries)
1556
+ next
1557
+ end
1558
+ raise Plumbing::convert_error_to_porcelain(exception)
1559
+ end
1560
+ break
1561
+ end
1562
+
1563
+ resp = RemoteIdentityGetResponse.new()
1564
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
1565
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
1566
+ resp.remote_identity = Plumbing::convert_remote_identity_to_porcelain(plumbing_response.remote_identity)
1567
+ resp
1568
+ end
1569
+
1570
+ # Update replaces all the fields of a RemoteIdentity by ID.
1571
+ def update(
1572
+ remote_identity,
1573
+ deadline: nil
1574
+ )
1575
+ req = V1::RemoteIdentityUpdateRequest.new()
818
1576
 
819
1577
  req.remote_identity = Plumbing::convert_remote_identity_to_plumbing(remote_identity)
820
1578
  tries = 0
@@ -880,6 +1638,9 @@ module SDM #:nodoc:
880
1638
  if page_size_option.is_a? Integer
881
1639
  req.meta.limit = page_size_option
882
1640
  end
1641
+ if not @parent.snapshot_time.nil?
1642
+ req.meta.snapshot_at = @parent.snapshot_time
1643
+ end
883
1644
 
884
1645
  req.filter = Plumbing::quote_filter_args(filter, *args)
885
1646
  resp = Enumerator::Generator.new { |g|
@@ -906,6 +1667,96 @@ module SDM #:nodoc:
906
1667
  end
907
1668
  end
908
1669
 
1670
+ # SnapshotRemoteIdentities exposes the read only methods of the RemoteIdentities
1671
+ # service for historical queries.
1672
+ class SnapshotRemoteIdentities
1673
+ extend Gem::Deprecate
1674
+
1675
+ def initialize(remote_identities)
1676
+ @remote_identities = remote_identities
1677
+ end
1678
+
1679
+ # Get reads one RemoteIdentity by ID.
1680
+ def get(
1681
+ id,
1682
+ deadline: nil
1683
+ )
1684
+ return @remote_identities.get(
1685
+ id,
1686
+ deadline: deadline,
1687
+ )
1688
+ end
1689
+
1690
+ # List gets a list of RemoteIdentities matching a given set of criteria.
1691
+ def list(
1692
+ filter,
1693
+ *args,
1694
+ deadline: nil
1695
+ )
1696
+ return @remote_identities.list(
1697
+ filter,
1698
+ *args,
1699
+ deadline: deadline,
1700
+ )
1701
+ end
1702
+ end
1703
+
1704
+ # RemoteIdentitiesHistory records all changes to the state of a RemoteIdentity.
1705
+ #
1706
+ # See {RemoteIdentityHistory}.
1707
+ class RemoteIdentitiesHistory
1708
+ extend Gem::Deprecate
1709
+
1710
+ def initialize(channel, parent)
1711
+ begin
1712
+ @stub = V1::RemoteIdentitiesHistory::Stub.new(nil, nil, channel_override: channel)
1713
+ rescue => exception
1714
+ raise Plumbing::convert_error_to_porcelain(exception)
1715
+ end
1716
+ @parent = parent
1717
+ end
1718
+
1719
+ # List gets a list of RemoteIdentityHistory records matching a given set of criteria.
1720
+ def list(
1721
+ filter,
1722
+ *args,
1723
+ deadline: nil
1724
+ )
1725
+ req = V1::RemoteIdentityHistoryListRequest.new()
1726
+ req.meta = V1::ListRequestMetadata.new()
1727
+ page_size_option = @parent._test_options["PageSize"]
1728
+ if page_size_option.is_a? Integer
1729
+ req.meta.limit = page_size_option
1730
+ end
1731
+ if not @parent.snapshot_time.nil?
1732
+ req.meta.snapshot_at = @parent.snapshot_time
1733
+ end
1734
+
1735
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1736
+ resp = Enumerator::Generator.new { |g|
1737
+ tries = 0
1738
+ loop do
1739
+ begin
1740
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("RemoteIdentitiesHistory.List", req), deadline: deadline)
1741
+ rescue => exception
1742
+ if (@parent.shouldRetry(tries, exception))
1743
+ tries + +@parent.jitterSleep(tries)
1744
+ next
1745
+ end
1746
+ raise Plumbing::convert_error_to_porcelain(exception)
1747
+ end
1748
+ tries = 0
1749
+ plumbing_response.history.each do |plumbing_item|
1750
+ g.yield Plumbing::convert_remote_identity_history_to_porcelain(plumbing_item)
1751
+ end
1752
+ break if plumbing_response.meta.next_cursor == ""
1753
+ req.meta.cursor = plumbing_response.meta.next_cursor
1754
+ end
1755
+ }
1756
+ resp
1757
+ end
1758
+ end
1759
+
909
1760
  # A RemoteIdentityGroup is a named grouping of Remote Identities for Accounts.
910
1761
  # An Account's relationship to a RemoteIdentityGroup is defined via RemoteIdentity objects.
911
1762
  #
@@ -928,6 +1779,10 @@ module SDM #:nodoc:
928
1779
  deadline: nil
929
1780
  )
930
1781
  req = V1::RemoteIdentityGroupGetRequest.new()
1782
+ if not @parent.snapshot_time.nil?
1783
+ req.meta = V1::GetRequestMetadata.new()
1784
+ req.meta.snapshot_at = @parent.snapshot_time
1785
+ end
931
1786
 
932
1787
  req.id = (id)
933
1788
  tries = 0
@@ -964,6 +1819,9 @@ module SDM #:nodoc:
964
1819
  if page_size_option.is_a? Integer
965
1820
  req.meta.limit = page_size_option
966
1821
  end
1822
+ if not @parent.snapshot_time.nil?
1823
+ req.meta.snapshot_at = @parent.snapshot_time
1824
+ end
967
1825
 
968
1826
  req.filter = Plumbing::quote_filter_args(filter, *args)
969
1827
  resp = Enumerator::Generator.new { |g|
@@ -990,6 +1848,153 @@ module SDM #:nodoc:
990
1848
  end
991
1849
  end
992
1850
 
1851
+ # SnapshotRemoteIdentityGroups exposes the read only methods of the RemoteIdentityGroups
1852
+ # service for historical queries.
1853
+ class SnapshotRemoteIdentityGroups
1854
+ extend Gem::Deprecate
1855
+
1856
+ def initialize(remote_identity_groups)
1857
+ @remote_identity_groups = remote_identity_groups
1858
+ end
1859
+
1860
+ # Get reads one RemoteIdentityGroup by ID.
1861
+ def get(
1862
+ id,
1863
+ deadline: nil
1864
+ )
1865
+ return @remote_identity_groups.get(
1866
+ id,
1867
+ deadline: deadline,
1868
+ )
1869
+ end
1870
+
1871
+ # List gets a list of RemoteIdentityGroups matching a given set of criteria.
1872
+ def list(
1873
+ filter,
1874
+ *args,
1875
+ deadline: nil
1876
+ )
1877
+ return @remote_identity_groups.list(
1878
+ filter,
1879
+ *args,
1880
+ deadline: deadline,
1881
+ )
1882
+ end
1883
+ end
1884
+
1885
+ # RemoteIdentityGroupsHistory records all changes to the state of a RemoteIdentityGroup.
1886
+ #
1887
+ # See {RemoteIdentityGroupHistory}.
1888
+ class RemoteIdentityGroupsHistory
1889
+ extend Gem::Deprecate
1890
+
1891
+ def initialize(channel, parent)
1892
+ begin
1893
+ @stub = V1::RemoteIdentityGroupsHistory::Stub.new(nil, nil, channel_override: channel)
1894
+ rescue => exception
1895
+ raise Plumbing::convert_error_to_porcelain(exception)
1896
+ end
1897
+ @parent = parent
1898
+ end
1899
+
1900
+ # List gets a list of RemoteIdentityGroupHistory records matching a given set of criteria.
1901
+ def list(
1902
+ filter,
1903
+ *args,
1904
+ deadline: nil
1905
+ )
1906
+ req = V1::RemoteIdentityGroupHistoryListRequest.new()
1907
+ req.meta = V1::ListRequestMetadata.new()
1908
+ page_size_option = @parent._test_options["PageSize"]
1909
+ if page_size_option.is_a? Integer
1910
+ req.meta.limit = page_size_option
1911
+ end
1912
+ if not @parent.snapshot_time.nil?
1913
+ req.meta.snapshot_at = @parent.snapshot_time
1914
+ end
1915
+
1916
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1917
+ resp = Enumerator::Generator.new { |g|
1918
+ tries = 0
1919
+ loop do
1920
+ begin
1921
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("RemoteIdentityGroupsHistory.List", req), deadline: deadline)
1922
+ rescue => exception
1923
+ if (@parent.shouldRetry(tries, exception))
1924
+ tries + +@parent.jitterSleep(tries)
1925
+ next
1926
+ end
1927
+ raise Plumbing::convert_error_to_porcelain(exception)
1928
+ end
1929
+ tries = 0
1930
+ plumbing_response.history.each do |plumbing_item|
1931
+ g.yield Plumbing::convert_remote_identity_group_history_to_porcelain(plumbing_item)
1932
+ end
1933
+ break if plumbing_response.meta.next_cursor == ""
1934
+ req.meta.cursor = plumbing_response.meta.next_cursor
1935
+ end
1936
+ }
1937
+ resp
1938
+ end
1939
+ end
1940
+
1941
+ # A Replay captures the data transferred over a long-running SSH, RDP, or Kubernetes interactive session
1942
+ # (otherwise referred to as a query). The Replays service is read-only.
1943
+ #
1944
+ # See {ReplayChunk}.
1945
+ class Replays
1946
+ extend Gem::Deprecate
1947
+
1948
+ def initialize(channel, parent)
1949
+ begin
1950
+ @stub = V1::Replays::Stub.new(nil, nil, channel_override: channel)
1951
+ rescue => exception
1952
+ raise Plumbing::convert_error_to_porcelain(exception)
1953
+ end
1954
+ @parent = parent
1955
+ end
1956
+
1957
+ # List gets a list of ReplayChunks for the Query ID specified by the filter criteria.
1958
+ def list(
1959
+ filter,
1960
+ *args,
1961
+ deadline: nil
1962
+ )
1963
+ req = V1::ReplayListRequest.new()
1964
+ req.meta = V1::ListRequestMetadata.new()
1965
+ page_size_option = @parent._test_options["PageSize"]
1966
+ if page_size_option.is_a? Integer
1967
+ req.meta.limit = page_size_option
1968
+ end
1969
+ if not @parent.snapshot_time.nil?
1970
+ req.meta.snapshot_at = @parent.snapshot_time
1971
+ end
1972
+
1973
+ req.filter = Plumbing::quote_filter_args(filter, *args)
1974
+ resp = Enumerator::Generator.new { |g|
1975
+ tries = 0
1976
+ loop do
1977
+ begin
1978
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Replays.List", req), deadline: deadline)
1979
+ rescue => exception
1980
+ if (@parent.shouldRetry(tries, exception))
1981
+ tries + +@parent.jitterSleep(tries)
1982
+ next
1983
+ end
1984
+ raise Plumbing::convert_error_to_porcelain(exception)
1985
+ end
1986
+ tries = 0
1987
+ plumbing_response.chunks.each do |plumbing_item|
1988
+ g.yield Plumbing::convert_replay_chunk_to_porcelain(plumbing_item)
1989
+ end
1990
+ break if plumbing_response.meta.next_cursor == ""
1991
+ req.meta.cursor = plumbing_response.meta.next_cursor
1992
+ end
1993
+ }
1994
+ resp
1995
+ end
1996
+ end
1997
+
993
1998
  # Resources are databases, servers, clusters, websites, or clouds that strongDM
994
1999
  # delegates access to.
995
2000
  #
@@ -1094,6 +2099,9 @@ module SDM #:nodoc:
1094
2099
  if page_size_option.is_a? Integer
1095
2100
  req.meta.limit = page_size_option
1096
2101
  end
2102
+ if not @parent.snapshot_time.nil?
2103
+ req.meta.snapshot_at = @parent.snapshot_time
2104
+ end
1097
2105
 
1098
2106
  req.filter = Plumbing::quote_filter_args(filter, *args)
1099
2107
  resp = Enumerator::Generator.new { |g|
@@ -1155,6 +2163,10 @@ module SDM #:nodoc:
1155
2163
  deadline: nil
1156
2164
  )
1157
2165
  req = V1::ResourceGetRequest.new()
2166
+ if not @parent.snapshot_time.nil?
2167
+ req.meta = V1::GetRequestMetadata.new()
2168
+ req.meta.snapshot_at = @parent.snapshot_time
2169
+ end
1158
2170
 
1159
2171
  req.id = (id)
1160
2172
  tries = 0
@@ -1167,96 +2179,325 @@ module SDM #:nodoc:
1167
2179
  tries + +@parent.jitterSleep(tries)
1168
2180
  next
1169
2181
  end
1170
- raise Plumbing::convert_error_to_porcelain(exception)
2182
+ raise Plumbing::convert_error_to_porcelain(exception)
2183
+ end
2184
+ break
2185
+ end
2186
+
2187
+ resp = ResourceGetResponse.new()
2188
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
2189
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2190
+ resp.resource = Plumbing::convert_resource_to_porcelain(plumbing_response.resource)
2191
+ resp
2192
+ end
2193
+
2194
+ # Update replaces all the fields of a Resource by ID.
2195
+ def update(
2196
+ resource,
2197
+ deadline: nil
2198
+ )
2199
+ req = V1::ResourceUpdateRequest.new()
2200
+
2201
+ req.resource = Plumbing::convert_resource_to_plumbing(resource)
2202
+ tries = 0
2203
+ plumbing_response = nil
2204
+ loop do
2205
+ begin
2206
+ plumbing_response = @stub.update(req, metadata: @parent.get_metadata("Resources.Update", req), deadline: deadline)
2207
+ rescue => exception
2208
+ if (@parent.shouldRetry(tries, exception))
2209
+ tries + +@parent.jitterSleep(tries)
2210
+ next
2211
+ end
2212
+ raise Plumbing::convert_error_to_porcelain(exception)
2213
+ end
2214
+ break
2215
+ end
2216
+
2217
+ resp = ResourceUpdateResponse.new()
2218
+ resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
2219
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2220
+ resp.resource = Plumbing::convert_resource_to_porcelain(plumbing_response.resource)
2221
+ resp
2222
+ end
2223
+
2224
+ # Delete removes a Resource by ID.
2225
+ def delete(
2226
+ id,
2227
+ deadline: nil
2228
+ )
2229
+ req = V1::ResourceDeleteRequest.new()
2230
+
2231
+ req.id = (id)
2232
+ tries = 0
2233
+ plumbing_response = nil
2234
+ loop do
2235
+ begin
2236
+ plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("Resources.Delete", req), deadline: deadline)
2237
+ rescue => exception
2238
+ if (@parent.shouldRetry(tries, exception))
2239
+ tries + +@parent.jitterSleep(tries)
2240
+ next
2241
+ end
2242
+ raise Plumbing::convert_error_to_porcelain(exception)
2243
+ end
2244
+ break
2245
+ end
2246
+
2247
+ resp = ResourceDeleteResponse.new()
2248
+ resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
2249
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2250
+ resp
2251
+ end
2252
+
2253
+ # List gets a list of Resources matching a given set of criteria.
2254
+ def list(
2255
+ filter,
2256
+ *args,
2257
+ deadline: nil
2258
+ )
2259
+ req = V1::ResourceListRequest.new()
2260
+ req.meta = V1::ListRequestMetadata.new()
2261
+ page_size_option = @parent._test_options["PageSize"]
2262
+ if page_size_option.is_a? Integer
2263
+ req.meta.limit = page_size_option
2264
+ end
2265
+ if not @parent.snapshot_time.nil?
2266
+ req.meta.snapshot_at = @parent.snapshot_time
2267
+ end
2268
+
2269
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2270
+ resp = Enumerator::Generator.new { |g|
2271
+ tries = 0
2272
+ loop do
2273
+ begin
2274
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Resources.List", req), deadline: deadline)
2275
+ rescue => exception
2276
+ if (@parent.shouldRetry(tries, exception))
2277
+ tries + +@parent.jitterSleep(tries)
2278
+ next
2279
+ end
2280
+ raise Plumbing::convert_error_to_porcelain(exception)
2281
+ end
2282
+ tries = 0
2283
+ plumbing_response.resources.each do |plumbing_item|
2284
+ g.yield Plumbing::convert_resource_to_porcelain(plumbing_item)
2285
+ end
2286
+ break if plumbing_response.meta.next_cursor == ""
2287
+ req.meta.cursor = plumbing_response.meta.next_cursor
2288
+ end
2289
+ }
2290
+ resp
2291
+ end
2292
+ end
2293
+
2294
+ # SnapshotResources exposes the read only methods of the Resources
2295
+ # service for historical queries.
2296
+ class SnapshotResources
2297
+ extend Gem::Deprecate
2298
+
2299
+ def initialize(resources)
2300
+ @resources = resources
2301
+ end
2302
+
2303
+ # Get reads one Resource by ID.
2304
+ def get(
2305
+ id,
2306
+ deadline: nil
2307
+ )
2308
+ return @resources.get(
2309
+ id,
2310
+ deadline: deadline,
2311
+ )
2312
+ end
2313
+
2314
+ # List gets a list of Resources matching a given set of criteria.
2315
+ def list(
2316
+ filter,
2317
+ *args,
2318
+ deadline: nil
2319
+ )
2320
+ return @resources.list(
2321
+ filter,
2322
+ *args,
2323
+ deadline: deadline,
2324
+ )
2325
+ end
2326
+ end
2327
+
2328
+ # ResourcesHistory records all changes to the state of a Resource.
2329
+ #
2330
+ # See {ResourceHistory}.
2331
+ class ResourcesHistory
2332
+ extend Gem::Deprecate
2333
+
2334
+ def initialize(channel, parent)
2335
+ begin
2336
+ @stub = V1::ResourcesHistory::Stub.new(nil, nil, channel_override: channel)
2337
+ rescue => exception
2338
+ raise Plumbing::convert_error_to_porcelain(exception)
2339
+ end
2340
+ @parent = parent
2341
+ end
2342
+
2343
+ # List gets a list of ResourceHistory records matching a given set of criteria.
2344
+ def list(
2345
+ filter,
2346
+ *args,
2347
+ deadline: nil
2348
+ )
2349
+ req = V1::ResourceHistoryListRequest.new()
2350
+ req.meta = V1::ListRequestMetadata.new()
2351
+ page_size_option = @parent._test_options["PageSize"]
2352
+ if page_size_option.is_a? Integer
2353
+ req.meta.limit = page_size_option
2354
+ end
2355
+ if not @parent.snapshot_time.nil?
2356
+ req.meta.snapshot_at = @parent.snapshot_time
2357
+ end
2358
+
2359
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2360
+ resp = Enumerator::Generator.new { |g|
2361
+ tries = 0
2362
+ loop do
2363
+ begin
2364
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("ResourcesHistory.List", req), deadline: deadline)
2365
+ rescue => exception
2366
+ if (@parent.shouldRetry(tries, exception))
2367
+ tries + +@parent.jitterSleep(tries)
2368
+ next
2369
+ end
2370
+ raise Plumbing::convert_error_to_porcelain(exception)
2371
+ end
2372
+ tries = 0
2373
+ plumbing_response.history.each do |plumbing_item|
2374
+ g.yield Plumbing::convert_resource_history_to_porcelain(plumbing_item)
2375
+ end
2376
+ break if plumbing_response.meta.next_cursor == ""
2377
+ req.meta.cursor = plumbing_response.meta.next_cursor
1171
2378
  end
1172
- break
1173
- end
1174
-
1175
- resp = ResourceGetResponse.new()
1176
- resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
1177
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
1178
- resp.resource = Plumbing::convert_resource_to_porcelain(plumbing_response.resource)
2379
+ }
1179
2380
  resp
1180
2381
  end
2382
+ end
1181
2383
 
1182
- # Update replaces all the fields of a Resource by ID.
1183
- def update(
1184
- resource,
2384
+ # RoleResources enumerates the resources to which roles have access.
2385
+ # The RoleResources service is read-only.
2386
+ #
2387
+ # See {RoleResource}.
2388
+ class RoleResources
2389
+ extend Gem::Deprecate
2390
+
2391
+ def initialize(channel, parent)
2392
+ begin
2393
+ @stub = V1::RoleResources::Stub.new(nil, nil, channel_override: channel)
2394
+ rescue => exception
2395
+ raise Plumbing::convert_error_to_porcelain(exception)
2396
+ end
2397
+ @parent = parent
2398
+ end
2399
+
2400
+ # List gets a list of RoleResource records matching a given set of criteria.
2401
+ def list(
2402
+ filter,
2403
+ *args,
1185
2404
  deadline: nil
1186
2405
  )
1187
- req = V1::ResourceUpdateRequest.new()
2406
+ req = V1::RoleResourceListRequest.new()
2407
+ req.meta = V1::ListRequestMetadata.new()
2408
+ page_size_option = @parent._test_options["PageSize"]
2409
+ if page_size_option.is_a? Integer
2410
+ req.meta.limit = page_size_option
2411
+ end
2412
+ if not @parent.snapshot_time.nil?
2413
+ req.meta.snapshot_at = @parent.snapshot_time
2414
+ end
1188
2415
 
1189
- req.resource = Plumbing::convert_resource_to_plumbing(resource)
1190
- tries = 0
1191
- plumbing_response = nil
1192
- loop do
1193
- begin
1194
- plumbing_response = @stub.update(req, metadata: @parent.get_metadata("Resources.Update", req), deadline: deadline)
1195
- rescue => exception
1196
- if (@parent.shouldRetry(tries, exception))
1197
- tries + +@parent.jitterSleep(tries)
1198
- next
2416
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2417
+ resp = Enumerator::Generator.new { |g|
2418
+ tries = 0
2419
+ loop do
2420
+ begin
2421
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("RoleResources.List", req), deadline: deadline)
2422
+ rescue => exception
2423
+ if (@parent.shouldRetry(tries, exception))
2424
+ tries + +@parent.jitterSleep(tries)
2425
+ next
2426
+ end
2427
+ raise Plumbing::convert_error_to_porcelain(exception)
1199
2428
  end
1200
- raise Plumbing::convert_error_to_porcelain(exception)
2429
+ tries = 0
2430
+ plumbing_response.role_resources.each do |plumbing_item|
2431
+ g.yield Plumbing::convert_role_resource_to_porcelain(plumbing_item)
2432
+ end
2433
+ break if plumbing_response.meta.next_cursor == ""
2434
+ req.meta.cursor = plumbing_response.meta.next_cursor
1201
2435
  end
1202
- break
1203
- end
1204
-
1205
- resp = ResourceUpdateResponse.new()
1206
- resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
1207
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
1208
- resp.resource = Plumbing::convert_resource_to_porcelain(plumbing_response.resource)
2436
+ }
1209
2437
  resp
1210
2438
  end
2439
+ end
1211
2440
 
1212
- # Delete removes a Resource by ID.
1213
- def delete(
1214
- id,
2441
+ # SnapshotRoleResources exposes the read only methods of the RoleResources
2442
+ # service for historical queries.
2443
+ class SnapshotRoleResources
2444
+ extend Gem::Deprecate
2445
+
2446
+ def initialize(role_resources)
2447
+ @role_resources = role_resources
2448
+ end
2449
+
2450
+ # List gets a list of RoleResource records matching a given set of criteria.
2451
+ def list(
2452
+ filter,
2453
+ *args,
1215
2454
  deadline: nil
1216
2455
  )
1217
- req = V1::ResourceDeleteRequest.new()
2456
+ return @role_resources.list(
2457
+ filter,
2458
+ *args,
2459
+ deadline: deadline,
2460
+ )
2461
+ end
2462
+ end
1218
2463
 
1219
- req.id = (id)
1220
- tries = 0
1221
- plumbing_response = nil
1222
- loop do
1223
- begin
1224
- plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("Resources.Delete", req), deadline: deadline)
1225
- rescue => exception
1226
- if (@parent.shouldRetry(tries, exception))
1227
- tries + +@parent.jitterSleep(tries)
1228
- next
1229
- end
1230
- raise Plumbing::convert_error_to_porcelain(exception)
1231
- end
1232
- break
1233
- end
2464
+ # RoleResourcesHistory records all changes to the state of a RoleResource.
2465
+ #
2466
+ # See {RoleResourceHistory}.
2467
+ class RoleResourcesHistory
2468
+ extend Gem::Deprecate
1234
2469
 
1235
- resp = ResourceDeleteResponse.new()
1236
- resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
1237
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
1238
- resp
2470
+ def initialize(channel, parent)
2471
+ begin
2472
+ @stub = V1::RoleResourcesHistory::Stub.new(nil, nil, channel_override: channel)
2473
+ rescue => exception
2474
+ raise Plumbing::convert_error_to_porcelain(exception)
2475
+ end
2476
+ @parent = parent
1239
2477
  end
1240
2478
 
1241
- # List gets a list of Resources matching a given set of criteria.
2479
+ # List gets a list of RoleResourceHistory records matching a given set of criteria.
1242
2480
  def list(
1243
2481
  filter,
1244
2482
  *args,
1245
2483
  deadline: nil
1246
2484
  )
1247
- req = V1::ResourceListRequest.new()
2485
+ req = V1::RoleResourceHistoryListRequest.new()
1248
2486
  req.meta = V1::ListRequestMetadata.new()
1249
2487
  page_size_option = @parent._test_options["PageSize"]
1250
2488
  if page_size_option.is_a? Integer
1251
2489
  req.meta.limit = page_size_option
1252
2490
  end
2491
+ if not @parent.snapshot_time.nil?
2492
+ req.meta.snapshot_at = @parent.snapshot_time
2493
+ end
1253
2494
 
1254
2495
  req.filter = Plumbing::quote_filter_args(filter, *args)
1255
2496
  resp = Enumerator::Generator.new { |g|
1256
2497
  tries = 0
1257
2498
  loop do
1258
2499
  begin
1259
- plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Resources.List", req), deadline: deadline)
2500
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("RoleResourcesHistory.List", req), deadline: deadline)
1260
2501
  rescue => exception
1261
2502
  if (@parent.shouldRetry(tries, exception))
1262
2503
  tries + +@parent.jitterSleep(tries)
@@ -1265,8 +2506,8 @@ module SDM #:nodoc:
1265
2506
  raise Plumbing::convert_error_to_porcelain(exception)
1266
2507
  end
1267
2508
  tries = 0
1268
- plumbing_response.resources.each do |plumbing_item|
1269
- g.yield Plumbing::convert_resource_to_porcelain(plumbing_item)
2509
+ plumbing_response.history.each do |plumbing_item|
2510
+ g.yield Plumbing::convert_role_resource_history_to_porcelain(plumbing_item)
1270
2511
  end
1271
2512
  break if plumbing_response.meta.next_cursor == ""
1272
2513
  req.meta.cursor = plumbing_response.meta.next_cursor
@@ -1329,6 +2570,10 @@ module SDM #:nodoc:
1329
2570
  deadline: nil
1330
2571
  )
1331
2572
  req = V1::RoleGetRequest.new()
2573
+ if not @parent.snapshot_time.nil?
2574
+ req.meta = V1::GetRequestMetadata.new()
2575
+ req.meta.snapshot_at = @parent.snapshot_time
2576
+ end
1332
2577
 
1333
2578
  req.id = (id)
1334
2579
  tries = 0
@@ -1424,6 +2669,9 @@ module SDM #:nodoc:
1424
2669
  if page_size_option.is_a? Integer
1425
2670
  req.meta.limit = page_size_option
1426
2671
  end
2672
+ if not @parent.snapshot_time.nil?
2673
+ req.meta.snapshot_at = @parent.snapshot_time
2674
+ end
1427
2675
 
1428
2676
  req.filter = Plumbing::quote_filter_args(filter, *args)
1429
2677
  resp = Enumerator::Generator.new { |g|
@@ -1450,6 +2698,96 @@ module SDM #:nodoc:
1450
2698
  end
1451
2699
  end
1452
2700
 
2701
+ # SnapshotRoles exposes the read only methods of the Roles
2702
+ # service for historical queries.
2703
+ class SnapshotRoles
2704
+ extend Gem::Deprecate
2705
+
2706
+ def initialize(roles)
2707
+ @roles = roles
2708
+ end
2709
+
2710
+ # Get reads one Role by ID.
2711
+ def get(
2712
+ id,
2713
+ deadline: nil
2714
+ )
2715
+ return @roles.get(
2716
+ id,
2717
+ deadline: deadline,
2718
+ )
2719
+ end
2720
+
2721
+ # List gets a list of Roles matching a given set of criteria.
2722
+ def list(
2723
+ filter,
2724
+ *args,
2725
+ deadline: nil
2726
+ )
2727
+ return @roles.list(
2728
+ filter,
2729
+ *args,
2730
+ deadline: deadline,
2731
+ )
2732
+ end
2733
+ end
2734
+
2735
+ # RolesHistory records all changes to the state of a Role.
2736
+ #
2737
+ # See {RoleHistory}.
2738
+ class RolesHistory
2739
+ extend Gem::Deprecate
2740
+
2741
+ def initialize(channel, parent)
2742
+ begin
2743
+ @stub = V1::RolesHistory::Stub.new(nil, nil, channel_override: channel)
2744
+ rescue => exception
2745
+ raise Plumbing::convert_error_to_porcelain(exception)
2746
+ end
2747
+ @parent = parent
2748
+ end
2749
+
2750
+ # List gets a list of RoleHistory records matching a given set of criteria.
2751
+ def list(
2752
+ filter,
2753
+ *args,
2754
+ deadline: nil
2755
+ )
2756
+ req = V1::RoleHistoryListRequest.new()
2757
+ req.meta = V1::ListRequestMetadata.new()
2758
+ page_size_option = @parent._test_options["PageSize"]
2759
+ if page_size_option.is_a? Integer
2760
+ req.meta.limit = page_size_option
2761
+ end
2762
+ if not @parent.snapshot_time.nil?
2763
+ req.meta.snapshot_at = @parent.snapshot_time
2764
+ end
2765
+
2766
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2767
+ resp = Enumerator::Generator.new { |g|
2768
+ tries = 0
2769
+ loop do
2770
+ begin
2771
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("RolesHistory.List", req), deadline: deadline)
2772
+ rescue => exception
2773
+ if (@parent.shouldRetry(tries, exception))
2774
+ tries + +@parent.jitterSleep(tries)
2775
+ next
2776
+ end
2777
+ raise Plumbing::convert_error_to_porcelain(exception)
2778
+ end
2779
+ tries = 0
2780
+ plumbing_response.history.each do |plumbing_item|
2781
+ g.yield Plumbing::convert_role_history_to_porcelain(plumbing_item)
2782
+ end
2783
+ break if plumbing_response.meta.next_cursor == ""
2784
+ req.meta.cursor = plumbing_response.meta.next_cursor
2785
+ end
2786
+ }
2787
+ resp
2788
+ end
2789
+ end
2790
+
1453
2791
  # SecretStores are servers where resource secrets (passwords, keys) are stored.
1454
2792
  #
1455
2793
  # See:
@@ -1510,6 +2848,10 @@ module SDM #:nodoc:
1510
2848
  deadline: nil
1511
2849
  )
1512
2850
  req = V1::SecretStoreGetRequest.new()
2851
+ if not @parent.snapshot_time.nil?
2852
+ req.meta = V1::GetRequestMetadata.new()
2853
+ req.meta.snapshot_at = @parent.snapshot_time
2854
+ end
1513
2855
 
1514
2856
  req.id = (id)
1515
2857
  tries = 0
@@ -1605,6 +2947,9 @@ module SDM #:nodoc:
1605
2947
  if page_size_option.is_a? Integer
1606
2948
  req.meta.limit = page_size_option
1607
2949
  end
2950
+ if not @parent.snapshot_time.nil?
2951
+ req.meta.snapshot_at = @parent.snapshot_time
2952
+ end
1608
2953
 
1609
2954
  req.filter = Plumbing::quote_filter_args(filter, *args)
1610
2955
  resp = Enumerator::Generator.new { |g|
@@ -1630,4 +2975,94 @@ module SDM #:nodoc:
1630
2975
  resp
1631
2976
  end
1632
2977
  end
2978
+
2979
+ # SnapshotSecretStores exposes the read only methods of the SecretStores
2980
+ # service for historical queries.
2981
+ class SnapshotSecretStores
2982
+ extend Gem::Deprecate
2983
+
2984
+ def initialize(secret_stores)
2985
+ @secret_stores = secret_stores
2986
+ end
2987
+
2988
+ # Get reads one SecretStore by ID.
2989
+ def get(
2990
+ id,
2991
+ deadline: nil
2992
+ )
2993
+ return @secret_stores.get(
2994
+ id,
2995
+ deadline: deadline,
2996
+ )
2997
+ end
2998
+
2999
+ # List gets a list of SecretStores matching a given set of criteria.
3000
+ def list(
3001
+ filter,
3002
+ *args,
3003
+ deadline: nil
3004
+ )
3005
+ return @secret_stores.list(
3006
+ filter,
3007
+ *args,
3008
+ deadline: deadline,
3009
+ )
3010
+ end
3011
+ end
3012
+
3013
+ # SecretStoresHistory records all changes to the state of a SecretStore.
3014
+ #
3015
+ # See {SecretStoreHistory}.
3016
+ class SecretStoresHistory
3017
+ extend Gem::Deprecate
3018
+
3019
+ def initialize(channel, parent)
3020
+ begin
3021
+ @stub = V1::SecretStoresHistory::Stub.new(nil, nil, channel_override: channel)
3022
+ rescue => exception
3023
+ raise Plumbing::convert_error_to_porcelain(exception)
3024
+ end
3025
+ @parent = parent
3026
+ end
3027
+
3028
+ # List gets a list of SecretStoreHistory records matching a given set of criteria.
3029
+ def list(
3030
+ filter,
3031
+ *args,
3032
+ deadline: nil
3033
+ )
3034
+ req = V1::SecretStoreHistoryListRequest.new()
3035
+ req.meta = V1::ListRequestMetadata.new()
3036
+ page_size_option = @parent._test_options["PageSize"]
3037
+ if page_size_option.is_a? Integer
3038
+ req.meta.limit = page_size_option
3039
+ end
3040
+ if not @parent.snapshot_time.nil?
3041
+ req.meta.snapshot_at = @parent.snapshot_time
3042
+ end
3043
+
3044
+ req.filter = Plumbing::quote_filter_args(filter, *args)
3045
+ resp = Enumerator::Generator.new { |g|
3046
+ tries = 0
3047
+ loop do
3048
+ begin
3049
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretStoresHistory.List", req), deadline: deadline)
3050
+ rescue => exception
3051
+ if (@parent.shouldRetry(tries, exception))
3052
+ tries + +@parent.jitterSleep(tries)
3053
+ next
3054
+ end
3055
+ raise Plumbing::convert_error_to_porcelain(exception)
3056
+ end
3057
+ tries = 0
3058
+ plumbing_response.history.each do |plumbing_item|
3059
+ g.yield Plumbing::convert_secret_store_history_to_porcelain(plumbing_item)
3060
+ end
3061
+ break if plumbing_response.meta.next_cursor == ""
3062
+ req.meta.cursor = plumbing_response.meta.next_cursor
3063
+ end
3064
+ }
3065
+ resp
3066
+ end
3067
+ end
1633
3068
  end