0.1.1
What the Twilio SDK needs; nothing changes for existing SDKs.
- Path parameters filled from a setting (
client_path_paramsin an operation): Twilio's{AccountSid}comes fromconfig :twilio, account_sid: ...or a call'saccount_sid:option, and a missing one raises anArgumentErrorthat says which setting to set - Settings an SDK defines itself are kept in
Infusion.Runtime.Config'sextraand read withInfusion.Runtime.Config.setting/2, resolving{:env, "VAR"}and functions like the API key - Basic auth from two places:
api_key: {{:env, "SID"}, {:env, "TOKEN"}}; if either is unset, no credential is sent
0.1.0
First release.
- Requests built from generated operations: path, query and header parameters, JSON, nested form and multipart bodies, auth (bearer, basic, API key header or query)
- Retries on connection errors, timeouts, 408, 409, 429 and 5xx, honouring
retry-after-ms,retry-afterandx-should-retry, with capped exponential backoff and jitter; idempotency keys reused across retries Infusion.Runtime.Errorwith atypeper status, the body, headers and request ID; GitHub's 403 with no rate limit left is:rate_limit- Decoding into generated structs: unions by discriminator or by shape,
unknown fields kept,
nulltold apart from missing - Server-Sent Events as a lazy
Stream(Infusion.Runtime.SSE,Infusion.Runtime.Request.stream/5) - Pagination as a lazy
Streamof items (Infusion.Runtime.Paginate) Telemetry events
[:infusion, :request, :start | :stop | :exception]