strongdm 4.3.0 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) 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-e53248831c9814d011695b30ef6c9a23ab4fbf61.idx → pack-9c459884b97e0a33b1e10aa61914fa82820fa985.idx} +0 -0
  8. data/.git/objects/pack/{pack-e53248831c9814d011695b30ef6c9a23ab4fbf61.pack → pack-9c459884b97e0a33b1e10aa61914fa82820fa985.pack} +0 -0
  9. data/.git/packed-refs +3 -2
  10. data/.git/refs/heads/master +1 -1
  11. data/lib/grpc/access_request_events_history_pb.rb +48 -0
  12. data/lib/grpc/access_request_events_history_services_pb.rb +37 -0
  13. data/lib/grpc/access_requests_history_pb.rb +48 -0
  14. data/lib/grpc/access_requests_history_services_pb.rb +37 -0
  15. data/lib/grpc/access_requests_pb.rb +60 -0
  16. data/lib/grpc/access_requests_services_pb.rb +37 -0
  17. data/lib/grpc/plumbing.rb +496 -0
  18. data/lib/grpc/workflow_approvers_history_pb.rb +48 -0
  19. data/lib/grpc/workflow_approvers_history_services_pb.rb +37 -0
  20. data/lib/grpc/workflow_assignments_history_pb.rb +48 -0
  21. data/lib/grpc/workflow_assignments_history_services_pb.rb +37 -0
  22. data/lib/grpc/workflow_roles_history_pb.rb +48 -0
  23. data/lib/grpc/workflow_roles_history_services_pb.rb +37 -0
  24. data/lib/grpc/workflows_history_pb.rb +48 -0
  25. data/lib/grpc/workflows_history_services_pb.rb +37 -0
  26. data/lib/grpc/workflows_pb.rb +64 -0
  27. data/lib/grpc/workflows_services_pb.rb +39 -0
  28. data/lib/models/porcelain.rb +424 -0
  29. data/lib/strongdm.rb +63 -1
  30. data/lib/svc.rb +496 -0
  31. data/lib/version +1 -1
  32. data/lib/version.rb +1 -1
  33. metadata +20 -4
@@ -653,6 +653,170 @@ module SDM
653
653
  end
654
654
  end
655
655
 
656
+ # AccessRequests are requests for access to a resource that may match a Workflow.
657
+ class AccessRequest
658
+ # The account that initiated the request.
659
+ attr_accessor :account_id
660
+ # The account grant created, if it exists.
661
+ attr_accessor :grant_id
662
+ # The access request id.
663
+ attr_accessor :id
664
+ # The reason the access was requested.
665
+ attr_accessor :reason
666
+ # The resource id.
667
+ attr_accessor :resource_id
668
+ # The timestamp when the requested access will be granted.
669
+ # If this field is not specified it will default to the current time.
670
+ attr_accessor :start_from
671
+ # The status of the access request.
672
+ attr_accessor :status
673
+ # The timestamp when the status changed.
674
+ attr_accessor :status_at
675
+ # The timestamp when the requested access will expire.
676
+ attr_accessor :valid_until
677
+ # The workflow the request bound to.
678
+ attr_accessor :workflow_id
679
+
680
+ def initialize(
681
+ account_id: nil,
682
+ grant_id: nil,
683
+ id: nil,
684
+ reason: nil,
685
+ resource_id: nil,
686
+ start_from: nil,
687
+ status: nil,
688
+ status_at: nil,
689
+ valid_until: nil,
690
+ workflow_id: nil
691
+ )
692
+ @account_id = account_id == nil ? "" : account_id
693
+ @grant_id = grant_id == nil ? "" : grant_id
694
+ @id = id == nil ? "" : id
695
+ @reason = reason == nil ? "" : reason
696
+ @resource_id = resource_id == nil ? "" : resource_id
697
+ @start_from = start_from == nil ? nil : start_from
698
+ @status = status == nil ? "" : status
699
+ @status_at = status_at == nil ? nil : status_at
700
+ @valid_until = valid_until == nil ? nil : valid_until
701
+ @workflow_id = workflow_id == nil ? "" : workflow_id
702
+ end
703
+
704
+ def to_json(options = {})
705
+ hash = {}
706
+ self.instance_variables.each do |var|
707
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
708
+ end
709
+ hash.to_json
710
+ end
711
+ end
712
+
713
+ # AccessRequestEvents hold information about events related to an access
714
+ # request such as creation, approval and denial.
715
+ class AccessRequestEvent
716
+ # The account responsible for the event.
717
+ attr_accessor :actor_id
718
+ # The access request event id.
719
+ attr_accessor :id
720
+ # The metadata about the event
721
+ attr_accessor :metadata
722
+ # The request that the event is bound to.
723
+ attr_accessor :request_id
724
+ # The type of event.
725
+ attr_accessor :type
726
+
727
+ def initialize(
728
+ actor_id: nil,
729
+ id: nil,
730
+ metadata: nil,
731
+ request_id: nil,
732
+ type: nil
733
+ )
734
+ @actor_id = actor_id == nil ? "" : actor_id
735
+ @id = id == nil ? "" : id
736
+ @metadata = metadata == nil ? "" : metadata
737
+ @request_id = request_id == nil ? "" : request_id
738
+ @type = type == nil ? "" : type
739
+ end
740
+
741
+ def to_json(options = {})
742
+ hash = {}
743
+ self.instance_variables.each do |var|
744
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
745
+ end
746
+ hash.to_json
747
+ end
748
+ end
749
+
750
+ # AccessRequestEventHistory records the state of a AccessRequest at a given point in time,
751
+ # where every change (create, update and delete) to a AccessRequest produces an
752
+ # AccessRequestEventHistory record.
753
+ class AccessRequestEventHistory
754
+ # The complete AccessRequestEvent state at this time.
755
+ attr_accessor :access_request_event
756
+ # The unique identifier of the Activity that produced this change to the AccessRequest.
757
+ # May be empty for some system-initiated updates.
758
+ attr_accessor :activity_id
759
+ # If this Workflow was deleted, the time it was deleted.
760
+ attr_accessor :deleted_at
761
+ # The time at which the AccessRequest state was recorded.
762
+ attr_accessor :timestamp
763
+
764
+ def initialize(
765
+ access_request_event: nil,
766
+ activity_id: nil,
767
+ deleted_at: nil,
768
+ timestamp: nil
769
+ )
770
+ @access_request_event = access_request_event == nil ? nil : access_request_event
771
+ @activity_id = activity_id == nil ? "" : activity_id
772
+ @deleted_at = deleted_at == nil ? nil : deleted_at
773
+ @timestamp = timestamp == nil ? nil : timestamp
774
+ end
775
+
776
+ def to_json(options = {})
777
+ hash = {}
778
+ self.instance_variables.each do |var|
779
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
780
+ end
781
+ hash.to_json
782
+ end
783
+ end
784
+
785
+ # AccessRequestHistory records the state of a AccessRequest at a given point in time,
786
+ # where every change (create, update and delete) to a AccessRequest produces an
787
+ # AccessRequestHistory record.
788
+ class AccessRequestHistory
789
+ # The complete AccessRequest state at this time.
790
+ attr_accessor :access_request
791
+ # The unique identifier of the Activity that produced this change to the AccessRequest.
792
+ # May be empty for some system-initiated updates.
793
+ attr_accessor :activity_id
794
+ # If this Workflow was deleted, the time it was deleted.
795
+ attr_accessor :deleted_at
796
+ # The time at which the AccessRequest state was recorded.
797
+ attr_accessor :timestamp
798
+
799
+ def initialize(
800
+ access_request: nil,
801
+ activity_id: nil,
802
+ deleted_at: nil,
803
+ timestamp: nil
804
+ )
805
+ @access_request = access_request == nil ? nil : access_request
806
+ @activity_id = activity_id == nil ? "" : activity_id
807
+ @deleted_at = deleted_at == nil ? nil : deleted_at
808
+ @timestamp = timestamp == nil ? nil : timestamp
809
+ end
810
+
811
+ def to_json(options = {})
812
+ hash = {}
813
+ self.instance_variables.each do |var|
814
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
815
+ end
816
+ hash.to_json
817
+ end
818
+ end
819
+
656
820
  # AccountAttachments assign an account to a role.
657
821
  class AccountAttachment
658
822
  # The id of the account of this AccountAttachment.
@@ -9332,6 +9496,266 @@ module SDM
9332
9496
  end
9333
9497
  end
9334
9498
 
9499
+ # Workflows are the collection of rules that define the resources to which access can be requested,
9500
+ # the users that can request that access, and the mechanism for approving those requests which can either
9501
+ # but automatic approval or a set of users authorized to approve the requests.
9502
+ class Workflow
9503
+ # AccessRules is a list of access rules defining the resources this Workflow provides access to.
9504
+ attr_accessor :access_rules
9505
+ # Optional auto grant setting to automatically approve requests or not, defaults to false.
9506
+ attr_accessor :auto_grant
9507
+ # Optional description of the Workflow.
9508
+ attr_accessor :description
9509
+ # Optional enabled state for workflow. This setting may be overridden by the system if
9510
+ # the workflow doesn't meet the requirements to be enabled or if other conditions prevent
9511
+ # enabling the workflow.
9512
+ attr_accessor :enabled
9513
+ # Unique identifier of the Workflow.
9514
+ attr_accessor :id
9515
+ # Unique human-readable name of the Workflow.
9516
+ attr_accessor :name
9517
+ # Optional weight for workflow to specify it's priority in matching a request.
9518
+ attr_accessor :weight
9519
+
9520
+ def initialize(
9521
+ access_rules: nil,
9522
+ auto_grant: nil,
9523
+ description: nil,
9524
+ enabled: nil,
9525
+ id: nil,
9526
+ name: nil,
9527
+ weight: nil
9528
+ )
9529
+ @access_rules = access_rules == nil ? SDM::_porcelain_zero_value_access_rules() : access_rules
9530
+ @auto_grant = auto_grant == nil ? false : auto_grant
9531
+ @description = description == nil ? "" : description
9532
+ @enabled = enabled == nil ? false : enabled
9533
+ @id = id == nil ? "" : id
9534
+ @name = name == nil ? "" : name
9535
+ @weight = weight == nil ? 0 : weight
9536
+ end
9537
+
9538
+ def to_json(options = {})
9539
+ hash = {}
9540
+ self.instance_variables.each do |var|
9541
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9542
+ end
9543
+ hash.to_json
9544
+ end
9545
+ end
9546
+
9547
+ # WorkflowApprover is an account with the ability to approve requests bound to a workflow.
9548
+ class WorkflowApprover
9549
+ # The approver id.
9550
+ attr_accessor :approver_id
9551
+ # The workflow id.
9552
+ attr_accessor :workflow_id
9553
+
9554
+ def initialize(
9555
+ approver_id: nil,
9556
+ workflow_id: nil
9557
+ )
9558
+ @approver_id = approver_id == nil ? "" : approver_id
9559
+ @workflow_id = workflow_id == nil ? "" : workflow_id
9560
+ end
9561
+
9562
+ def to_json(options = {})
9563
+ hash = {}
9564
+ self.instance_variables.each do |var|
9565
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9566
+ end
9567
+ hash.to_json
9568
+ end
9569
+ end
9570
+
9571
+ # WorkflowApproverHistory records the state of a WorkflowApprover at a given point in time,
9572
+ # where every change (create, update and delete) to a WorkflowApprover produces an
9573
+ # WorkflowApproverHistory record.
9574
+ class WorkflowApproverHistory
9575
+ # The unique identifier of the Activity that produced this change to the Workflow.
9576
+ # May be empty for some system-initiated updates.
9577
+ attr_accessor :activity_id
9578
+ # If this Workflow was deleted, the time it was deleted.
9579
+ attr_accessor :deleted_at
9580
+ # The time at which the Workflow state was recorded.
9581
+ attr_accessor :timestamp
9582
+ # The complete WorkflowApprover state at this time.
9583
+ attr_accessor :workflow_approver
9584
+
9585
+ def initialize(
9586
+ activity_id: nil,
9587
+ deleted_at: nil,
9588
+ timestamp: nil,
9589
+ workflow_approver: nil
9590
+ )
9591
+ @activity_id = activity_id == nil ? "" : activity_id
9592
+ @deleted_at = deleted_at == nil ? nil : deleted_at
9593
+ @timestamp = timestamp == nil ? nil : timestamp
9594
+ @workflow_approver = workflow_approver == nil ? nil : workflow_approver
9595
+ end
9596
+
9597
+ def to_json(options = {})
9598
+ hash = {}
9599
+ self.instance_variables.each do |var|
9600
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9601
+ end
9602
+ hash.to_json
9603
+ end
9604
+ end
9605
+
9606
+ # WorkflowAssignment links a Resource to a Workflow.
9607
+ class WorkflowAssignment
9608
+ # The resource id.
9609
+ attr_accessor :resource_id
9610
+ # The workflow id.
9611
+ attr_accessor :workflow_id
9612
+
9613
+ def initialize(
9614
+ resource_id: nil,
9615
+ workflow_id: nil
9616
+ )
9617
+ @resource_id = resource_id == nil ? "" : resource_id
9618
+ @workflow_id = workflow_id == nil ? "" : workflow_id
9619
+ end
9620
+
9621
+ def to_json(options = {})
9622
+ hash = {}
9623
+ self.instance_variables.each do |var|
9624
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9625
+ end
9626
+ hash.to_json
9627
+ end
9628
+ end
9629
+
9630
+ # WorkflowAssignmentHistory records the state of a WorkflowAssignment at a given point in time,
9631
+ # where every change (create, update and delete) to a WorkflowAssignment produces an
9632
+ # WorkflowAssignmentHistory record.
9633
+ class WorkflowAssignmentHistory
9634
+ # The unique identifier of the Activity that produced this change to the Workflow.
9635
+ # May be empty for some system-initiated updates.
9636
+ attr_accessor :activity_id
9637
+ # If this Workflow was deleted, the time it was deleted.
9638
+ attr_accessor :deleted_at
9639
+ # The time at which the Workflow state was recorded.
9640
+ attr_accessor :timestamp
9641
+ # The complete WorkflowAssignment state at this time.
9642
+ attr_accessor :workflow_assignment
9643
+
9644
+ def initialize(
9645
+ activity_id: nil,
9646
+ deleted_at: nil,
9647
+ timestamp: nil,
9648
+ workflow_assignment: nil
9649
+ )
9650
+ @activity_id = activity_id == nil ? "" : activity_id
9651
+ @deleted_at = deleted_at == nil ? nil : deleted_at
9652
+ @timestamp = timestamp == nil ? nil : timestamp
9653
+ @workflow_assignment = workflow_assignment == nil ? nil : workflow_assignment
9654
+ end
9655
+
9656
+ def to_json(options = {})
9657
+ hash = {}
9658
+ self.instance_variables.each do |var|
9659
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9660
+ end
9661
+ hash.to_json
9662
+ end
9663
+ end
9664
+
9665
+ # WorkflowHistory records the state of a Workflow at a given point in time,
9666
+ # where every change (create, update and delete) to a Workflow produces an
9667
+ # WorkflowHistory record.
9668
+ class WorkflowHistory
9669
+ # The unique identifier of the Activity that produced this change to the Workflow.
9670
+ # May be empty for some system-initiated updates.
9671
+ attr_accessor :activity_id
9672
+ # If this Workflow was deleted, the time it was deleted.
9673
+ attr_accessor :deleted_at
9674
+ # The time at which the Workflow state was recorded.
9675
+ attr_accessor :timestamp
9676
+ # The complete Workflow state at this time.
9677
+ attr_accessor :workflow
9678
+
9679
+ def initialize(
9680
+ activity_id: nil,
9681
+ deleted_at: nil,
9682
+ timestamp: nil,
9683
+ workflow: nil
9684
+ )
9685
+ @activity_id = activity_id == nil ? "" : activity_id
9686
+ @deleted_at = deleted_at == nil ? nil : deleted_at
9687
+ @timestamp = timestamp == nil ? nil : timestamp
9688
+ @workflow = workflow == nil ? nil : workflow
9689
+ end
9690
+
9691
+ def to_json(options = {})
9692
+ hash = {}
9693
+ self.instance_variables.each do |var|
9694
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9695
+ end
9696
+ hash.to_json
9697
+ end
9698
+ end
9699
+
9700
+ # WorkflowRole links a Role to a Workflow.
9701
+ class WorkflowRole
9702
+ # The role id.
9703
+ attr_accessor :role_id
9704
+ # The workflow id.
9705
+ attr_accessor :workflow_id
9706
+
9707
+ def initialize(
9708
+ role_id: nil,
9709
+ workflow_id: nil
9710
+ )
9711
+ @role_id = role_id == nil ? "" : role_id
9712
+ @workflow_id = workflow_id == nil ? "" : workflow_id
9713
+ end
9714
+
9715
+ def to_json(options = {})
9716
+ hash = {}
9717
+ self.instance_variables.each do |var|
9718
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9719
+ end
9720
+ hash.to_json
9721
+ end
9722
+ end
9723
+
9724
+ # WorkflowRolesHistory records the state of a Workflow at a given point in time,
9725
+ # where every change (create, update and delete) to a WorkflowRole produces a
9726
+ # WorkflowRoleHistory record.
9727
+ class WorkflowRoleHistory
9728
+ # The unique identifier of the Activity that produced this change to the Workflow.
9729
+ # May be empty for some system-initiated updates.
9730
+ attr_accessor :activity_id
9731
+ # If this WorkflowRole was deleted, the time it was deleted.
9732
+ attr_accessor :deleted_at
9733
+ # The time at which the Workflow state was recorded.
9734
+ attr_accessor :timestamp
9735
+ # The complete WorkflowRole state at this time.
9736
+ attr_accessor :workflow_role
9737
+
9738
+ def initialize(
9739
+ activity_id: nil,
9740
+ deleted_at: nil,
9741
+ timestamp: nil,
9742
+ workflow_role: nil
9743
+ )
9744
+ @activity_id = activity_id == nil ? "" : activity_id
9745
+ @deleted_at = deleted_at == nil ? nil : deleted_at
9746
+ @timestamp = timestamp == nil ? nil : timestamp
9747
+ @workflow_role = workflow_role == nil ? nil : workflow_role
9748
+ end
9749
+
9750
+ def to_json(options = {})
9751
+ hash = {}
9752
+ self.instance_variables.each do |var|
9753
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9754
+ end
9755
+ hash.to_json
9756
+ end
9757
+ end
9758
+
9335
9759
  # @private
9336
9760
  def self._porcelain_zero_value_tags()
9337
9761
  {}
data/lib/strongdm.rb CHANGED
@@ -29,7 +29,7 @@ module SDM #:nodoc:
29
29
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
30
30
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
31
31
  API_VERSION = "2021-08-23"
32
- USER_AGENT = "strongdm-sdk-ruby/4.3.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/4.4.0"
33
33
  private_constant :DEFAULT_MAX_RETRIES, :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :API_VERSION, :USER_AGENT
34
34
 
35
35
  # Creates a new strongDM API client.
@@ -54,6 +54,9 @@ module SDM #:nodoc:
54
54
  rescue => exception
55
55
  raise Plumbing::convert_error_to_porcelain(exception)
56
56
  end
57
+ @access_requests = AccessRequests.new(@channel, self)
58
+ @access_request_events_history = AccessRequestEventsHistory.new(@channel, self)
59
+ @access_requests_history = AccessRequestsHistory.new(@channel, self)
57
60
  @account_attachments = AccountAttachments.new(@channel, self)
58
61
  @account_attachments_history = AccountAttachmentsHistory.new(@channel, self)
59
62
  @account_grants = AccountGrants.new(@channel, self)
@@ -86,6 +89,11 @@ module SDM #:nodoc:
86
89
  @roles_history = RolesHistory.new(@channel, self)
87
90
  @secret_stores = SecretStores.new(@channel, self)
88
91
  @secret_stores_history = SecretStoresHistory.new(@channel, self)
92
+ @workflows = Workflows.new(@channel, self)
93
+ @workflow_approvers_history = WorkflowApproversHistory.new(@channel, self)
94
+ @workflow_assignments_history = WorkflowAssignmentsHistory.new(@channel, self)
95
+ @workflow_roles_history = WorkflowRolesHistory.new(@channel, self)
96
+ @workflows_history = WorkflowsHistory.new(@channel, self)
89
97
  @_test_options = Hash.new
90
98
  end
91
99
 
@@ -176,6 +184,18 @@ module SDM #:nodoc:
176
184
  attr_reader :api_access_key
177
185
  # Optional timestamp at which to provide historical data
178
186
  attr_reader :snapshot_time
187
+ # AccessRequests are requests for access to a resource that may match a Workflow.
188
+ #
189
+ # See {AccessRequests}.
190
+ attr_reader :access_requests
191
+ # AccessRequestEventsHistory provides records of all changes to the state of an AccessRequest.
192
+ #
193
+ # See {AccessRequestEventsHistory}.
194
+ attr_reader :access_request_events_history
195
+ # AccessRequestsHistory provides records of all changes to the state of an AccessRequest.
196
+ #
197
+ # See {AccessRequestsHistory}.
198
+ attr_reader :access_requests_history
179
199
  # AccountAttachments assign an account to a role.
180
200
  #
181
201
  # See {AccountAttachments}.
@@ -320,6 +340,28 @@ module SDM #:nodoc:
320
340
  #
321
341
  # See {SecretStoresHistory}.
322
342
  attr_reader :secret_stores_history
343
+ # Workflows are the collection of rules that define the resources to which access can be requested,
344
+ # the users that can request that access, and the mechanism for approving those requests which can either
345
+ # but automatic approval or a set of users authorized to approve the requests.
346
+ #
347
+ # See {Workflows}.
348
+ attr_reader :workflows
349
+ # WorkflowApproversHistory provides records of all changes to the state of a WorkflowApprover.
350
+ #
351
+ # See {WorkflowApproversHistory}.
352
+ attr_reader :workflow_approvers_history
353
+ # WorkflowAssignmentsHistory provides records of all changes to the state of a WorkflowAssignment.
354
+ #
355
+ # See {WorkflowAssignmentsHistory}.
356
+ attr_reader :workflow_assignments_history
357
+ # WorkflowRolesHistory provides records of all changes to the state of a WorkflowRole
358
+ #
359
+ # See {WorkflowRolesHistory}.
360
+ attr_reader :workflow_roles_history
361
+ # WorkflowsHistory provides records of all changes to the state of a Workflow.
362
+ #
363
+ # See {WorkflowsHistory}.
364
+ attr_reader :workflows_history
323
365
  # @private
324
366
  attr_reader :_test_options
325
367
 
@@ -330,6 +372,9 @@ module SDM #:nodoc:
330
372
  private
331
373
 
332
374
  def initialize_copy(other)
375
+ @access_requests = AccessRequests.new(@channel, self)
376
+ @access_request_events_history = AccessRequestEventsHistory.new(@channel, self)
377
+ @access_requests_history = AccessRequestsHistory.new(@channel, self)
333
378
  @account_attachments = AccountAttachments.new(@channel, self)
334
379
  @account_attachments_history = AccountAttachmentsHistory.new(@channel, self)
335
380
  @account_grants = AccountGrants.new(@channel, self)
@@ -362,12 +407,18 @@ module SDM #:nodoc:
362
407
  @roles_history = RolesHistory.new(@channel, self)
363
408
  @secret_stores = SecretStores.new(@channel, self)
364
409
  @secret_stores_history = SecretStoresHistory.new(@channel, self)
410
+ @workflows = Workflows.new(@channel, self)
411
+ @workflow_approvers_history = WorkflowApproversHistory.new(@channel, self)
412
+ @workflow_assignments_history = WorkflowAssignmentsHistory.new(@channel, self)
413
+ @workflow_roles_history = WorkflowRolesHistory.new(@channel, self)
414
+ @workflows_history = WorkflowsHistory.new(@channel, self)
365
415
  end
366
416
  end
367
417
 
368
418
  # SnapshotClient exposes methods to query historical records at a provided timestamp.
369
419
  class SnapshotClient
370
420
  def initialize(client)
421
+ @access_requests = SnapshotAccessRequests.new(client.access_requests)
371
422
  @account_attachments = SnapshotAccountAttachments.new(client.account_attachments)
372
423
  @account_grants = SnapshotAccountGrants.new(client.account_grants)
373
424
  @account_permissions = SnapshotAccountPermissions.new(client.account_permissions)
@@ -384,8 +435,13 @@ module SDM #:nodoc:
384
435
  @role_resources = SnapshotRoleResources.new(client.role_resources)
385
436
  @roles = SnapshotRoles.new(client.roles)
386
437
  @secret_stores = SnapshotSecretStores.new(client.secret_stores)
438
+ @workflows = SnapshotWorkflows.new(client.workflows)
387
439
  end
388
440
 
441
+ # AccessRequests are requests for access to a resource that may match a Workflow.
442
+ #
443
+ # See {SnapshotAccessRequests}.
444
+ attr_reader :access_requests
389
445
  # AccountAttachments assign an account to a role.
390
446
  #
391
447
  # See {SnapshotAccountAttachments}.
@@ -461,5 +517,11 @@ module SDM #:nodoc:
461
517
  #
462
518
  # See {SnapshotSecretStores}.
463
519
  attr_reader :secret_stores
520
+ # Workflows are the collection of rules that define the resources to which access can be requested,
521
+ # the users that can request that access, and the mechanism for approving those requests which can either
522
+ # but automatic approval or a set of users authorized to approve the requests.
523
+ #
524
+ # See {SnapshotWorkflows}.
525
+ attr_reader :workflows
464
526
  end
465
527
  end