diff --git a/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs b/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs
new file mode 100644
index 0000000..ac1419c
--- /dev/null
+++ b/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs
@@ -0,0 +1,53 @@
+#nullable enable
+
+namespace V0.JsonConverters
+{
+ ///
+ public sealed class ReportsGetUsageResponseDataItemCostBreakdownStatusJsonConverter : global::System.Text.Json.Serialization.JsonConverter
+ {
+ ///
+ public override global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus Read(
+ ref global::System.Text.Json.Utf8JsonReader reader,
+ global::System.Type typeToConvert,
+ global::System.Text.Json.JsonSerializerOptions options)
+ {
+ switch (reader.TokenType)
+ {
+ case global::System.Text.Json.JsonTokenType.String:
+ {
+ var stringValue = reader.GetString();
+ if (stringValue != null)
+ {
+ return global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatusExtensions.ToEnum(stringValue) ?? default;
+ }
+
+ break;
+ }
+ case global::System.Text.Json.JsonTokenType.Number:
+ {
+ var numValue = reader.GetInt32();
+ return (global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus)numValue;
+ }
+ case global::System.Text.Json.JsonTokenType.Null:
+ {
+ return default(global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus);
+ }
+ default:
+ throw new global::System.ArgumentOutOfRangeException(nameof(reader));
+ }
+
+ return default;
+ }
+
+ ///
+ public override void Write(
+ global::System.Text.Json.Utf8JsonWriter writer,
+ global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus value,
+ global::System.Text.Json.JsonSerializerOptions options)
+ {
+ writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));
+
+ writer.WriteStringValue(global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatusExtensions.ToValueString(value));
+ }
+ }
+}
diff --git a/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusNullable.g.cs b/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusNullable.g.cs
new file mode 100644
index 0000000..a7172d5
--- /dev/null
+++ b/src/libs/V0/Generated/V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusNullable.g.cs
@@ -0,0 +1,60 @@
+#nullable enable
+
+namespace V0.JsonConverters
+{
+ ///
+ public sealed class ReportsGetUsageResponseDataItemCostBreakdownStatusNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter
+ {
+ ///
+ public override global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus? Read(
+ ref global::System.Text.Json.Utf8JsonReader reader,
+ global::System.Type typeToConvert,
+ global::System.Text.Json.JsonSerializerOptions options)
+ {
+ switch (reader.TokenType)
+ {
+ case global::System.Text.Json.JsonTokenType.String:
+ {
+ var stringValue = reader.GetString();
+ if (stringValue != null)
+ {
+ return global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatusExtensions.ToEnum(stringValue);
+ }
+
+ break;
+ }
+ case global::System.Text.Json.JsonTokenType.Number:
+ {
+ var numValue = reader.GetInt32();
+ return (global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus)numValue;
+ }
+ case global::System.Text.Json.JsonTokenType.Null:
+ {
+ return default(global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus?);
+ }
+ default:
+ throw new global::System.ArgumentOutOfRangeException(nameof(reader));
+ }
+
+ return default;
+ }
+
+ ///
+ public override void Write(
+ global::System.Text.Json.Utf8JsonWriter writer,
+ global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus? value,
+ global::System.Text.Json.JsonSerializerOptions options)
+ {
+ writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));
+
+ if (value == null)
+ {
+ writer.WriteNullValue();
+ }
+ else
+ {
+ writer.WriteStringValue(global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatusExtensions.ToValueString(value.Value));
+ }
+ }
+ }
+}
diff --git a/src/libs/V0/Generated/V0.JsonSerializerContext.g.cs b/src/libs/V0/Generated/V0.JsonSerializerContext.g.cs
index e97e972..8c0f229 100644
--- a/src/libs/V0/Generated/V0.JsonSerializerContext.g.cs
+++ b/src/libs/V0/Generated/V0.JsonSerializerContext.g.cs
@@ -353,6 +353,10 @@ namespace V0
typeof(global::V0.JsonConverters.ReportsGetUsageResponseDataItemTypeNullableJsonConverter),
+ typeof(global::V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusJsonConverter),
+
+ typeof(global::V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusNullableJsonConverter),
+
typeof(global::V0.JsonConverters.ReportsGetUserActivityResponseDataItemUserTeamV0RoleJsonConverter),
typeof(global::V0.JsonConverters.ReportsGetUserActivityResponseDataItemUserTeamV0RoleNullableJsonConverter),
@@ -752,6 +756,7 @@ namespace V0
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::System.Collections.Generic.IList))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetUsageResponseDataItem))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetUsageResponseDataItemType), TypeInfoPropertyName = "ReportsGetUsageResponseDataItemType2")]
+ [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus), TypeInfoPropertyName = "ReportsGetUsageResponseDataItemCostBreakdownStatus2")]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetUsageResponsePagination))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetUsageResponseMeta))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::V0.ReportsGetAIUsageResponse))]
diff --git a/src/libs/V0/Generated/V0.JsonSerializerContextTypes.g.cs b/src/libs/V0/Generated/V0.JsonSerializerContextTypes.g.cs
index 8f7a990..0538e77 100644
--- a/src/libs/V0/Generated/V0.JsonSerializerContextTypes.g.cs
+++ b/src/libs/V0/Generated/V0.JsonSerializerContextTypes.g.cs
@@ -1369,139 +1369,143 @@ public sealed partial class JsonSerializerContextTypes
///
///
///
- public global::V0.ReportsGetUsageResponsePagination? Type334 { get; set; }
+ public global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus? Type334 { get; set; }
///
///
///
- public global::V0.ReportsGetUsageResponseMeta? Type335 { get; set; }
+ public global::V0.ReportsGetUsageResponsePagination? Type335 { get; set; }
///
///
///
- public global::V0.ReportsGetAIUsageResponse? Type336 { get; set; }
+ public global::V0.ReportsGetUsageResponseMeta? Type336 { get; set; }
///
///
///
- public global::System.Collections.Generic.IList? Type337 { get; set; }
+ public global::V0.ReportsGetAIUsageResponse? Type337 { get; set; }
///
///
///
- public global::V0.ReportsGetAIUsageResponseDataItem? Type338 { get; set; }
+ public global::System.Collections.Generic.IList? Type338 { get; set; }
///
///
///
- public global::V0.ReportsGetAIUsageResponsePagination? Type339 { get; set; }
+ public global::V0.ReportsGetAIUsageResponseDataItem? Type339 { get; set; }
///
///
///
- public global::V0.ReportsGetAIUsageResponseDateRange? Type340 { get; set; }
+ public global::V0.ReportsGetAIUsageResponsePagination? Type340 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponse? Type341 { get; set; }
+ public global::V0.ReportsGetAIUsageResponseDateRange? Type341 { get; set; }
///
///
///
- public global::System.Collections.Generic.IList? Type342 { get; set; }
+ public global::V0.ReportsGetUserActivityResponse? Type342 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponseDataItem? Type343 { get; set; }
+ public global::System.Collections.Generic.IList? Type343 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponseDataItemUser? Type344 { get; set; }
+ public global::V0.ReportsGetUserActivityResponseDataItem? Type344 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponseDataItemUserTeamV0Role? Type345 { get; set; }
+ public global::V0.ReportsGetUserActivityResponseDataItemUser? Type345 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponseMeta? Type346 { get; set; }
+ public global::V0.ReportsGetUserActivityResponseDataItemUserTeamV0Role? Type346 { get; set; }
///
///
///
- public global::V0.ReportsGetUserActivityResponseMetaDateRange? Type347 { get; set; }
+ public global::V0.ReportsGetUserActivityResponseMeta? Type347 { get; set; }
///
///
///
- public global::V0.McpServersFindResponse? Type348 { get; set; }
+ public global::V0.ReportsGetUserActivityResponseMetaDateRange? Type348 { get; set; }
///
///
///
- public global::System.Collections.Generic.IList? Type349 { get; set; }
+ public global::V0.McpServersFindResponse? Type349 { get; set; }
///
///
///
- public global::V0.McpServersFindResponseDataItem? Type350 { get; set; }
+ public global::System.Collections.Generic.IList? Type350 { get; set; }
///
///
///
- public global::V0.McpServersFindResponseDataItemAuth? Type351 { get; set; }
+ public global::V0.McpServersFindResponseDataItem? Type351 { get; set; }
///
///
///
- public global::V0.McpServersFindResponseDataItemAuthType? Type352 { get; set; }
+ public global::V0.McpServersFindResponseDataItemAuth? Type352 { get; set; }
///
///
///
- public global::V0.McpServersFindResponseDataItemScope? Type353 { get; set; }
+ public global::V0.McpServersFindResponseDataItemAuthType? Type353 { get; set; }
///
///
///
- public global::V0.McpServersCreateResponse? Type354 { get; set; }
+ public global::V0.McpServersFindResponseDataItemScope? Type354 { get; set; }
///
///
///
- public global::V0.McpServersCreateResponseAuth? Type355 { get; set; }
+ public global::V0.McpServersCreateResponse? Type355 { get; set; }
///
///
///
- public global::V0.McpServersCreateResponseAuthType? Type356 { get; set; }
+ public global::V0.McpServersCreateResponseAuth? Type356 { get; set; }
///
///
///
- public global::V0.McpServersCreateResponseScope? Type357 { get; set; }
+ public global::V0.McpServersCreateResponseAuthType? Type357 { get; set; }
///
///
///
- public global::V0.McpServersGetByIdResponse? Type358 { get; set; }
+ public global::V0.McpServersCreateResponseScope? Type358 { get; set; }
///
///
///
- public global::V0.McpServersGetByIdResponseAuth? Type359 { get; set; }
+ public global::V0.McpServersGetByIdResponse? Type359 { get; set; }
///
///
///
- public global::V0.McpServersGetByIdResponseAuthType? Type360 { get; set; }
+ public global::V0.McpServersGetByIdResponseAuth? Type360 { get; set; }
///
///
///
- public global::V0.McpServersGetByIdResponseScope? Type361 { get; set; }
+ public global::V0.McpServersGetByIdResponseAuthType? Type361 { get; set; }
///
///
///
- public global::V0.McpServersUpdateResponse? Type362 { get; set; }
+ public global::V0.McpServersGetByIdResponseScope? Type362 { get; set; }
///
///
///
- public global::V0.McpServersUpdateResponseAuth? Type363 { get; set; }
+ public global::V0.McpServersUpdateResponse? Type363 { get; set; }
///
///
///
- public global::V0.McpServersUpdateResponseAuthType? Type364 { get; set; }
+ public global::V0.McpServersUpdateResponseAuth? Type364 { get; set; }
///
///
///
- public global::V0.McpServersUpdateResponseScope? Type365 { get; set; }
+ public global::V0.McpServersUpdateResponseAuthType? Type365 { get; set; }
///
///
///
- public global::V0.McpServersDeleteResponse? Type366 { get; set; }
+ public global::V0.McpServersUpdateResponseScope? Type366 { get; set; }
///
///
///
- public global::V0.McpServersCreateOAuthAuthorizationUrlResponse? Type367 { get; set; }
+ public global::V0.McpServersDeleteResponse? Type367 { get; set; }
+ ///
+ ///
+ ///
+ public global::V0.McpServersCreateOAuthAuthorizationUrlResponse? Type368 { get; set; }
///
///
diff --git a/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItem.g.cs b/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItem.g.cs
index 324fc17..47115f3 100644
--- a/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItem.g.cs
+++ b/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItem.g.cs
@@ -41,6 +41,13 @@ public sealed partial class ReportsGetUsageResponseDataItem
[global::System.Text.Json.Serialization.JsonPropertyName("completionCost")]
public string? CompletionCost { get; set; }
+ ///
+ /// Whether the cost components are estimated or unavailable. Unavailable components are omitted; totalCost remains authoritative.
+ ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("costBreakdownStatus")]
+ [global::System.Text.Json.Serialization.JsonConverter(typeof(global::V0.JsonConverters.ReportsGetUsageResponseDataItemCostBreakdownStatusJsonConverter))]
+ public global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus? CostBreakdownStatus { get; set; }
+
///
///
///
@@ -96,6 +103,9 @@ public sealed partial class ReportsGetUsageResponseDataItem
///
///
///
+ ///
+ /// Whether the cost components are estimated or unavailable. Unavailable components are omitted; totalCost remains authoritative.
+ ///
///
///
///
@@ -115,6 +125,7 @@ public ReportsGetUsageResponseDataItem(
global::V0.ReportsGetUsageResponseDataItemType? type,
string? promptCost,
string? completionCost,
+ global::V0.ReportsGetUsageResponseDataItemCostBreakdownStatus? costBreakdownStatus,
string? chatId,
string? messageId,
string? userId,
@@ -126,6 +137,7 @@ public ReportsGetUsageResponseDataItem(
this.Type = type;
this.PromptCost = promptCost;
this.CompletionCost = completionCost;
+ this.CostBreakdownStatus = costBreakdownStatus;
this.TotalCost = totalCost ?? throw new global::System.ArgumentNullException(nameof(totalCost));
this.ChatId = chatId;
this.MessageId = messageId;
diff --git a/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs b/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs
new file mode 100644
index 0000000..44c1998
--- /dev/null
+++ b/src/libs/V0/Generated/V0.Models.ReportsGetUsageResponseDataItemCostBreakdownStatus.g.cs
@@ -0,0 +1,51 @@
+
+#nullable enable
+
+namespace V0
+{
+ ///
+ /// Whether the cost components are estimated or unavailable. Unavailable components are omitted; totalCost remains authoritative.
+ ///
+ public enum ReportsGetUsageResponseDataItemCostBreakdownStatus
+ {
+ ///
+ ///
+ ///
+ Estimated,
+ ///
+ ///
+ ///
+ Unavailable,
+ }
+
+ ///
+ /// Enum extensions to do fast conversions without the reflection.
+ ///
+ public static class ReportsGetUsageResponseDataItemCostBreakdownStatusExtensions
+ {
+ ///
+ /// Converts an enum to a string.
+ ///
+ public static string ToValueString(this ReportsGetUsageResponseDataItemCostBreakdownStatus value)
+ {
+ return value switch
+ {
+ ReportsGetUsageResponseDataItemCostBreakdownStatus.Estimated => "estimated",
+ ReportsGetUsageResponseDataItemCostBreakdownStatus.Unavailable => "unavailable",
+ _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
+ };
+ }
+ ///
+ /// Converts an string to a enum.
+ ///
+ public static ReportsGetUsageResponseDataItemCostBreakdownStatus? ToEnum(string value)
+ {
+ return value switch
+ {
+ "estimated" => ReportsGetUsageResponseDataItemCostBreakdownStatus.Estimated,
+ "unavailable" => ReportsGetUsageResponseDataItemCostBreakdownStatus.Unavailable,
+ _ => null,
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/libs/V0/openapi.yaml b/src/libs/V0/openapi.yaml
index 910028e..eb3c068 100644
--- a/src/libs/V0/openapi.yaml
+++ b/src/libs/V0/openapi.yaml
@@ -5516,6 +5516,12 @@ paths:
type: string
completionCost:
type: string
+ costBreakdownStatus:
+ description: Whether the cost components are estimated or unavailable. Unavailable components are omitted; totalCost remains authoritative.
+ type: string
+ enum:
+ - estimated
+ - unavailable
totalCost:
type: string
chatId: