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.



4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
# File 'lib/models/porcelain.rb', line 4063

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".



4025
4026
4027
# File 'lib/models/porcelain.rb', line 4025

def bind_address
  @bind_address
end

#deviceObject

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



4028
4029
4030
# File 'lib/models/porcelain.rb', line 4028

def device
  @device
end

#gateway_filterObject

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



4031
4032
4033
# File 'lib/models/porcelain.rb', line 4031

def gateway_filter
  @gateway_filter
end

#idObject

Unique identifier of the Gateway.



4033
4034
4035
# File 'lib/models/porcelain.rb', line 4033

def id
  @id
end

#listen_addressObject

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



4035
4036
4037
# File 'lib/models/porcelain.rb', line 4035

def listen_address
  @listen_address
end

#locationObject

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



4038
4039
4040
# File 'lib/models/porcelain.rb', line 4038

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.



4051
4052
4053
# File 'lib/models/porcelain.rb', line 4051

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.



4053
4054
4055
# File 'lib/models/porcelain.rb', line 4053

def name
  @name
end

#stateObject

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



4056
4057
4058
# File 'lib/models/porcelain.rb', line 4056

def state
  @state
end

#tagsObject

Tags is a map of key, value pairs.



4058
4059
4060
# File 'lib/models/porcelain.rb', line 4058

def tags
  @tags
end

#versionObject

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



4061
4062
4063
# File 'lib/models/porcelain.rb', line 4061

def version
  @version
end

Instance Method Details

#to_json(options = {}) ⇒ Object



4089
4090
4091
4092
4093
4094
4095
# File 'lib/models/porcelain.rb', line 4089

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