Class: SDM::Workflow

Inherits:
Object
  • Object
show all
Defined in:
lib/models/porcelain.rb

Overview

Workflows are the collection of rules that define the resources to which access can be requested, the users that can request that access, and the mechanism for approving those requests which can either but automatic approval or a set of users authorized to approve the requests.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_request_fixed_duration: nil, access_request_max_duration: nil, access_rules: nil, approval_flow_id: nil, auto_grant: nil, description: nil, enabled: nil, id: nil, name: nil, weight: nil) ⇒ Workflow

Returns a new instance of Workflow.



13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
# File 'lib/models/porcelain.rb', line 13662

def initialize(
  access_request_fixed_duration: nil,
  access_request_max_duration: nil,
  access_rules: nil,
  approval_flow_id: nil,
  auto_grant: nil,
  description: nil,
  enabled: nil,
  id: nil,
  name: nil,
  weight: nil
)
  @access_request_fixed_duration = access_request_fixed_duration == nil ? nil : access_request_fixed_duration
  @access_request_max_duration = access_request_max_duration == nil ? nil : access_request_max_duration
  @access_rules = access_rules == nil ? SDM::_porcelain_zero_value_access_rules() : access_rules
  @approval_flow_id = approval_flow_id == nil ? "" : approval_flow_id
  @auto_grant = auto_grant == nil ? false : auto_grant
  @description = description == nil ? "" : description
  @enabled = enabled == nil ? false : enabled
  @id = id == nil ? "" : id
  @name = name == nil ? "" : name
  @weight = weight == nil ? 0 : weight
end

Instance Attribute Details

#access_request_fixed_durationObject

Fixed Duration of access requests bound to this workflow. If fixed duration is provided, max duration must be empty. If neither max nor fixed duration are provided, requests that bind to this workflow will use the organization-level settings.



13637
13638
13639
# File 'lib/models/porcelain.rb', line 13637

def access_request_fixed_duration
  @access_request_fixed_duration
end

#access_request_max_durationObject

Maximum Duration of access requests bound to this workflow. If max duration is provided, fixed duration must be empty. If neither max nor fixed duration are provided, requests that bind to this workflow will use the organization-level settings.



13640
13641
13642
# File 'lib/models/porcelain.rb', line 13640

def access_request_max_duration
  @access_request_max_duration
end

#access_rulesObject

AccessRules is a list of access rules defining the resources this Workflow provides access to.



13642
13643
13644
# File 'lib/models/porcelain.rb', line 13642

def access_rules
  @access_rules
end

#approval_flow_idObject

Optional approval flow ID identifies an approval flow that linked to the workflow



13644
13645
13646
# File 'lib/models/porcelain.rb', line 13644

def approval_flow_id
  @approval_flow_id
end

#auto_grantObject

Optional auto grant setting to automatically approve requests or not, defaults to false.



13646
13647
13648
# File 'lib/models/porcelain.rb', line 13646

def auto_grant
  @auto_grant
end

#descriptionObject

Optional description of the Workflow.



13648
13649
13650
# File 'lib/models/porcelain.rb', line 13648

def description
  @description
end

#enabledObject

Optional enabled state for workflow. This setting may be overridden by the system if the workflow doesn't meet the requirements to be enabled or if other conditions prevent enabling the workflow. The requirements to enable a workflow are that the workflow must be either set up for with auto grant enabled or have one or more WorkflowApprovers created for the workflow.



13654
13655
13656
# File 'lib/models/porcelain.rb', line 13654

def enabled
  @enabled
end

#idObject

Unique identifier of the Workflow.



13656
13657
13658
# File 'lib/models/porcelain.rb', line 13656

def id
  @id
end

#nameObject

Unique human-readable name of the Workflow.



13658
13659
13660
# File 'lib/models/porcelain.rb', line 13658

def name
  @name
end

#weightObject

Optional weight for workflow to specify it's priority in matching a request.



13660
13661
13662
# File 'lib/models/porcelain.rb', line 13660

def weight
  @weight
end

Instance Method Details

#to_json(options = {}) ⇒ Object



13686
13687
13688
13689
13690
13691
13692
# File 'lib/models/porcelain.rb', line 13686

def to_json(options = {})
  hash = {}
  self.instance_variables.each do |var|
    hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
  end
  hash.to_json
end