Class: Cadenya::Client
- Inherits:
-
Object
- Object
- Cadenya::Client
- Defined in:
- lib/cadenya/client.rb
Overview
The Cadenya API client. Resource groups are readers; unset options are read from the environment.
Instance Attribute Summary collapse
-
#accounts ⇒ Object
readonly
Returns the value of attribute accounts.
-
#agents ⇒ Object
readonly
Returns the value of attribute agents.
-
#ai_provider_keys ⇒ Object
readonly
Returns the value of attribute ai_provider_keys.
-
#api_keys ⇒ Object
readonly
Returns the value of attribute api_keys.
-
#memory_layers ⇒ Object
readonly
Returns the value of attribute memory_layers.
-
#models ⇒ Object
readonly
Returns the value of attribute models.
-
#objectives ⇒ Object
readonly
Returns the value of attribute objectives.
-
#profiles ⇒ Object
readonly
Returns the value of attribute profiles.
-
#tenants ⇒ Object
readonly
Returns the value of attribute tenants.
-
#tool_search ⇒ Object
readonly
Returns the value of attribute tool_search.
-
#tool_sets ⇒ Object
readonly
Returns the value of attribute tool_sets.
-
#uploads ⇒ Object
readonly
Returns the value of attribute uploads.
-
#widget_sessions ⇒ Object
readonly
Returns the value of attribute widget_sessions.
-
#widgets ⇒ Object
readonly
Returns the value of attribute widgets.
-
#workspace_admin ⇒ Object
readonly
Returns the value of attribute workspace_admin.
-
#workspace_secrets ⇒ Object
readonly
Returns the value of attribute workspace_secrets.
-
#workspaces ⇒ Object
readonly
Returns the value of attribute workspaces.
Instance Method Summary collapse
-
#initialize(api_key: nil, base_url: nil, webhook_secret: nil, max_retries: 0, connection: nil, stream_transport: nil, workspace_id: nil) ⇒ Client
constructor
A new instance of Client.
-
#unwrap_webhook(payload, headers) ⇒ Object
Verify a Standard Webhooks delivery and return the typed payload.
Constructor Details
#initialize(api_key: nil, base_url: nil, webhook_secret: nil, max_retries: 0, connection: nil, stream_transport: nil, workspace_id: nil) ⇒ Client
Returns a new instance of Client.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/cadenya/client.rb', line 13 def initialize(api_key: nil, base_url: nil, webhook_secret: nil, max_retries: 0, connection: nil, stream_transport: nil, workspace_id: nil) if !api_key.nil? && api_key.to_s.strip.empty? raise ArgumentError, "api_key must not be blank" end if !base_url.nil? && base_url.to_s.strip.empty? raise ArgumentError, "base_url must not be blank" end if !webhook_secret.nil? && webhook_secret.to_s.strip.empty? raise ArgumentError, "webhook_secret must not be blank" end if !workspace_id.nil? && workspace_id.to_s.strip.empty? raise ArgumentError, "workspace_id must not be blank" end api_key = (api_key || ENV.fetch("CADENYA_API_KEY", "")).to_s.strip if api_key.empty? raise ArgumentError, "missing API key: pass api_key: or set CADENYA_API_KEY" end base_url = (base_url || ENV.fetch("CADENYA_BASE_URL", "")).to_s.strip base_url = "https://api.cadenya.com" if base_url.empty? @webhook_secret = (webhook_secret || ENV.fetch("CADENYA_WEBHOOK_SECRET", "")).to_s.strip defaults = {} defaults["workspaceId"] = (workspace_id || ENV.fetch("CADENYA_WORKSPACE_ID", "")).to_s.strip core = Core.new( base_url: base_url, auth_header: ["Authorization", "Bearer #{api_key}"], max_retries: max_retries, defaults: defaults, user_agent: "cadenya-ruby/1.0.0 (api 1.0)", connection: connection, stream_transport: stream_transport ) @accounts = Resources::Accounts.new(core) @api_keys = Resources::ApiKeys.new(core) @workspace_admin = Resources::WorkspaceAdmin.new(core) @profiles = Resources::Profiles.new(core) @workspaces = Resources::Workspaces.new(core) @agents = Resources::Agents.new(core) @ai_provider_keys = Resources::AiProviderKeys.new(core) @memory_layers = Resources::MemoryLayers.new(core) @models = Resources::Models.new(core) @objectives = Resources::Objectives.new(core) @tool_search = Resources::ToolSearch.new(core) @tenants = Resources::Tenants.new(core) @tool_sets = Resources::ToolSets.new(core) @uploads = Resources::Uploads.new(core) @widget_sessions = Resources::WidgetSessions.new(core) @widgets = Resources::Widgets.new(core) @workspace_secrets = Resources::WorkspaceSecrets.new(core) end |
Instance Attribute Details
#accounts ⇒ Object (readonly)
Returns the value of attribute accounts.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def accounts @accounts end |
#agents ⇒ Object (readonly)
Returns the value of attribute agents.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def agents @agents end |
#ai_provider_keys ⇒ Object (readonly)
Returns the value of attribute ai_provider_keys.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def ai_provider_keys @ai_provider_keys end |
#api_keys ⇒ Object (readonly)
Returns the value of attribute api_keys.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def api_keys @api_keys end |
#memory_layers ⇒ Object (readonly)
Returns the value of attribute memory_layers.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def memory_layers @memory_layers end |
#models ⇒ Object (readonly)
Returns the value of attribute models.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def models @models end |
#objectives ⇒ Object (readonly)
Returns the value of attribute objectives.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def objectives @objectives end |
#profiles ⇒ Object (readonly)
Returns the value of attribute profiles.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def profiles @profiles end |
#tenants ⇒ Object (readonly)
Returns the value of attribute tenants.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def tenants @tenants end |
#tool_search ⇒ Object (readonly)
Returns the value of attribute tool_search.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def tool_search @tool_search end |
#tool_sets ⇒ Object (readonly)
Returns the value of attribute tool_sets.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def tool_sets @tool_sets end |
#uploads ⇒ Object (readonly)
Returns the value of attribute uploads.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def uploads @uploads end |
#widget_sessions ⇒ Object (readonly)
Returns the value of attribute widget_sessions.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def @widget_sessions end |
#widgets ⇒ Object (readonly)
Returns the value of attribute widgets.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def @widgets end |
#workspace_admin ⇒ Object (readonly)
Returns the value of attribute workspace_admin.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def workspace_admin @workspace_admin end |
#workspace_secrets ⇒ Object (readonly)
Returns the value of attribute workspace_secrets.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def workspace_secrets @workspace_secrets end |
#workspaces ⇒ Object (readonly)
Returns the value of attribute workspaces.
11 12 13 |
# File 'lib/cadenya/client.rb', line 11 def workspaces @workspaces end |
Instance Method Details
#unwrap_webhook(payload, headers) ⇒ Object
Verify a Standard Webhooks delivery and return the typed payload.
64 65 66 67 68 69 70 |
# File 'lib/cadenya/client.rb', line 64 def unwrap_webhook(payload, headers) if @webhook_secret.to_s.empty? raise ArgumentError, "missing webhook secret: pass webhook_secret: or set CADENYA_WEBHOOK_SECRET" end Webhooks.verify(@webhook_secret, payload, headers) Types::ObjectiveEventWebhookData.from_json(JSON.parse(payload)) end |