Class: Infrawrench::SshKeysNamespace
- Inherits:
-
Object
- Object
- Infrawrench::SshKeysNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.ssh_keys
Instance Method Summary collapse
-
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Generate a new Ed25519 keypair (private key returned once).
-
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete an SSH key (owner only).
-
#import(body:, org_id: nil, request_options: nil) ⇒ Hash
Import an existing public key.
-
#initialize(transport) ⇒ SshKeysNamespace
constructor
private
A new instance of SshKeysNamespace.
-
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List org SSH keys.
-
#sign(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Sign an SSH auth challenge with a cloud-held key (the cloud as an SSH agent).
Constructor Details
#initialize(transport) ⇒ SshKeysNamespace
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of SshKeysNamespace.
15101 15102 15103 |
# File 'lib/infrawrench/client.rb', line 15101 def initialize(transport) @transport = transport end |
Instance Method Details
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Generate a new Ed25519 keypair (private key returned once)
Requires permission: ssh-keys:write.
POST /api/org/orgId/ssh-keys
Raises on 400: Bad request
15119 15120 15121 15122 15123 15124 15125 15126 15127 |
# File 'lib/infrawrench/client.rb', line 15119 def create(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/ssh-keys", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete an SSH key (owner only)
Requires permission: ssh-keys:write.
DELETE /api/org/orgId/ssh-keys/id
15141 15142 15143 15144 15145 15146 15147 15148 |
# File 'lib/infrawrench/client.rb', line 15141 def delete(id:, org_id: nil, request_options: nil) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/ssh-keys/{id}", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#import(body:, org_id: nil, request_options: nil) ⇒ Hash
Import an existing public key
Requires permission: ssh-keys:write.
POST /api/org/orgId/ssh-keys/import
Raises on 400: Bad request
15164 15165 15166 15167 15168 15169 15170 15171 15172 |
# File 'lib/infrawrench/client.rb', line 15164 def import(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/ssh-keys/import", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List org SSH keys
Requires permission: ssh-keys:read.
GET /api/org/orgId/ssh-keys
15186 15187 15188 15189 15190 15191 15192 15193 |
# File 'lib/infrawrench/client.rb', line 15186 def list(org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/ssh-keys", path_params: { "orgId" => org_id }, request_options: ) end |
#sign(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Sign an SSH auth challenge with a cloud-held key (the cloud as an SSH agent)
Signs one publickey-authentication challenge with a server-generated org
key whose private half never leaves Infrawrench Cloud. Requires the
resources:execute permission — producing an auth signature is the same
authority as opening a shell. Imported keys cannot sign (only their public
half is stored). Every call is audited.
POST /api/org/orgId/ssh-keys/id/sign
Raises on 400: Bad request
Raises on 404: Not found
15218 15219 15220 15221 15222 15223 15224 15225 15226 |
# File 'lib/infrawrench/client.rb', line 15218 def sign(id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/ssh-keys/{id}/sign", path_params: { "orgId" => org_id, "id" => id }, body: body, request_options: ) end |