Class: SDM::PostgresEngine

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(after_read_ttl: nil, database: nil, hostname: nil, id: nil, key_rotation_interval_days: nil, name: nil, password: nil, policy: nil, port: nil, public_key: nil, secret_store_id: nil, secret_store_root_path: nil, tags: nil, tls: nil, ttl: nil, username: nil) ⇒ PostgresEngine

Returns a new instance of PostgresEngine.



13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
# File 'lib/models/porcelain.rb', line 13061

def initialize(
  after_read_ttl: nil,
  database: nil,
  hostname: nil,
  id: nil,
  key_rotation_interval_days: nil,
  name: nil,
  password: nil,
  policy: nil,
  port: nil,
  public_key: nil,
  secret_store_id: nil,
  secret_store_root_path: nil,
  tags: nil,
  tls: nil,
  ttl: nil,
  username: nil
)
  @after_read_ttl = after_read_ttl == nil ? nil : after_read_ttl
  @database = database == nil ? "" : database
  @hostname = hostname == nil ? "" : hostname
  @id = id == nil ? "" : id
  @key_rotation_interval_days = key_rotation_interval_days == nil ? 0 : key_rotation_interval_days
  @name = name == nil ? "" : name
  @password = password == nil ? "" : password
  @policy = policy == nil ? nil : policy
  @port = port == nil ? 0 : port
  @public_key = public_key == nil ? "" : public_key
  @secret_store_id = secret_store_id == nil ? "" : secret_store_id
  @secret_store_root_path = secret_store_root_path == nil ? "" : secret_store_root_path
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
  @tls = tls == nil ? false : tls
  @ttl = ttl == nil ? nil : ttl
  @username = username == nil ? "" : username
end

Instance Attribute Details

#after_read_ttlObject

The default time-to-live duration of the password after it's read. Once the ttl has passed, a password will be rotated.



13029
13030
13031
# File 'lib/models/porcelain.rb', line 13029

def after_read_ttl
  @after_read_ttl
end

#databaseObject

Database is the database to verify credential against.



13031
13032
13033
# File 'lib/models/porcelain.rb', line 13031

def database
  @database
end

#hostnameObject

Hostname is the hostname or IP address of the Postgres server.



13033
13034
13035
# File 'lib/models/porcelain.rb', line 13033

def hostname
  @hostname
end

#idObject

Unique identifier of the Secret Engine.



13035
13036
13037
# File 'lib/models/porcelain.rb', line 13035

def id
  @id
end

#key_rotation_interval_daysObject

An interval of public/private key rotation for secret engine in days



13037
13038
13039
# File 'lib/models/porcelain.rb', line 13037

def key_rotation_interval_days
  @key_rotation_interval_days
end

#nameObject

Unique human-readable name of the Secret Engine.



13039
13040
13041
# File 'lib/models/porcelain.rb', line 13039

def name
  @name
end

#passwordObject

Password is the password to connect to the Postgres server.



13041
13042
13043
# File 'lib/models/porcelain.rb', line 13041

def password
  @password
end

#policyObject

Policy for password creation



13043
13044
13045
# File 'lib/models/porcelain.rb', line 13043

def policy
  @policy
end

#portObject

Port is the port number of the Postgres server.



13045
13046
13047
# File 'lib/models/porcelain.rb', line 13045

def port
  @port
end

#public_keyObject

Public key linked with a secret engine



13047
13048
13049
# File 'lib/models/porcelain.rb', line 13047

def public_key
  @public_key
end

#secret_store_idObject

Backing secret store identifier



13049
13050
13051
# File 'lib/models/porcelain.rb', line 13049

def secret_store_id
  @secret_store_id
end

#secret_store_root_pathObject

Backing Secret Store root path where managed secrets are going to be stored



13051
13052
13053
# File 'lib/models/porcelain.rb', line 13051

def secret_store_root_path
  @secret_store_root_path
end

#tagsObject

Tags is a map of key, value pairs.



13053
13054
13055
# File 'lib/models/porcelain.rb', line 13053

def tags
  @tags
end

#tlsObject

TLS enables TLS/SSL when connecting to the Postgres server.



13055
13056
13057
# File 'lib/models/porcelain.rb', line 13055

def tls
  @tls
end

#ttlObject

The default password time-to-live duration. Once the ttl has passed, a password will be rotated the next time it's requested.



13057
13058
13059
# File 'lib/models/porcelain.rb', line 13057

def ttl
  @ttl
end

#usernameObject

Username is the username to connect to the Postgres server.



13059
13060
13061
# File 'lib/models/porcelain.rb', line 13059

def username
  @username
end

Instance Method Details

#to_json(options = {}) ⇒ Object



13097
13098
13099
13100
13101
13102
13103
# File 'lib/models/porcelain.rb', line 13097

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