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(id: nil, name: nil, state: nil, listen_address: nil, bind_address: nil, tags: nil, gateway_filter: nil) ⇒ Gateway

Returns a new instance of Gateway.



6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
# File 'lib/models/porcelain.rb', line 6129

def initialize(
  id: nil,
  name: nil,
  state: nil,
  listen_address: nil,
  bind_address: nil,
  tags: nil,
  gateway_filter: nil
)
  if id != nil
    @id = id
  end
  if name != nil
    @name = name
  end
  if state != nil
    @state = state
  end
  if listen_address != nil
    @listen_address = listen_address
  end
  if bind_address != nil
    @bind_address = bind_address
  end
  if tags != nil
    @tags = tags
  end
  if gateway_filter != nil
    @gateway_filter = gateway_filter
  end
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>”.



6122
6123
6124
# File 'lib/models/porcelain.rb', line 6122

def bind_address
  @bind_address
end

#gateway_filterObject

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



6127
6128
6129
# File 'lib/models/porcelain.rb', line 6127

def gateway_filter
  @gateway_filter
end

#idObject

Unique identifier of the Gateway.



6112
6113
6114
# File 'lib/models/porcelain.rb', line 6112

def id
  @id
end

#listen_addressObject

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



6119
6120
6121
# File 'lib/models/porcelain.rb', line 6119

def listen_address
  @listen_address
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.



6114
6115
6116
# File 'lib/models/porcelain.rb', line 6114

def name
  @name
end

#stateObject

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



6117
6118
6119
# File 'lib/models/porcelain.rb', line 6117

def state
  @state
end

#tagsObject

Tags is a map of key, value pairs.



6124
6125
6126
# File 'lib/models/porcelain.rb', line 6124

def tags
  @tags
end

Instance Method Details

#to_json(options = {}) ⇒ Object



6161
6162
6163
6164
6165
6166
6167
# File 'lib/models/porcelain.rb', line 6161

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