strongdm 3.6.1 → 3.7.0

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