Class: SDM::Query

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

Overview

A Query is a record of a single client request to a resource, such as a SQL query. Longer-running queries including long-running SSH commands and SSH, RDP, or Kubernetes interactive sessions will return two Query records with the same identifier, one record at the start of the query and a second record upon the completion of the query with additional detail.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(account_email: nil, account_first_name: nil, account_id: nil, account_last_name: nil, account_tags: nil, authzjson: nil, capture: nil, client_ip: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: nil, identity_alias_username: nil, metadata_json: nil, query_body: nil, query_category: nil, query_hash: nil, query_key: nil, record_count: nil, remote_identity_username: nil, replayable: nil, resource_id: nil, resource_name: nil, resource_tags: nil, resource_type: nil, source_ip: nil, target: nil, timestamp: nil) ⇒ Query



13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
# File 'lib/models/porcelain.rb', line 13958

def initialize(
  account_email: nil,
  account_first_name: nil,
  account_id: nil,
  account_last_name: nil,
  account_tags: nil,
  authzjson: nil,
  capture: nil,
  client_ip: nil,
  completed_at: nil,
  duration: nil,
  egress_node_id: nil,
  encrypted: nil,
  id: nil,
  identity_alias_username: nil,
  metadata_json: nil,
  query_body: nil,
  query_category: nil,
  query_hash: nil,
  query_key: nil,
  record_count: nil,
  remote_identity_username: nil,
  replayable: nil,
  resource_id: nil,
  resource_name: nil,
  resource_tags: nil,
  resource_type: nil,
  source_ip: nil,
  target: nil,
  timestamp: nil
)
  @account_email =  == nil ? "" : 
  @account_first_name =  == nil ? "" : 
  @account_id =  == nil ? "" : 
  @account_last_name =  == nil ? "" : 
  @account_tags =  == nil ? SDM::_porcelain_zero_value_tags() : 
  @authzjson = authzjson == nil ? "" : authzjson
  @capture = capture == nil ? nil : capture
  @client_ip = client_ip == nil ? "" : client_ip
  @completed_at = completed_at == nil ? nil : completed_at
  @duration = duration == nil ? nil : duration
  @egress_node_id = egress_node_id == nil ? "" : egress_node_id
  @encrypted = encrypted == nil ? false : encrypted
  @id = id == nil ? "" : id
  @identity_alias_username = identity_alias_username == nil ? "" : identity_alias_username
   =  == nil ? "" : 
  @query_body = query_body == nil ? "" : query_body
  @query_category = query_category == nil ? "" : query_category
  @query_hash = query_hash == nil ? "" : query_hash
  @query_key = query_key == nil ? "" : query_key
  @record_count = record_count == nil ? 0 : record_count
  @remote_identity_username = remote_identity_username == nil ? "" : remote_identity_username
  @replayable = replayable == nil ? false : replayable
  @resource_id = resource_id == nil ? "" : resource_id
  @resource_name = resource_name == nil ? "" : resource_name
  @resource_tags = resource_tags == nil ? SDM::_porcelain_zero_value_tags() : resource_tags
  @resource_type = resource_type == nil ? "" : resource_type
  @source_ip = source_ip == nil ? "" : source_ip
  @target = target == nil ? "" : target
  @timestamp = timestamp == nil ? nil : timestamp
end

Instance Attribute Details

#account_emailObject

The email of the account performing this query, at the time the query was executed. If the account email is later changed, that change will not be reflected via this field.



13889
13890
13891
# File 'lib/models/porcelain.rb', line 13889

def 
  @account_email
end

#account_first_nameObject

The given name of the account performing this query, at the time the query was executed. If the account is later renamed, that change will not be reflected via this field.



13892
13893
13894
# File 'lib/models/porcelain.rb', line 13892

def 
  @account_first_name
end

#account_idObject

Unique identifier of the Account that performed the Query.



13894
13895
13896
# File 'lib/models/porcelain.rb', line 13894

def 
  @account_id
end

#account_last_nameObject

The family name of the account performing this query, at the time the query was executed. If the account is later renamed, that change will not be reflected via this field.



13897
13898
13899
# File 'lib/models/porcelain.rb', line 13897

def 
  @account_last_name
end

#account_tagsObject

The tags of the account accessed, at the time the query was executed. If the account tags are later changed, that change will not be reflected via this field.



13900
13901
13902
# File 'lib/models/porcelain.rb', line 13900

def 
  @account_tags
end

#authzjsonObject

Authorization metadata associated with this query.



13902
13903
13904
# File 'lib/models/porcelain.rb', line 13902

def authzjson
  @authzjson
end

#captureObject

For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.



13905
13906
13907
# File 'lib/models/porcelain.rb', line 13905

def capture
  @capture
end

#client_ipObject

The IP address the Query was performed from, as detected at the StrongDM control plane.



13907
13908
13909
# File 'lib/models/porcelain.rb', line 13907

def client_ip
  @client_ip
end

#completed_atObject

The time at which the Query was completed. Empty if this record indicates the start of a long-running query.



13910
13911
13912
# File 'lib/models/porcelain.rb', line 13910

def completed_at
  @completed_at
end

#durationObject

The duration of the Query.



13912
13913
13914
# File 'lib/models/porcelain.rb', line 13912

def duration
  @duration
end

#egress_node_idObject

The unique ID of the node through which the Resource was accessed.



13914
13915
13916
# File 'lib/models/porcelain.rb', line 13914

def egress_node_id
  @egress_node_id
end

#encryptedObject

Indicates that the body of the Query is encrypted.



13916
13917
13918
# File 'lib/models/porcelain.rb', line 13916

def encrypted
  @encrypted
end

#idObject

Unique identifier of the Query.



13918
13919
13920
# File 'lib/models/porcelain.rb', line 13918

def id
  @id
end

#identity_alias_usernameObject

The username of the IdentityAlias used to access the Resource.



13920
13921
13922
# File 'lib/models/porcelain.rb', line 13920

def identity_alias_username
  @identity_alias_username
end

#metadata_jsonObject

Driver specific metadata associated with this query.



13922
13923
13924
# File 'lib/models/porcelain.rb', line 13922

def 
  
end

#query_bodyObject

The captured content of the Query. For queries against SSH, Kubernetes, and RDP resources, this contains a JSON representation of the QueryCapture.



13925
13926
13927
# File 'lib/models/porcelain.rb', line 13925

def query_body
  @query_body
end

#query_categoryObject

The general category of Resource against which Query was performed, e.g. "web" or "cloud".



13927
13928
13929
# File 'lib/models/porcelain.rb', line 13927

def query_category
  @query_category
end

#query_hashObject

The hash of the body of the Query.



13929
13930
13931
# File 'lib/models/porcelain.rb', line 13929

def query_hash
  @query_hash
end

#query_keyObject

The symmetric key used to encrypt the body of this Query and its replay if replayable. If the Query is encrypted, this field contains an encrypted symmetric key in base64 encoding. This key must be decrypted with the organization's private key to obtain the symmetric key needed to decrypt the body. If the Query is not encrypted, this field is empty.



13934
13935
13936
# File 'lib/models/porcelain.rb', line 13934

def query_key
  @query_key
end

#record_countObject

The number of records returned by the Query, for a database Resource.



13936
13937
13938
# File 'lib/models/porcelain.rb', line 13936

def record_count
  @record_count
end

#remote_identity_usernameObject

The username of the RemoteIdentity used to access the Resource.



13938
13939
13940
# File 'lib/models/porcelain.rb', line 13938

def remote_identity_username
  @remote_identity_username
end

#replayableObject

Indicates that the Query is replayable, e.g. for some SSH or K8s sessions.



13940
13941
13942
# File 'lib/models/porcelain.rb', line 13940

def replayable
  @replayable
end

#resource_idObject

Unique identifier of the Resource against which the Query was performed.



13942
13943
13944
# File 'lib/models/porcelain.rb', line 13942

def resource_id
  @resource_id
end

#resource_nameObject

The name of the resource accessed, at the time the query was executed. If the resource is later renamed, that change will not be reflected via this field.



13945
13946
13947
# File 'lib/models/porcelain.rb', line 13945

def resource_name
  @resource_name
end

#resource_tagsObject

The tags of the resource accessed, at the time the query was executed. If the resource tags are later changed, that change will not be reflected via this field.



13948
13949
13950
# File 'lib/models/porcelain.rb', line 13948

def resource_tags
  @resource_tags
end

#resource_typeObject

The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".



13950
13951
13952
# File 'lib/models/porcelain.rb', line 13950

def resource_type
  @resource_type
end

#source_ipObject

The IP address the Query was performed from, as detected at the ingress gateway.



13952
13953
13954
# File 'lib/models/porcelain.rb', line 13952

def source_ip
  @source_ip
end

#targetObject

The target destination of the query, in host:port format.



13954
13955
13956
# File 'lib/models/porcelain.rb', line 13954

def target
  @target
end

#timestampObject

The time at which the Query was started.



13956
13957
13958
# File 'lib/models/porcelain.rb', line 13956

def timestamp
  @timestamp
end

Instance Method Details

#to_json(options = {}) ⇒ Object



14020
14021
14022
14023
14024
14025
14026
# File 'lib/models/porcelain.rb', line 14020

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