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.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-e53248831c9814d011695b30ef6c9a23ab4fbf61.idx → pack-9c459884b97e0a33b1e10aa61914fa82820fa985.idx} +0 -0
- data/.git/objects/pack/{pack-e53248831c9814d011695b30ef6c9a23ab4fbf61.pack → pack-9c459884b97e0a33b1e10aa61914fa82820fa985.pack} +0 -0
- data/.git/packed-refs +3 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/access_request_events_history_pb.rb +48 -0
- data/lib/grpc/access_request_events_history_services_pb.rb +37 -0
- data/lib/grpc/access_requests_history_pb.rb +48 -0
- data/lib/grpc/access_requests_history_services_pb.rb +37 -0
- data/lib/grpc/access_requests_pb.rb +60 -0
- data/lib/grpc/access_requests_services_pb.rb +37 -0
- data/lib/grpc/plumbing.rb +496 -0
- data/lib/grpc/workflow_approvers_history_pb.rb +48 -0
- data/lib/grpc/workflow_approvers_history_services_pb.rb +37 -0
- data/lib/grpc/workflow_assignments_history_pb.rb +48 -0
- data/lib/grpc/workflow_assignments_history_services_pb.rb +37 -0
- data/lib/grpc/workflow_roles_history_pb.rb +48 -0
- data/lib/grpc/workflow_roles_history_services_pb.rb +37 -0
- data/lib/grpc/workflows_history_pb.rb +48 -0
- data/lib/grpc/workflows_history_services_pb.rb +37 -0
- data/lib/grpc/workflows_pb.rb +64 -0
- data/lib/grpc/workflows_services_pb.rb +39 -0
- data/lib/models/porcelain.rb +424 -0
- data/lib/strongdm.rb +63 -1
- data/lib/svc.rb +496 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +20 -4
    
        data/lib/models/porcelain.rb
    CHANGED
    
    | @@ -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. | 
| 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
         |