Class: KnoxCall::Resources::Clients
- Inherits:
-
Object
- Object
- KnoxCall::Resources::Clients
- Includes:
- UnwrapsEnvelope
- Defined in:
- lib/knoxcall/resources/clients.rb
Instance Method Summary collapse
- #create(**input) ⇒ Object
-
#create_credential(client_id, kind:, label:, data: nil) ⇒ Object
For mtls "issue" mode the response carries a ONE-SHOT "reveal" (private_key_pem, ca_chain_pem) — store it now.
-
#delete(client_id) ⇒ Object
Returns => true.
-
#delete_credential(client_id, credential_id) ⇒ Object
Returns => true.
-
#each(**params, &block) ⇒ Object
Yield every calling client, walking pages transparently.
- #get(client_id) ⇒ Object
-
#initialize(client) ⇒ Clients
constructor
A new instance of Clients.
-
#list(**params) ⇒ Object
Paginated.
-
#list_credentials(client_id) ⇒ Object
Bare array — no pagination.
- #update(client_id, **input) ⇒ Object
- #update_credential(client_id, credential_id, **input) ⇒ Object
Constructor Details
#initialize(client) ⇒ Clients
Returns a new instance of Clients.
6 |
# File 'lib/knoxcall/resources/clients.rb', line 6 def initialize(client) = @client = client |
Instance Method Details
#create(**input) ⇒ Object
20 |
# File 'lib/knoxcall/resources/clients.rb', line 20 def create(**input) = unwrap(@client.request("POST", "/v1/clients", body: input)) |
#create_credential(client_id, kind:, label:, data: nil) ⇒ Object
For mtls "issue" mode the response carries a ONE-SHOT "reveal" (private_key_pem, ca_chain_pem) — store it now.
29 30 31 32 33 |
# File 'lib/knoxcall/resources/clients.rb', line 29 def create_credential(client_id, kind:, label:, data: nil) body = { kind: kind, label: label } body[:data] = data if data unwrap(@client.request("POST", "/v1/clients/#{encode(client_id)}/credentials", body: body)) end |
#delete(client_id) ⇒ Object
Returns => true.
23 |
# File 'lib/knoxcall/resources/clients.rb', line 23 def delete(client_id) = unwrap(@client.request("DELETE", "/v1/clients/#{encode(client_id)}")) |
#delete_credential(client_id, credential_id) ⇒ Object
Returns => true.
36 |
# File 'lib/knoxcall/resources/clients.rb', line 36 def delete_credential(client_id, credential_id) = unwrap(@client.request("DELETE", "/v1/clients/#{encode(client_id)}/credentials/#{encode(credential_id)}")) |
#each(**params, &block) ⇒ Object
Yield every calling client, walking pages transparently. Returns a lazy Enumerator when no block is given.
14 15 16 17 |
# File 'lib/knoxcall/resources/clients.rb', line 14 def each(**params, &block) enum = paginate(params) { |p| list(**p) } block ? enum.each(&block) : enum end |
#get(client_id) ⇒ Object
19 |
# File 'lib/knoxcall/resources/clients.rb', line 19 def get(client_id) = unwrap(@client.request("GET", "/v1/clients/#{encode(client_id)}")) |
#list(**params) ⇒ Object
Paginated. Params: page (default 1), per_page (default 20, max 100). Returns the meta envelope.
10 |
# File 'lib/knoxcall/resources/clients.rb', line 10 def list(**params) = @client.request("GET", "/v1/clients", query: params.empty? ? nil : params) |
#list_credentials(client_id) ⇒ Object
Bare array — no pagination. Secret material is redacted server-side.
26 27 28 |
# File 'lib/knoxcall/resources/clients.rb', line 26 def list_credentials(client_id) = unwrap(@client.request("GET", "/v1/clients/#{encode(client_id)}/credentials")) # For mtls "issue" mode the response carries a ONE-SHOT "reveal" # ({certificate_pem, private_key_pem, ca_chain_pem}) — store it now. |
#update(client_id, **input) ⇒ Object
21 22 |
# File 'lib/knoxcall/resources/clients.rb', line 21 def update(client_id, **input) = unwrap(@client.request("PATCH", "/v1/clients/#{encode(client_id)}", body: input)) # Returns {"deleted" => true}. |
#update_credential(client_id, credential_id, **input) ⇒ Object
34 35 |
# File 'lib/knoxcall/resources/clients.rb', line 34 def update_credential(client_id, credential_id, **input) = unwrap(@client.request("PATCH", "/v1/clients/#{encode(client_id)}/credentials/#{encode(credential_id)}", body: input)) # Returns {"deleted" => true}. |