strongdm 4.3.0 → 4.4.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 (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