Class: SDM::PostgresEngine

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

Overview

PostgresEngine is currently unstable, and its API may change, or it may be removed, without a major version bump.

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.



12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
# File 'lib/models/porcelain.rb', line 12271

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.



12239
12240
12241
# File 'lib/models/porcelain.rb', line 12239

def after_read_ttl
  @after_read_ttl
end

#databaseObject

Database is the database to verify credential against.



12241
12242
12243
# File 'lib/models/porcelain.rb', line 12241

def database
  @database
end

#hostnameObject

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



12243
12244
12245
# File 'lib/models/porcelain.rb', line 12243

def hostname
  @hostname
end

#idObject

Unique identifier of the Secret Engine.



12245
12246
12247
# File 'lib/models/porcelain.rb', line 12245

def id
  @id
end

#key_rotation_interval_daysObject

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



12247
12248
12249
# File 'lib/models/porcelain.rb', line 12247

def key_rotation_interval_days
  @key_rotation_interval_days
end

#nameObject

Unique human-readable name of the Secret Engine.



12249
12250
12251
# File 'lib/models/porcelain.rb', line 12249

def name
  @name
end

#passwordObject

Password is the password to connect to the Postgres server.



12251
12252
12253
# File 'lib/models/porcelain.rb', line 12251

def password
  @password
end

#policyObject

Policy for password creation



12253
12254
12255
# File 'lib/models/porcelain.rb', line 12253

def policy
  @policy
end

#portObject

Port is the port number of the Postgres server.



12255
12256
12257
# File 'lib/models/porcelain.rb', line 12255

def port
  @port
end

#public_keyObject

Public key linked with a secret engine



12257
12258
12259
# File 'lib/models/porcelain.rb', line 12257

def public_key
  @public_key
end

#secret_store_idObject

Backing secret store identifier



12259
12260
12261
# File 'lib/models/porcelain.rb', line 12259

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



12261
12262
12263
# File 'lib/models/porcelain.rb', line 12261

def secret_store_root_path
  @secret_store_root_path
end

#tagsObject

Tags is a map of key, value pairs.



12263
12264
12265
# File 'lib/models/porcelain.rb', line 12263

def tags
  @tags
end

#tlsObject

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



12265
12266
12267
# File 'lib/models/porcelain.rb', line 12265

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.



12267
12268
12269
# File 'lib/models/porcelain.rb', line 12267

def ttl
  @ttl
end

#usernameObject

Username is the username to connect to the Postgres server.



12269
12270
12271
# File 'lib/models/porcelain.rb', line 12269

def username
  @username
end

Instance Method Details

#to_json(options = {}) ⇒ Object



12307
12308
12309
12310
12311
12312
12313
# File 'lib/models/porcelain.rb', line 12307

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