class OCI::OperatorAccessControl::Models::AccessRequest
An Oracle operator raises access request when they need access to any infrastructure resource governed by Operator Access Control. The access request identifies the target resource and the set of operator actions. Access request handling depends upon the Operator Control that governs the target resource, and the set of operator actions listed for approval in the access request. If all of the operator actions listed in the access request are in the pre-approved list in the Operator Control that governs the target resource, then the access request is automatically approved. If not, then the access request requires explicit approval from the approver group specified by the Operator Control governing the target resource.
You can approve or reject an access request. You can also revoke the approval of an already approved access request. While creating an access request, the operator specifies the duration of access. You have the option to approve the entire duration or reduce or even increase the time duration. An operator can also request for an extension. The approval for such an extension is processed the same way the original access request was processed.
Constants
- LIFECYCLE_STATE_ENUM
- SEVERITY_ENUM
Attributes
[Required] Summary comment by the operator creating the access request. @return [String]
List of operator actions for which approval is sought by the operator user. @return [Array<String>]
The last recent Comment entered by the approver of the request. @return [String]
Specifies the type of auditing to be enabled. There are two levels of auditing: command-level and keystroke-level. By default, auditing is enabled at the command level i.e., each command issued by the operator is audited. When keystroke-level is chosen, in addition to command level logging, key strokes are also logged.
@return [Array<String>]
The comment entered by the operator while closing the request. @return [String]
The OCID of the compartment that contains the access request. @return [String]
Duration in hours for which access is sought on the target resource. @return [Integer]
Duration in hours for which extension access is sought on the target resource. @return [Integer]
[Required] The OCID of the access request. @return [String]
Whether the access request was automatically approved. @return [BOOLEAN]
The current state of the AccessRequest
. @return [String]
Additional message specific to the access request that can be specified by the approver at the time of approval. @return [String]
The OCID of the operator control governing the target resource. @return [String]
Name of the Operator control governing the target resource. @return [String]
A unique identifier associated with the operator who raised the request. This identifier can not be used directly to identify the operator. You need to provide this identifier if you would like Oracle to provide additional information about the operator action within Oracle tenancy.
@return [String]
Summary reason for which the operator is requesting access on the target resource. @return [String]
This is an automatic identifier generated by the system which is easier for human comprehension. @return [String]
[Required] The OCID of the target resource associated with the access request. The operator raises an access request to get approval to access the target resource.
@return [String]
The name of the target resource. @return [String]
Priority assigned to the access request by the operator @return [String]
System message that will be displayed to the operator at login to the target resource. @return [String]
Time when the access request was created in [RFC 3339](tools.ietf.org/html/rfc3339)timestamp format. Example: '2020-05-22T21:10:29.600Z'
@return [DateTime]
Time when the access request was last modified in [RFC 3339](tools.ietf.org/html/rfc3339)timestamp format. Example: '2020-05-22T21:10:29.600Z'
@return [DateTime]
The OCID of the user that last modified the access request. @return [String]
The OCID of the workflow associated with the access request. This is needed if you want to contact Oracle Support for a stuck access request or for an access request that encounters an internal error.
@return [Array<String>]
Public Class Methods
Attribute mapping from ruby-style variable name to JSON key.
# File lib/oci/operator_access_control/models/access_request.rb, line 174 def self.attribute_map { # rubocop:disable Style/SymbolLiteral 'id': :'id', 'request_id': :'requestId', 'access_reason_summary': :'accessReasonSummary', 'operator_id': :'operatorId', 'resource_id': :'resourceId', 'resource_name': :'resourceName', 'compartment_id': :'compartmentId', 'action_requests_list': :'actionRequestsList', 'reason': :'reason', 'severity': :'severity', 'duration': :'duration', 'extend_duration': :'extendDuration', 'workflow_id': :'workflowId', 'is_auto_approved': :'isAutoApproved', 'lifecycle_state': :'lifecycleState', 'time_of_creation': :'timeOfCreation', 'time_of_modification': :'timeOfModification', 'user_id': :'userId', 'approver_comment': :'approverComment', 'closure_comment': :'closureComment', 'opctl_id': :'opctlId', 'opctl_name': :'opctlName', 'system_message': :'systemMessage', 'opctl_additional_message': :'opctlAdditionalMessage', 'audit_type': :'auditType', 'freeform_tags': :'freeformTags', 'defined_tags': :'definedTags' # rubocop:enable Style/SymbolLiteral } end
Initializes the object @param [Hash] attributes Model attributes in the form of hash @option attributes [String] :id The value to assign to the {#id} property @option attributes [String] :request_id The value to assign to the {#request_id} property @option attributes [String] :access_reason_summary The value to assign to the {#access_reason_summary} property @option attributes [String] :operator_id The value to assign to the {#operator_id} property @option attributes [String] :resource_id The value to assign to the {#resource_id} property @option attributes [String] :resource_name The value to assign to the {#resource_name} property @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property @option attributes [Array<String>] :action_requests_list The value to assign to the {#action_requests_list} property @option attributes [String] :reason The value to assign to the {#reason} property @option attributes [String] :severity The value to assign to the {#severity} property @option attributes [Integer] :duration The value to assign to the {#duration} property @option attributes [Integer] :extend_duration The value to assign to the {#extend_duration} property @option attributes [Array<String>] :workflow_id The value to assign to the {#workflow_id} property @option attributes [BOOLEAN] :is_auto_approved The value to assign to the {#is_auto_approved} property @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property @option attributes [DateTime] :time_of_creation The value to assign to the {#time_of_creation} property @option attributes [DateTime] :time_of_modification The value to assign to the {#time_of_modification} property @option attributes [String] :user_id The value to assign to the {#user_id} property @option attributes [String] :approver_comment The value to assign to the {#approver_comment} property @option attributes [String] :closure_comment The value to assign to the {#closure_comment} property @option attributes [String] :opctl_id The value to assign to the {#opctl_id} property @option attributes [String] :opctl_name The value to assign to the {#opctl_name} property @option attributes [String] :system_message The value to assign to the {#system_message} property @option attributes [String] :opctl_additional_message The value to assign to the {#opctl_additional_message} property @option attributes [Array<String>] :audit_type The value to assign to the {#audit_type} property @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
# File lib/oci/operator_access_control/models/access_request.rb, line 276 def initialize(attributes = {}) return unless attributes.is_a?(Hash) # convert string to symbol for hash key attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v } self.id = attributes[:'id'] if attributes[:'id'] self.request_id = attributes[:'requestId'] if attributes[:'requestId'] raise 'You cannot provide both :requestId and :request_id' if attributes.key?(:'requestId') && attributes.key?(:'request_id') self.request_id = attributes[:'request_id'] if attributes[:'request_id'] self.access_reason_summary = attributes[:'accessReasonSummary'] if attributes[:'accessReasonSummary'] raise 'You cannot provide both :accessReasonSummary and :access_reason_summary' if attributes.key?(:'accessReasonSummary') && attributes.key?(:'access_reason_summary') self.access_reason_summary = attributes[:'access_reason_summary'] if attributes[:'access_reason_summary'] self.operator_id = attributes[:'operatorId'] if attributes[:'operatorId'] raise 'You cannot provide both :operatorId and :operator_id' if attributes.key?(:'operatorId') && attributes.key?(:'operator_id') self.operator_id = attributes[:'operator_id'] if attributes[:'operator_id'] self.resource_id = attributes[:'resourceId'] if attributes[:'resourceId'] raise 'You cannot provide both :resourceId and :resource_id' if attributes.key?(:'resourceId') && attributes.key?(:'resource_id') self.resource_id = attributes[:'resource_id'] if attributes[:'resource_id'] self.resource_name = attributes[:'resourceName'] if attributes[:'resourceName'] raise 'You cannot provide both :resourceName and :resource_name' if attributes.key?(:'resourceName') && attributes.key?(:'resource_name') self.resource_name = attributes[:'resource_name'] if attributes[:'resource_name'] self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId'] raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id') self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id'] self.action_requests_list = attributes[:'actionRequestsList'] if attributes[:'actionRequestsList'] raise 'You cannot provide both :actionRequestsList and :action_requests_list' if attributes.key?(:'actionRequestsList') && attributes.key?(:'action_requests_list') self.action_requests_list = attributes[:'action_requests_list'] if attributes[:'action_requests_list'] self.reason = attributes[:'reason'] if attributes[:'reason'] self.severity = attributes[:'severity'] if attributes[:'severity'] self.duration = attributes[:'duration'] if attributes[:'duration'] self.extend_duration = attributes[:'extendDuration'] if attributes[:'extendDuration'] raise 'You cannot provide both :extendDuration and :extend_duration' if attributes.key?(:'extendDuration') && attributes.key?(:'extend_duration') self.extend_duration = attributes[:'extend_duration'] if attributes[:'extend_duration'] self.workflow_id = attributes[:'workflowId'] if attributes[:'workflowId'] raise 'You cannot provide both :workflowId and :workflow_id' if attributes.key?(:'workflowId') && attributes.key?(:'workflow_id') self.workflow_id = attributes[:'workflow_id'] if attributes[:'workflow_id'] self.is_auto_approved = attributes[:'isAutoApproved'] unless attributes[:'isAutoApproved'].nil? raise 'You cannot provide both :isAutoApproved and :is_auto_approved' if attributes.key?(:'isAutoApproved') && attributes.key?(:'is_auto_approved') self.is_auto_approved = attributes[:'is_auto_approved'] unless attributes[:'is_auto_approved'].nil? self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState'] raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state') self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state'] self.time_of_creation = attributes[:'timeOfCreation'] if attributes[:'timeOfCreation'] raise 'You cannot provide both :timeOfCreation and :time_of_creation' if attributes.key?(:'timeOfCreation') && attributes.key?(:'time_of_creation') self.time_of_creation = attributes[:'time_of_creation'] if attributes[:'time_of_creation'] self.time_of_modification = attributes[:'timeOfModification'] if attributes[:'timeOfModification'] raise 'You cannot provide both :timeOfModification and :time_of_modification' if attributes.key?(:'timeOfModification') && attributes.key?(:'time_of_modification') self.time_of_modification = attributes[:'time_of_modification'] if attributes[:'time_of_modification'] self.user_id = attributes[:'userId'] if attributes[:'userId'] raise 'You cannot provide both :userId and :user_id' if attributes.key?(:'userId') && attributes.key?(:'user_id') self.user_id = attributes[:'user_id'] if attributes[:'user_id'] self.approver_comment = attributes[:'approverComment'] if attributes[:'approverComment'] raise 'You cannot provide both :approverComment and :approver_comment' if attributes.key?(:'approverComment') && attributes.key?(:'approver_comment') self.approver_comment = attributes[:'approver_comment'] if attributes[:'approver_comment'] self.closure_comment = attributes[:'closureComment'] if attributes[:'closureComment'] raise 'You cannot provide both :closureComment and :closure_comment' if attributes.key?(:'closureComment') && attributes.key?(:'closure_comment') self.closure_comment = attributes[:'closure_comment'] if attributes[:'closure_comment'] self.opctl_id = attributes[:'opctlId'] if attributes[:'opctlId'] raise 'You cannot provide both :opctlId and :opctl_id' if attributes.key?(:'opctlId') && attributes.key?(:'opctl_id') self.opctl_id = attributes[:'opctl_id'] if attributes[:'opctl_id'] self.opctl_name = attributes[:'opctlName'] if attributes[:'opctlName'] raise 'You cannot provide both :opctlName and :opctl_name' if attributes.key?(:'opctlName') && attributes.key?(:'opctl_name') self.opctl_name = attributes[:'opctl_name'] if attributes[:'opctl_name'] self.system_message = attributes[:'systemMessage'] if attributes[:'systemMessage'] raise 'You cannot provide both :systemMessage and :system_message' if attributes.key?(:'systemMessage') && attributes.key?(:'system_message') self.system_message = attributes[:'system_message'] if attributes[:'system_message'] self.opctl_additional_message = attributes[:'opctlAdditionalMessage'] if attributes[:'opctlAdditionalMessage'] raise 'You cannot provide both :opctlAdditionalMessage and :opctl_additional_message' if attributes.key?(:'opctlAdditionalMessage') && attributes.key?(:'opctl_additional_message') self.opctl_additional_message = attributes[:'opctl_additional_message'] if attributes[:'opctl_additional_message'] self.audit_type = attributes[:'auditType'] if attributes[:'auditType'] raise 'You cannot provide both :auditType and :audit_type' if attributes.key?(:'auditType') && attributes.key?(:'audit_type') self.audit_type = attributes[:'audit_type'] if attributes[:'audit_type'] self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags'] raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags') self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags'] self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags'] raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags') self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags'] end
Attribute type mapping.
# File lib/oci/operator_access_control/models/access_request.rb, line 209 def self.swagger_types { # rubocop:disable Style/SymbolLiteral 'id': :'String', 'request_id': :'String', 'access_reason_summary': :'String', 'operator_id': :'String', 'resource_id': :'String', 'resource_name': :'String', 'compartment_id': :'String', 'action_requests_list': :'Array<String>', 'reason': :'String', 'severity': :'String', 'duration': :'Integer', 'extend_duration': :'Integer', 'workflow_id': :'Array<String>', 'is_auto_approved': :'BOOLEAN', 'lifecycle_state': :'String', 'time_of_creation': :'DateTime', 'time_of_modification': :'DateTime', 'user_id': :'String', 'approver_comment': :'String', 'closure_comment': :'String', 'opctl_id': :'String', 'opctl_name': :'String', 'system_message': :'String', 'opctl_additional_message': :'String', 'audit_type': :'Array<String>', 'freeform_tags': :'Hash<String, String>', 'defined_tags': :'Hash<String, Hash<String, Object>>' # rubocop:enable Style/SymbolLiteral } end
Public Instance Methods
Checks equality by comparing each attribute. @param [Object] other the other object to be compared
# File lib/oci/operator_access_control/models/access_request.rb, line 462 def ==(other) return true if equal?(other) self.class == other.class && id == other.id && request_id == other.request_id && access_reason_summary == other.access_reason_summary && operator_id == other.operator_id && resource_id == other.resource_id && resource_name == other.resource_name && compartment_id == other.compartment_id && action_requests_list == other.action_requests_list && reason == other.reason && severity == other.severity && duration == other.duration && extend_duration == other.extend_duration && workflow_id == other.workflow_id && is_auto_approved == other.is_auto_approved && lifecycle_state == other.lifecycle_state && time_of_creation == other.time_of_creation && time_of_modification == other.time_of_modification && user_id == other.user_id && approver_comment == other.approver_comment && closure_comment == other.closure_comment && opctl_id == other.opctl_id && opctl_name == other.opctl_name && system_message == other.system_message && opctl_additional_message == other.opctl_additional_message && audit_type == other.audit_type && freeform_tags == other.freeform_tags && defined_tags == other.defined_tags end
Builds the object from hash @param [Hash] attributes Model attributes in the form of hash @return [Object] Returns the model itself
# File lib/oci/operator_access_control/models/access_request.rb, line 518 def build_from_hash(attributes) return nil unless attributes.is_a?(Hash) self.class.swagger_types.each_pair do |key, type| if type =~ /^Array<(.*)>/i # check to ensure the input is an array given that the the attribute # is documented as an array but the input is not if attributes[self.class.attribute_map[key]].is_a?(Array) public_method("#{key}=").call( attributes[self.class.attribute_map[key]] .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) } ) end elsif !attributes[self.class.attribute_map[key]].nil? public_method("#{key}=").call( OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]) ) end # or else data not found in attributes(hash), not an issue as the data can be optional end self end
@see the `==` method @param [Object] other the other object to be compared
# File lib/oci/operator_access_control/models/access_request.rb, line 498 def eql?(other) self == other end
Calculates hash code according to all attributes. @return [Fixnum] Hash code
# File lib/oci/operator_access_control/models/access_request.rb, line 507 def hash [id, request_id, access_reason_summary, operator_id, resource_id, resource_name, compartment_id, action_requests_list, reason, severity, duration, extend_duration, workflow_id, is_auto_approved, lifecycle_state, time_of_creation, time_of_modification, user_id, approver_comment, closure_comment, opctl_id, opctl_name, system_message, opctl_additional_message, audit_type, freeform_tags, defined_tags].hash end
Custom attribute writer method checking allowed values (enum). @param [Object] lifecycle_state
Object
to be assigned
# File lib/oci/operator_access_control/models/access_request.rb, line 446 def lifecycle_state=(lifecycle_state) # rubocop:disable Style/ConditionalAssignment if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state) OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE else @lifecycle_state = lifecycle_state end # rubocop:enable Style/ConditionalAssignment end
Custom attribute writer method checking allowed values (enum). @param [Object] severity Object
to be assigned
# File lib/oci/operator_access_control/models/access_request.rb, line 433 def severity=(severity) # rubocop:disable Style/ConditionalAssignment if severity && !SEVERITY_ENUM.include?(severity) OCI.logger.debug("Unknown value for 'severity' [" + severity + "]. Mapping to 'SEVERITY_UNKNOWN_ENUM_VALUE'") if OCI.logger @severity = SEVERITY_UNKNOWN_ENUM_VALUE else @severity = severity end # rubocop:enable Style/ConditionalAssignment end
Returns the object in the form of hash @return [Hash] Returns the object in the form of hash
# File lib/oci/operator_access_control/models/access_request.rb, line 551 def to_hash hash = {} self.class.attribute_map.each_pair do |attr, param| value = public_method(attr).call next if value.nil? && !instance_variable_defined?("@#{attr}") hash[param] = _to_hash(value) end hash end
Returns the string representation of the object @return [String] String presentation of the object
# File lib/oci/operator_access_control/models/access_request.rb, line 545 def to_s to_hash.to_s end
Private Instance Methods
Outputs non-array value in the form of hash For object, use to_hash. Otherwise, just return the value @param [Object] value Any valid value @return [Hash] Returns the value in the form of hash
# File lib/oci/operator_access_control/models/access_request.rb, line 568 def _to_hash(value) if value.is_a?(Array) value.compact.map { |v| _to_hash(v) } elsif value.is_a?(Hash) {}.tap do |hash| value.each { |k, v| hash[k] = _to_hash(v) } end elsif value.respond_to? :to_hash value.to_hash else value end end