Skip to content

Repository files navigation

Twilio - Api Ruby SDK

This is the public Twilio REST API.

Package octri_twilio · Version 1.0.0 · 197 operations

Installation

# In the delivered checkout
gem build octri_twilio.gemspec
gem install octri_twilio-1.0.0.gem

# After this version is published
gem install octri_twilio -v 1.0.0

Quickstart

The example calls ListAccount (GET /2010-04-01/Accounts.json), a low-friction operation that requires no request arguments.

require "octri_twilio"

config = OctriTwilio::ClientConfig.new
config.base_url = "https://api.twilio.com"
auth = OctriTwilio::ClientAuthConfig.new
auth.account_sid_auth_token = OctriTwilio::BasicCredentials.new(username: ENV.fetch("API_USERNAME"), password: ENV.fetch("API_PASSWORD"))
config.auth = auth
client = OctriTwilio::Twilio.new(config)
result = client.api20100401account.list_account()
p result

Authentication

Keep credentials outside source control. The quickstart reads them from the environment and the client applies them to every request.

Scheme ClientAuthConfig field Sent as
accountSid_authToken account_sid_auth_token Authorization: Basic …

Client behavior

  • Base URL: https://api.twilio.com.
  • Transport: Net::HTTP.
  • Timeout: 30,000 ms per attempt.
  • Retries: up to 3 attempts for status codes 408, 425, 429, 500, 502, 503, 504, with 500–8,000 ms backoff.
  • Idempotency: disabled.
  • Error telemetry is disabled by default, even when a reporting endpoint is baked into the build. Consumers must opt in explicitly.
  • Telemetry PII filtering is enabled by default: common credentials and direct identifiers are recursively replaced with [REDACTED] before reports are sent. Disable it only through the generated logging config's filterPii (or language-native equivalent) for a trusted private sink.

High-level operation methods return the typed response body directly. The low-level request layer returns an SdkResponse<T> envelope containing data, status, headers, request ID, latency, and attempt count.

Errors and response metadata

All failure paths use a small, predictable hierarchy:

Error Meaning
SdkValidationError A request argument failed an OpenAPI constraint before network I/O.
SdkHttpError The server returned a non-2xx response.
SdkNetworkError DNS, connection, TLS, or socket failure.
SdkTimeoutError The configured per-attempt timeout elapsed.

HTTP errors expose status_code, the response body and headers, plus request_id when the server supplies one. Preserve the request ID in support logs; it is the fastest way to correlate a failed SDK call with server-side traces.

Project layout and API discovery

  • Operation implementations are grouped under lib/octri_twilio/methods/.
  • 150 component models are split by API domain under lib/octri_twilio/models/<domain>.rb or lib/octri_twilio/models/<tag path>/models.rb, loaded by lib/octri_twilio/types.rb.
  • Component schemas can choose a nested model folder with x-octri-sdk-tags: ["Billing/Invoices"]; the first tag owns the model and / creates nesting.
  • sdk-manifest.json is the language-neutral public API index: operations, request/response modes, model properties, enum values, and generation settings.
  • Public barrel/module exports are the compatibility boundary. Import public model names from those exports; internal domain filenames may evolve without changing model names.

Links

Local mock-server tests

Generated SDK includes schema-derived, zero-dependency mock server and network contract suite. Node.js 20+ required. Contract probes use authored response examples only; schema-synthesized routes remain available to the local server.

./scripts/mock --port 4010 starts server. ./scripts/test runs the mock contract suite, then native SDK tests. A zero-authored-example contract run succeeds with an explicit zero-test summary; mismatches in authored examples still fail.

About

Production-ready Ruby SDK for Twilio API, generated by Octri SDK Studio.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages