Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ partial void ProcessCreateSessionResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,7 @@ partial void ProcessSpeechResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,7 @@ partial void ProcessStreamResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down Expand Up @@ -1317,7 +1317,7 @@ partial void ProcessStreamResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ partial void ProcessCreateResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,15 @@ public partial interface IOutboundCallsClient
/// for a workspace with several numbers, `caller_id_number`.<br/>
/// Requires a Twilio or BYOC trunk. LiveKit-native numbers are<br/>
/// inbound-only.<br/>
/// International (non-NANP) destinations require a funded balance - a<br/>
/// paid plan or a payment method on file, not just trial / granted<br/>
/// credits - and are otherwise refused with<br/>
/// `402 funded_balance_required`. Domestic (`+1`) calls are unaffected.
/// International (non-NANP) destinations on a Speechify-billed number<br/>
/// require a payment that has COLLECTED on the workspace - a subscription<br/>
/// charge or a card top-up, with no invoice past due - and are otherwise<br/>
/// refused with `402 funded_balance_required`; trial / granted credit and<br/>
/// a card merely on file do not satisfy it, and the refusal message names<br/>
/// which condition is missing. Domestic (`+1`) calls are unaffected, as<br/>
/// are calls placed from a number you imported from your own carrier. If<br/>
/// the payment status cannot be resolved the call is refused with a<br/>
/// retriable `503`, never the 402.
/// </summary>
/// <param name="speechifyVersion"></param>
/// <param name="idempotencyKey">
Expand Down Expand Up @@ -62,10 +67,15 @@ public partial interface IOutboundCallsClient
/// for a workspace with several numbers, `caller_id_number`.<br/>
/// Requires a Twilio or BYOC trunk. LiveKit-native numbers are<br/>
/// inbound-only.<br/>
/// International (non-NANP) destinations require a funded balance - a<br/>
/// paid plan or a payment method on file, not just trial / granted<br/>
/// credits - and are otherwise refused with<br/>
/// `402 funded_balance_required`. Domestic (`+1`) calls are unaffected.
/// International (non-NANP) destinations on a Speechify-billed number<br/>
/// require a payment that has COLLECTED on the workspace - a subscription<br/>
/// charge or a card top-up, with no invoice past due - and are otherwise<br/>
/// refused with `402 funded_balance_required`; trial / granted credit and<br/>
/// a card merely on file do not satisfy it, and the refusal message names<br/>
/// which condition is missing. Domestic (`+1`) calls are unaffected, as<br/>
/// are calls placed from a number you imported from your own carrier. If<br/>
/// the payment status cannot be resolved the call is refused with a<br/>
/// retriable `503`, never the 402.
/// </summary>
/// <param name="speechifyVersion"></param>
/// <param name="idempotencyKey">
Expand Down Expand Up @@ -101,10 +111,15 @@ public partial interface IOutboundCallsClient
/// for a workspace with several numbers, `caller_id_number`.<br/>
/// Requires a Twilio or BYOC trunk. LiveKit-native numbers are<br/>
/// inbound-only.<br/>
/// International (non-NANP) destinations require a funded balance - a<br/>
/// paid plan or a payment method on file, not just trial / granted<br/>
/// credits - and are otherwise refused with<br/>
/// `402 funded_balance_required`. Domestic (`+1`) calls are unaffected.
/// International (non-NANP) destinations on a Speechify-billed number<br/>
/// require a payment that has COLLECTED on the workspace - a subscription<br/>
/// charge or a card top-up, with no invoice past due - and are otherwise<br/>
/// refused with `402 funded_balance_required`; trial / granted credit and<br/>
/// a card merely on file do not satisfy it, and the refusal message names<br/>
/// which condition is missing. Domestic (`+1`) calls are unaffected, as<br/>
/// are calls placed from a number you imported from your own carrier. If<br/>
/// the payment status cannot be resolved the call is refused with a<br/>
/// retriable `503`, never the 402.
/// </summary>
/// <param name="speechifyVersion"></param>
/// <param name="idempotencyKey">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,15 @@ public partial interface IPhoneNumbersClient
/// `402 purchased_numbers_not_included`; a plan that has used its full<br/>
/// included quota returns 422. This is independent of the overall<br/>
/// 100-number cap. Because the number is a recurring Speechify-borne<br/>
/// carrier cost, the workspace must also have a funded balance (a paid<br/>
/// plan or a payment method on file, not just trial / granted credits),<br/>
/// else the buy is refused with `402 funded_balance_required`.<br/>
/// carrier cost, the workspace must also have taken a payment that<br/>
/// COLLECTED - a subscription charge or a card top-up - with no invoice<br/>
/// past due, else the buy is refused with `402 funded_balance_required`.<br/>
/// A plan id with a card merely on file, trial or granted credit, and a<br/>
/// raised number allowance do not satisfy it; the refusal message names<br/>
/// which condition is missing. Importing a number from your own carrier<br/>
/// (`POST /v1/agents/phone-numbers`) does not go through this check. If<br/>
/// the payment status cannot be resolved the buy is refused with a<br/>
/// retriable `503`, never the 402.<br/>
/// `e164` must come from a recent `SearchAvailablePhoneNumbers`<br/>
/// response — carriers reject buys against numbers that are no<br/>
/// longer in inventory. The returned phone number is wired for<br/>
Expand Down Expand Up @@ -46,9 +52,15 @@ public partial interface IPhoneNumbersClient
/// `402 purchased_numbers_not_included`; a plan that has used its full<br/>
/// included quota returns 422. This is independent of the overall<br/>
/// 100-number cap. Because the number is a recurring Speechify-borne<br/>
/// carrier cost, the workspace must also have a funded balance (a paid<br/>
/// plan or a payment method on file, not just trial / granted credits),<br/>
/// else the buy is refused with `402 funded_balance_required`.<br/>
/// carrier cost, the workspace must also have taken a payment that<br/>
/// COLLECTED - a subscription charge or a card top-up - with no invoice<br/>
/// past due, else the buy is refused with `402 funded_balance_required`.<br/>
/// A plan id with a card merely on file, trial or granted credit, and a<br/>
/// raised number allowance do not satisfy it; the refusal message names<br/>
/// which condition is missing. Importing a number from your own carrier<br/>
/// (`POST /v1/agents/phone-numbers`) does not go through this check. If<br/>
/// the payment status cannot be resolved the buy is refused with a<br/>
/// retriable `503`, never the 402.<br/>
/// `e164` must come from a recent `SearchAvailablePhoneNumbers`<br/>
/// response — carriers reject buys against numbers that are no<br/>
/// longer in inventory. The returned phone number is wired for<br/>
Expand Down Expand Up @@ -80,9 +92,15 @@ public partial interface IPhoneNumbersClient
/// `402 purchased_numbers_not_included`; a plan that has used its full<br/>
/// included quota returns 422. This is independent of the overall<br/>
/// 100-number cap. Because the number is a recurring Speechify-borne<br/>
/// carrier cost, the workspace must also have a funded balance (a paid<br/>
/// plan or a payment method on file, not just trial / granted credits),<br/>
/// else the buy is refused with `402 funded_balance_required`.<br/>
/// carrier cost, the workspace must also have taken a payment that<br/>
/// COLLECTED - a subscription charge or a card top-up - with no invoice<br/>
/// past due, else the buy is refused with `402 funded_balance_required`.<br/>
/// A plan id with a card merely on file, trial or granted credit, and a<br/>
/// raised number allowance do not satisfy it; the refusal message names<br/>
/// which condition is missing. Importing a number from your own carrier<br/>
/// (`POST /v1/agents/phone-numbers`) does not go through this check. If<br/>
/// the payment status cannot be resolved the buy is refused with a<br/>
/// retriable `503`, never the 402.<br/>
/// `e164` must come from a recent `SearchAvailablePhoneNumbers`<br/>
/// response — carriers reject buys against numbers that are no<br/>
/// longer in inventory. The returned phone number is wired for<br/>
Expand Down
20 changes: 14 additions & 6 deletions src/libs/Speechify/Generated/Speechify.Models.Conversation.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,13 @@ public sealed partial class Conversation
public object? DynamicVariables { get; set; }

/// <summary>
/// Populated only on the list endpoint via a correlated<br/>
/// subquery. Zero on single-row reads where the join cost<br/>
/// isn't paid.
/// Number of turns in this conversation's transcript: the<br/>
/// size of the list `GET<br/>
/// /v1/agents/conversations/{conversation_id}/messages`<br/>
/// returns. Reported identically by the list endpoints, the<br/>
/// single read, and the `conversation.completed` webhook's<br/>
/// `data.object`. Zero once a conversation is erased, since<br/>
/// an erasure withdraws its transcript from every read.
/// </summary>
[global::System.Text.Json.Serialization.JsonPropertyName("message_count")]
[global::System.Text.Json.Serialization.JsonRequired]
Expand Down Expand Up @@ -278,9 +282,13 @@ public sealed partial class Conversation
/// </param>
/// <param name="metadata"></param>
/// <param name="messageCount">
/// Populated only on the list endpoint via a correlated<br/>
/// subquery. Zero on single-row reads where the join cost<br/>
/// isn't paid.
/// Number of turns in this conversation's transcript: the<br/>
/// size of the list `GET<br/>
/// /v1/agents/conversations/{conversation_id}/messages`<br/>
/// returns. Reported identically by the list endpoints, the<br/>
/// single read, and the `conversation.completed` webhook's<br/>
/// `data.object`. Zero once a conversation is erased, since<br/>
/// an erasure withdraws its transcript from every read.
/// </param>
/// <param name="startedAt">
/// Set when the first user participant joins the realtime<br/>
Expand Down
6 changes: 6 additions & 0 deletions src/libs/Speechify/Generated/Speechify.Models.ErrorCode.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,10 @@ public enum ErrorCode
/// <summary>
///
/// </summary>
ConversationTurnInProgress,
/// <summary>
///
/// </summary>
CredentialInUse,
/// <summary>
///
Expand Down Expand Up @@ -651,6 +655,7 @@ public static string ToValueString(this ErrorCode value)
ErrorCode.ContactResolverNotFound => "contact_resolver_not_found",
ErrorCode.ContentPolicyViolation => "content_policy_violation",
ErrorCode.ConversationNotFound => "conversation_not_found",
ErrorCode.ConversationTurnInProgress => "conversation_turn_in_progress",
ErrorCode.CredentialInUse => "credential_in_use",
ErrorCode.CredentialNotFound => "credential_not_found",
ErrorCode.CreditPurchaseUnpaid => "credit_purchase_unpaid",
Expand Down Expand Up @@ -806,6 +811,7 @@ public static string ToValueString(this ErrorCode value)
"contact_resolver_not_found" => ErrorCode.ContactResolverNotFound,
"content_policy_violation" => ErrorCode.ContentPolicyViolation,
"conversation_not_found" => ErrorCode.ConversationNotFound,
"conversation_turn_in_progress" => ErrorCode.ConversationTurnInProgress,
"credential_in_use" => ErrorCode.CredentialInUse,
"credential_not_found" => ErrorCode.CredentialNotFound,
"credit_purchase_unpaid" => ErrorCode.CreditPurchaseUnpaid,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ partial void ProcessListResponseContent(
h => h.Key,
h => h.Value));
}
// Rate limit or concurrency limit exceeded. `error.code` distinguishes request-rate limiting (`rate_limited`) from concurrency exhaustion (`concurrency_limit_reached`). Carries `Retry-After` and the request-rate budget headers; a concurrency-exhaustion 429 also carries `RateLimit-Remaining-Calls: 0`.
// Rate limit or concurrency limit exceeded. `error.code` says which ceiling, and they need different responses: `rate_limited` is the request-rate budget (slow down), `concurrency_limit_reached` is a workspace-wide concurrency ceiling (fewer at once, or raise it), and `conversation_turn_in_progress` is contention over one named conversation (keep one message in flight on it). Every 429 carries `Retry-After` and the request-rate budget headers; the active-call cap also carries `RateLimit-Remaining-Calls: 0`.
if ((int)__response.StatusCode == 429)
{
string? __content_429 = null;
Expand Down
Loading