Class: NgrokAPI::Services::SSHCredentialsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/ngrokapi/services/ssh_credentials_client.rb

Overview

SSH Credentials are SSH public keys that can be used to start SSH tunnels via the ngrok SSH tunnel gateway.

ngrok.com/docs/api#api-ssh-credentials

Constant Summary collapse

PATH =

The API path for the requests

'/ssh_credentials'
LIST_PROPERTY =

The List Property from the resulting API for list calls

'ssh_credentials'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ SSHCredentialsClient

Returns a new instance of SSHCredentialsClient.



20
21
22
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 20

def initialize(client:)
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



18
19
20
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 18

def client
  @client
end

Instance Method Details

#create(description: "", metadata: "", acl: [], public_key:, owner_id: nil, owner_email: "") ⇒ NgrokAPI::Models::SSHCredential

Create a new ssh_credential from an uploaded public SSH key. This ssh credential can be used to start new tunnels via ngrok’s SSH gateway.

ngrok.com/docs/api#api-ssh-credentials-create

Parameters:

  • description (string) (defaults to: "")

    human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.

  • metadata (string) (defaults to: "")

    arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.

  • acl (List<string>) (defaults to: [])

    optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.

  • public_key (string)

    the PEM-encoded public key of the SSH keypair that will be used to authenticate

  • owner_id (string) (defaults to: nil)

    If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 36

def create(description: "", metadata: "", acl: [], public_key:, owner_id: nil, owner_email: "")
  path = '/ssh_credentials'
  replacements = {
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:acl] = acl if acl
  data[:public_key] = public_key if public_key
  data[:owner_id] = owner_id if owner_id
  result = @client.post(path % replacements, data: data)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end

#create!(description: "", metadata: "", acl: [], public_key:, owner_id: nil, owner_email: "") ⇒ NgrokAPI::Models::SSHCredential

Create a new ssh_credential from an uploaded public SSH key. This ssh credential can be used to start new tunnels via ngrok’s SSH gateway. Throws an exception if API error.

ngrok.com/docs/api#api-ssh-credentials-create

Parameters:

  • description (string) (defaults to: "")

    human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.

  • metadata (string) (defaults to: "")

    arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.

  • acl (List<string>) (defaults to: [])

    optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.

  • public_key (string)

    the PEM-encoded public key of the SSH keypair that will be used to authenticate

  • owner_id (string) (defaults to: nil)

    If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.

Returns:



63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 63

def create!(description: "", metadata: "", acl: [], public_key:, owner_id: nil, owner_email: "")
  path = '/ssh_credentials'
  replacements = {
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:acl] = acl if acl
  data[:public_key] = public_key if public_key
  data[:owner_id] = owner_id if owner_id
  result = @client.post(path % replacements, data: data, danger: true)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end

#delete(id: "") ⇒ NgrokAPI::Models::Empty

Delete an ssh_credential by ID

ngrok.com/docs/api#api-ssh-credentials-delete

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



84
85
86
87
88
89
90
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 84

def delete(id: "")
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  @client.delete(path % replacements)
end

#delete!(id: "") ⇒ NgrokAPI::Models::Empty

Delete an ssh_credential by ID Throws an exception if API error.

ngrok.com/docs/api#api-ssh-credentials-delete

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



100
101
102
103
104
105
106
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 100

def delete!(id: "")
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  @client.delete(path % replacements, danger: true)
end

#get(id: "") ⇒ NgrokAPI::Models::SSHCredential

Get detailed information about an ssh_credential

ngrok.com/docs/api#api-ssh-credentials-get

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:



115
116
117
118
119
120
121
122
123
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 115

def get(id: "")
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end

#get!(id: "") ⇒ NgrokAPI::Models::SSHCredential

Get detailed information about an ssh_credential Throws an exception if API error.

ngrok.com/docs/api#api-ssh-credentials-get

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:



133
134
135
136
137
138
139
140
141
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 133

def get!(id: "")
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data, danger: true)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end

#list(before_id: nil, limit: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all ssh credentials on this account

ngrok.com/docs/api#api-ssh-credentials-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 152

def list(before_id: nil, limit: nil, url: nil)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::SSHCredential
  )
end

#list!(before_id: nil, limit: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all ssh credentials on this account Throws an exception if API error.

ngrok.com/docs/api#api-ssh-credentials-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 178

def list!(before_id: nil, limit: nil, url: nil)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    danger: true,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::SSHCredential,
    danger: true
  )
end

#update(id: "", description: nil, metadata: nil, acl: nil) ⇒ NgrokAPI::Models::SSHCredential

Update attributes of an ssh_credential by ID

ngrok.com/docs/api#api-ssh-credentials-update

Parameters:

  • id (string) (defaults to: "")
  • description (string) (defaults to: nil)

    human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.

  • metadata (string) (defaults to: nil)

    arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.

  • acl (List<string>) (defaults to: nil)

    optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.

Returns:



206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 206

def update(id: "", description: nil, metadata: nil, acl: nil)
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:acl] = acl if acl
  result = @client.patch(path % replacements, data: data)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end

#update!(id: "", description: nil, metadata: nil, acl: nil) ⇒ NgrokAPI::Models::SSHCredential

Update attributes of an ssh_credential by ID Throws an exception if API error.

ngrok.com/docs/api#api-ssh-credentials-update

Parameters:

  • id (string) (defaults to: "")
  • description (string) (defaults to: nil)

    human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.

  • metadata (string) (defaults to: nil)

    arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.

  • acl (List<string>) (defaults to: nil)

    optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.

Returns:



230
231
232
233
234
235
236
237
238
239
240
241
# File 'lib/ngrokapi/services/ssh_credentials_client.rb', line 230

def update!(id: "", description: nil, metadata: nil, acl: nil)
  path = '/ssh_credentials/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:acl] = acl if acl
  result = @client.patch(path % replacements, data: data, danger: true)
  NgrokAPI::Models::SSHCredential.new(client: self, attrs: result)
end