Class: SDM::Gateway

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

Overview

Gateway represents a StrongDM CLI installation running in gateway mode.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bind_address: nil, device: nil, gateway_filter: nil, id: nil, listen_address: nil, location: nil, maintenance_windows: nil, name: nil, state: nil, tags: nil, version: nil) ⇒ Gateway

Returns a new instance of Gateway.



7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
# File 'lib/models/porcelain.rb', line 7304

def initialize(
  bind_address: nil,
  device: nil,
  gateway_filter: nil,
  id: nil,
  listen_address: nil,
  location: nil,
  maintenance_windows: nil,
  name: nil,
  state: nil,
  tags: nil,
  version: nil
)
  @bind_address = bind_address == nil ? "" : bind_address
  @device = device == nil ? "" : device
  @gateway_filter = gateway_filter == nil ? "" : gateway_filter
  @id = id == nil ? "" : id
  @listen_address = listen_address == nil ? "" : listen_address
  @location = location == nil ? "" : location
  @maintenance_windows = maintenance_windows == nil ? [] : maintenance_windows
  @name = name == nil ? "" : name
  @state = state == nil ? "" : state
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
  @version = version == nil ? "" : version
end

Instance Attribute Details

#bind_addressObject

The hostname/port tuple which the gateway daemon will bind to. If not provided on create, set to "0.0.0.0:listen_address_port".



7266
7267
7268
# File 'lib/models/porcelain.rb', line 7266

def bind_address
  @bind_address
end

#deviceObject

Device is a read only device name uploaded by the gateway process when it comes online.



7269
7270
7271
# File 'lib/models/porcelain.rb', line 7269

def device
  @device
end

#gateway_filterObject

GatewayFilter can be used to restrict the peering between relays and gateways. Deprecated.



7272
7273
7274
# File 'lib/models/porcelain.rb', line 7272

def gateway_filter
  @gateway_filter
end

#idObject

Unique identifier of the Gateway.



7274
7275
7276
# File 'lib/models/porcelain.rb', line 7274

def id
  @id
end

#listen_addressObject

The public hostname/port tuple at which the gateway will be accessible to clients.



7276
7277
7278
# File 'lib/models/porcelain.rb', line 7276

def listen_address
  @listen_address
end

#locationObject

Location is a read only network location uploaded by the gateway process when it comes online.



7279
7280
7281
# File 'lib/models/porcelain.rb', line 7279

def location
  @location
end

#maintenance_windowsObject

Maintenance Windows define when this node is allowed to restart. If a node is requested to restart, it will check each window to determine if any of them permit it to restart, and if any do, it will. This check is repeated per window until the restart is successfully completed.

If not set here, may be set on the command line or via an environment variable on the process itself; any server setting will take precedence over local settings. This setting is ineffective for nodes below version 38.44.0.

If this setting is not applied via this remote configuration or via local configuration, the default setting is used: always allow restarts if serving no connections, and allow a restart even if serving connections between 7-8 UTC, any day.



7292
7293
7294
# File 'lib/models/porcelain.rb', line 7292

def maintenance_windows
  @maintenance_windows
end

#nameObject

Unique human-readable name of the Gateway. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.



7294
7295
7296
# File 'lib/models/porcelain.rb', line 7294

def name
  @name
end

#stateObject

The current state of the gateway. One of: "new", "verifying_restart", "restarting", "started", "stopped", "dead", "unknown"



7297
7298
7299
# File 'lib/models/porcelain.rb', line 7297

def state
  @state
end

#tagsObject

Tags is a map of key, value pairs.



7299
7300
7301
# File 'lib/models/porcelain.rb', line 7299

def tags
  @tags
end

#versionObject

Version is a read only sdm binary version uploaded by the gateway process when it comes online.



7302
7303
7304
# File 'lib/models/porcelain.rb', line 7302

def version
  @version
end

Instance Method Details

#to_json(options = {}) ⇒ Object



7330
7331
7332
7333
7334
7335
7336
# File 'lib/models/porcelain.rb', line 7330

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