diff --git a/src/libs/ResembleAI/Generated/ResembleAI.ISubpackageSpeechToTextClient.CreateTranscript.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.ISubpackageSpeechToTextClient.CreateTranscript.g.cs
index cf8be5e..458b976 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.ISubpackageSpeechToTextClient.CreateTranscript.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.ISubpackageSpeechToTextClient.CreateTranscript.g.cs
@@ -43,6 +43,13 @@ public partial interface ISubpackageSpeechToTextClient
///
/// Optional intelligence question to evaluate after transcription
///
+ ///
+ /// Public HTTPS URL that receives a POST with the result when processing finishes. Private, loopback, link-local, and non-HTTPS URLs are rejected. Required when zero_retention_mode is true.
+ ///
+ ///
+ /// Enable zero retention. The uploaded media and any temporary processing copies are permanently deleted after transcription, and the transcript content is purged after one delivery to callback_url (which is mandatory in this mode). privacy_mode is accepted as an alias. Plan feature — requests are rejected with 402 if not included in your plan.
+ /// Default Value: false
+ ///
/// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.
/// The token to cancel the operation with
///
@@ -50,6 +57,8 @@ public partial interface ISubpackageSpeechToTextClient
byte[]? file = default,
string? filename = default,
string? query = default,
+ string? callbackUrl = default,
+ bool? zeroRetentionMode = default,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default);
}
diff --git a/src/libs/ResembleAI/Generated/ResembleAI.Models.CreateTranscriptRequest.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.Models.CreateTranscriptRequest.g.cs
index a551e7c..606dc2e 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.Models.CreateTranscriptRequest.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.Models.CreateTranscriptRequest.g.cs
@@ -26,6 +26,19 @@ public sealed partial class CreateTranscriptRequest
[global::System.Text.Json.Serialization.JsonPropertyName("query")]
public string? Query { get; set; }
+ ///
+ /// Public HTTPS URL that receives a POST with the result when processing finishes. Private, loopback, link-local, and non-HTTPS URLs are rejected. Required when zero_retention_mode is true.
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("callback_url")]
+ public string? CallbackUrl { get; set; }
+
+ ///
+ /// Enable zero retention. The uploaded media and any temporary processing copies are permanently deleted after transcription, and the transcript content is purged after one delivery to callback_url (which is mandatory in this mode). privacy_mode is accepted as an alias. Plan feature — requests are rejected with 402 if not included in your plan.
+ /// Default Value: false
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("zero_retention_mode")]
+ public bool? ZeroRetentionMode { get; set; }
+
///
/// Additional properties that are not explicitly defined in the schema
///
@@ -44,17 +57,28 @@ public sealed partial class CreateTranscriptRequest
///
/// Optional intelligence question to evaluate after transcription
///
+ ///
+ /// Public HTTPS URL that receives a POST with the result when processing finishes. Private, loopback, link-local, and non-HTTPS URLs are rejected. Required when zero_retention_mode is true.
+ ///
+ ///
+ /// Enable zero retention. The uploaded media and any temporary processing copies are permanently deleted after transcription, and the transcript content is purged after one delivery to callback_url (which is mandatory in this mode). privacy_mode is accepted as an alias. Plan feature — requests are rejected with 402 if not included in your plan.
+ /// Default Value: false
+ ///
#if NET7_0_OR_GREATER
[global::System.Diagnostics.CodeAnalysis.SetsRequiredMembers]
#endif
public CreateTranscriptRequest(
byte[]? file,
string? filename,
- string? query)
+ string? query,
+ string? callbackUrl,
+ bool? zeroRetentionMode)
{
this.File = file;
this.Filename = filename;
this.Query = query;
+ this.CallbackUrl = callbackUrl;
+ this.ZeroRetentionMode = zeroRetentionMode;
}
///
diff --git a/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextPostResponsesContentApplicationJsonSchemaItem.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextPostResponsesContentApplicationJsonSchemaItem.g.cs
index ab8dca1..55118fe 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextPostResponsesContentApplicationJsonSchemaItem.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextPostResponsesContentApplicationJsonSchemaItem.g.cs
@@ -21,6 +21,12 @@ public sealed partial class SpeechToTextPostResponsesContentApplicationJsonSchem
[global::System.Text.Json.Serialization.JsonConverter(typeof(global::ResembleAI.JsonConverters.SpeechToTextPostResponsesContentApplicationJsonSchemaItemStatusJsonConverter))]
public global::ResembleAI.SpeechToTextPostResponsesContentApplicationJsonSchemaItemStatus? Status { get; set; }
+ ///
+ /// Whether the transcript was created with zero retention
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("privacy_mode")]
+ public bool? PrivacyMode { get; set; }
+
///
///
///
@@ -44,6 +50,9 @@ public sealed partial class SpeechToTextPostResponsesContentApplicationJsonSchem
///
///
///
+ ///
+ /// Whether the transcript was created with zero retention
+ ///
///
///
#if NET7_0_OR_GREATER
@@ -52,11 +61,13 @@ public sealed partial class SpeechToTextPostResponsesContentApplicationJsonSchem
public SpeechToTextPostResponsesContentApplicationJsonSchemaItem(
global::System.Guid? uuid,
global::ResembleAI.SpeechToTextPostResponsesContentApplicationJsonSchemaItemStatus? status,
+ bool? privacyMode,
global::System.DateTime? createdAt,
global::System.DateTime? updatedAt)
{
this.Uuid = uuid;
this.Status = status;
+ this.PrivacyMode = privacyMode;
this.CreatedAt = createdAt;
this.UpdatedAt = updatedAt;
}
diff --git a/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem.g.cs
index 817d227..30bfe28 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.Models.SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem.g.cs
@@ -22,7 +22,7 @@ public sealed partial class SpeechToTextUuidGetResponsesContentApplicationJsonSc
public global::ResembleAI.SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItemStatus? Status { get; set; }
///
- ///
+ /// Absent for zero-retention transcripts after the content purge
///
[global::System.Text.Json.Serialization.JsonPropertyName("text")]
public string? Text { get; set; }
@@ -40,7 +40,7 @@ public sealed partial class SpeechToTextUuidGetResponsesContentApplicationJsonSc
public double? DurationSeconds { get; set; }
///
- ///
+ /// Absent once the media has been deleted (zero retention)
///
[global::System.Text.Json.Serialization.JsonPropertyName("file_url")]
public string? FileUrl { get; set; }
@@ -57,6 +57,24 @@ public sealed partial class SpeechToTextUuidGetResponsesContentApplicationJsonSc
[global::System.Text.Json.Serialization.JsonPropertyName("answer")]
public string? Answer { get; set; }
+ ///
+ /// Whether the transcript was created with zero retention
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("privacy_mode")]
+ public bool? PrivacyMode { get; set; }
+
+ ///
+ /// When the uploaded media was permanently deleted (zero retention)
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("file_deleted_at")]
+ public global::System.DateTime? FileDeletedAt { get; set; }
+
+ ///
+ /// When the transcript content was permanently purged (zero retention)
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("content_deleted_at")]
+ public global::System.DateTime? ContentDeletedAt { get; set; }
+
///
///
///
@@ -80,12 +98,25 @@ public sealed partial class SpeechToTextUuidGetResponsesContentApplicationJsonSc
///
///
///
- ///
+ ///
+ /// Absent for zero-retention transcripts after the content purge
+ ///
///
///
- ///
+ ///
+ /// Absent once the media has been deleted (zero retention)
+ ///
///
///
+ ///
+ /// Whether the transcript was created with zero retention
+ ///
+ ///
+ /// When the uploaded media was permanently deleted (zero retention)
+ ///
+ ///
+ /// When the transcript content was permanently purged (zero retention)
+ ///
///
///
#if NET7_0_OR_GREATER
@@ -100,6 +131,9 @@ public SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem(
string? fileUrl,
string? query,
string? answer,
+ bool? privacyMode,
+ global::System.DateTime? fileDeletedAt,
+ global::System.DateTime? contentDeletedAt,
global::System.DateTime? createdAt,
global::System.DateTime? updatedAt)
{
@@ -111,6 +145,9 @@ public SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItem(
this.FileUrl = fileUrl;
this.Query = query;
this.Answer = answer;
+ this.PrivacyMode = privacyMode;
+ this.FileDeletedAt = fileDeletedAt;
+ this.ContentDeletedAt = contentDeletedAt;
this.CreatedAt = createdAt;
this.UpdatedAt = updatedAt;
}
diff --git a/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.AskTranscriptQuestion.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.AskTranscriptQuestion.g.cs
index cb2019b..e8f2458 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.AskTranscriptQuestion.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.AskTranscriptQuestion.g.cs
@@ -346,6 +346,43 @@ partial void ProcessAskTranscriptQuestionResponseContent(
retryReason: global::System.String.Empty,
cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false);
}
+ // Missing query, transcript not yet processed, or the transcript was created with zero retention and its content has been purged
+ if ((int)__response.StatusCode == 400)
+ {
+ string? __content_400 = null;
+ global::System.Exception? __exception_400 = null;
+ global::ResembleAI.Error? __value_400 = null;
+ try
+ {
+ if (__effectiveReadResponseAsString)
+ {
+ __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);
+ __value_400 = global::ResembleAI.Error.FromJson(__content_400, JsonSerializerContext);
+ }
+ else
+ {
+ __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);
+
+ __value_400 = global::ResembleAI.Error.FromJson(__content_400, JsonSerializerContext);
+ }
+ }
+ catch (global::System.Exception __ex)
+ {
+ __exception_400 = __ex;
+ }
+
+
+ throw global::ResembleAI.ApiException.Create(
+ statusCode: __response.StatusCode,
+ message: __content_400 ?? __response.ReasonPhrase ?? string.Empty,
+ innerException: __exception_400,
+ responseBody: __content_400,
+ responseObject: __value_400,
+ responseHeaders: global::System.Linq.Enumerable.ToDictionary(
+ __response.Headers,
+ h => h.Key,
+ h => h.Value));
+ }
if (__effectiveReadResponseAsString)
{
diff --git a/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.CreateTranscript.g.cs b/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.CreateTranscript.g.cs
index 76fa7a2..ca38c30 100644
--- a/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.CreateTranscript.g.cs
+++ b/src/libs/ResembleAI/Generated/ResembleAI.SubpackageSpeechToTextClient.CreateTranscript.g.cs
@@ -192,6 +192,22 @@ request.Filename is null
content: new global::System.Net.Http.StringContent(request.Query ?? string.Empty),
name: "\"query\"");
+ }
+ if (request.CallbackUrl != default)
+ {
+
+ __httpRequestContent.Add(
+ content: new global::System.Net.Http.StringContent(request.CallbackUrl ?? string.Empty),
+ name: "\"callback_url\"");
+
+ }
+ if (request.ZeroRetentionMode != default)
+ {
+
+ __httpRequestContent.Add(
+ content: new global::System.Net.Http.StringContent((global::System.Convert.ToString(request.ZeroRetentionMode, global::System.Globalization.CultureInfo.InvariantCulture) ?? string.Empty).ToLowerInvariant()),
+ name: "\"zero_retention_mode\"");
+
}
__httpRequest.Content = __httpRequestContent;
@@ -386,7 +402,7 @@ request.Filename is null
retryReason: global::System.String.Empty,
cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false);
}
- // Bad request
+ // Bad request (missing input, invalid callback_url, or zero retention requested without a callback_url)
if ((int)__response.StatusCode == 400)
{
string? __content_400 = null;
@@ -423,6 +439,43 @@ request.Filename is null
h => h.Key,
h => h.Value));
}
+ // Zero retention is not included in the team's plan or subscription
+ if ((int)__response.StatusCode == 402)
+ {
+ string? __content_402 = null;
+ global::System.Exception? __exception_402 = null;
+ global::ResembleAI.Error? __value_402 = null;
+ try
+ {
+ if (__effectiveReadResponseAsString)
+ {
+ __content_402 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);
+ __value_402 = global::ResembleAI.Error.FromJson(__content_402, JsonSerializerContext);
+ }
+ else
+ {
+ __content_402 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);
+
+ __value_402 = global::ResembleAI.Error.FromJson(__content_402, JsonSerializerContext);
+ }
+ }
+ catch (global::System.Exception __ex)
+ {
+ __exception_402 = __ex;
+ }
+
+
+ throw global::ResembleAI.ApiException.Create(
+ statusCode: __response.StatusCode,
+ message: __content_402 ?? __response.ReasonPhrase ?? string.Empty,
+ innerException: __exception_402,
+ responseBody: __content_402,
+ responseObject: __value_402,
+ responseHeaders: global::System.Linq.Enumerable.ToDictionary(
+ __response.Headers,
+ h => h.Key,
+ h => h.Value));
+ }
if (__effectiveReadResponseAsString)
{
@@ -532,6 +585,13 @@ request.Filename is null
///
/// Optional intelligence question to evaluate after transcription
///
+ ///
+ /// Public HTTPS URL that receives a POST with the result when processing finishes. Private, loopback, link-local, and non-HTTPS URLs are rejected. Required when zero_retention_mode is true.
+ ///
+ ///
+ /// Enable zero retention. The uploaded media and any temporary processing copies are permanently deleted after transcription, and the transcript content is purged after one delivery to callback_url (which is mandatory in this mode). privacy_mode is accepted as an alias. Plan feature — requests are rejected with 402 if not included in your plan.
+ /// Default Value: false
+ ///
/// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering.
/// The token to cancel the operation with
///
@@ -539,6 +599,8 @@ request.Filename is null
byte[]? file = default,
string? filename = default,
string? query = default,
+ string? callbackUrl = default,
+ bool? zeroRetentionMode = default,
global::ResembleAI.AutoSDKRequestOptions? requestOptions = default,
global::System.Threading.CancellationToken cancellationToken = default)
{
@@ -547,6 +609,8 @@ request.Filename is null
File = file,
Filename = filename,
Query = query,
+ CallbackUrl = callbackUrl,
+ ZeroRetentionMode = zeroRetentionMode,
};
return await CreateTranscriptAsync(
diff --git a/src/libs/ResembleAI/openapi.yaml b/src/libs/ResembleAI/openapi.yaml
index 36d1052..5cc5e4f 100644
--- a/src/libs/ResembleAI/openapi.yaml
+++ b/src/libs/ResembleAI/openapi.yaml
@@ -298,7 +298,17 @@
}
},
"400": {
- "description": "Bad request",
+ "description": "Bad request (missing input, invalid callback_url, or zero retention requested without a callback_url)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "402": {
+ "description": "Zero retention is not included in the team's plan or subscription",
"content": {
"application/json": {
"schema": {
@@ -322,6 +332,16 @@
"query": {
"type": "string",
"description": "Optional intelligence question to evaluate after transcription"
+ },
+ "callback_url": {
+ "type": "string",
+ "format": "uri",
+ "description": "Public HTTPS URL that receives a POST with the result when processing finishes. Private, loopback, link-local, and non-HTTPS URLs are rejected. Required when zero_retention_mode is true."
+ },
+ "zero_retention_mode": {
+ "type": "boolean",
+ "default": false,
+ "description": "Enable zero retention. The uploaded media and any temporary processing copies are permanently deleted after transcription, and the transcript content is purged after one delivery to callback_url (which is mandatory in this mode). privacy_mode is accepted as an alias. Plan feature — requests are rejected with 402 if not included in your plan."
}
}
}
@@ -420,6 +440,16 @@
}
}
}
+ },
+ "400": {
+ "description": "Missing query, transcript not yet processed, or the transcript was created with zero retention and its content has been purged",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
}
},
"requestBody": {
@@ -6800,6 +6830,10 @@
"status": {
"$ref": "#/components/schemas/SpeechToTextPostResponsesContentApplicationJsonSchemaItemStatus"
},
+ "privacy_mode": {
+ "type": "boolean",
+ "description": "Whether the transcript was created with zero retention"
+ },
"created_at": {
"type": "string",
"format": "date-time"
@@ -6864,7 +6898,8 @@
"$ref": "#/components/schemas/SpeechToTextUuidGetResponsesContentApplicationJsonSchemaItemStatus"
},
"text": {
- "type": "string"
+ "type": "string",
+ "description": "Absent for zero-retention transcripts after the content purge"
},
"words": {
"type": "array",
@@ -6878,7 +6913,8 @@
},
"file_url": {
"type": "string",
- "format": "uri"
+ "format": "uri",
+ "description": "Absent once the media has been deleted (zero retention)"
},
"query": {
"type": "string"
@@ -6886,6 +6922,20 @@
"answer": {
"type": "string"
},
+ "privacy_mode": {
+ "type": "boolean",
+ "description": "Whether the transcript was created with zero retention"
+ },
+ "file_deleted_at": {
+ "type": "string",
+ "format": "date-time",
+ "description": "When the uploaded media was permanently deleted (zero retention)"
+ },
+ "content_deleted_at": {
+ "type": "string",
+ "format": "date-time",
+ "description": "When the transcript content was permanently purged (zero retention)"
+ },
"created_at": {
"type": "string",
"format": "date-time"