diff --git a/src/libs/ZAI/Generated/ZAI.AnyOf.3.g.cs b/src/libs/ZAI/Generated/ZAI.AnyOf.3.g.cs
index 5107d43..50b5777 100644
--- a/src/libs/ZAI/Generated/ZAI.AnyOf.3.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.AnyOf.3.g.cs
@@ -115,6 +115,11 @@ public AnyOf(T1? value)
Value1 = value;
}
+ ///
+ ///
+ ///
+ public static AnyOf FromValue1(T1? value) => new AnyOf(value);
+
///
///
///
@@ -133,6 +138,11 @@ public AnyOf(T2? value)
Value2 = value;
}
+ ///
+ ///
+ ///
+ public static AnyOf FromValue2(T2? value) => new AnyOf(value);
+
///
///
///
@@ -151,6 +161,11 @@ public AnyOf(T3? value)
Value3 = value;
}
+ ///
+ ///
+ ///
+ public static AnyOf FromValue3(T3? value) => new AnyOf(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.CogVideoX3Request.g.cs b/src/libs/ZAI/Generated/ZAI.Models.CogVideoX3Request.g.cs
index b5061ac..3a45c77 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.CogVideoX3Request.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.CogVideoX3Request.g.cs
@@ -86,6 +86,11 @@ public CogVideoX3Request(global::ZAI.CogVideoX3RequestVariant1? value)
CogVideoX3RequestVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static CogVideoX3Request FromCogVideoX3RequestVariant1(global::ZAI.CogVideoX3RequestVariant1? value) => new CogVideoX3Request(value);
+
///
///
///
@@ -104,6 +109,11 @@ public CogVideoX3Request(global::ZAI.VideoCommonRequest? value)
Common = value;
}
+ ///
+ ///
+ ///
+ public static CogVideoX3Request FromCommon(global::ZAI.VideoCommonRequest? value) => new CogVideoX3Request(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.MultimodalContentItem.g.cs b/src/libs/ZAI/Generated/ZAI.Models.MultimodalContentItem.g.cs
index ff979e8..8599788 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.MultimodalContentItem.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.MultimodalContentItem.g.cs
@@ -176,6 +176,11 @@ public MultimodalContentItem(global::ZAI.MultimodalContentItemText? value)
Text = value;
}
+ ///
+ ///
+ ///
+ public static MultimodalContentItem FromText(global::ZAI.MultimodalContentItemText? value) => new MultimodalContentItem(value);
+
///
///
///
@@ -194,6 +199,11 @@ public MultimodalContentItem(global::ZAI.MultimodalContentItemImage? value)
Image = value;
}
+ ///
+ ///
+ ///
+ public static MultimodalContentItem FromImage(global::ZAI.MultimodalContentItemImage? value) => new MultimodalContentItem(value);
+
///
///
///
@@ -212,6 +222,11 @@ public MultimodalContentItem(global::ZAI.MultimodalContentItemAudio? value)
Audio = value;
}
+ ///
+ ///
+ ///
+ public static MultimodalContentItem FromAudio(global::ZAI.MultimodalContentItemAudio? value) => new MultimodalContentItem(value);
+
///
///
///
@@ -230,6 +245,11 @@ public MultimodalContentItem(global::ZAI.MultimodalContentItemVideo? value)
Video = value;
}
+ ///
+ ///
+ ///
+ public static MultimodalContentItem FromVideo(global::ZAI.MultimodalContentItemVideo? value) => new MultimodalContentItem(value);
+
///
///
///
@@ -248,6 +268,11 @@ public MultimodalContentItem(global::ZAI.MultimodalContentItemFile? value)
File = value;
}
+ ///
+ ///
+ ///
+ public static MultimodalContentItem FromFile(global::ZAI.MultimodalContentItemFile? value) => new MultimodalContentItem(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.SpecialEffectsVideosAgentResponse.g.cs b/src/libs/ZAI/Generated/ZAI.Models.SpecialEffectsVideosAgentResponse.g.cs
index ee9f5ad..1143a00 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.SpecialEffectsVideosAgentResponse.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.SpecialEffectsVideosAgentResponse.g.cs
@@ -86,6 +86,11 @@ public SpecialEffectsVideosAgentResponse(global::ZAI.SpecialEffectsVideosAgentRe
SpecialEffectsVideosAgentResponseVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static SpecialEffectsVideosAgentResponse FromSpecialEffectsVideosAgentResponseVariant1(global::ZAI.SpecialEffectsVideosAgentResponseVariant1? value) => new SpecialEffectsVideosAgentResponse(value);
+
///
///
///
@@ -104,6 +109,11 @@ public SpecialEffectsVideosAgentResponse(global::ZAI.SpecialEffectsVideosAgentEr
Error = value;
}
+ ///
+ ///
+ ///
+ public static SpecialEffectsVideosAgentResponse FromError(global::ZAI.SpecialEffectsVideosAgentError? value) => new SpecialEffectsVideosAgentResponse(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.ViduFrames2VideoRequest.g.cs b/src/libs/ZAI/Generated/ZAI.Models.ViduFrames2VideoRequest.g.cs
index 915789b..856d13f 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.ViduFrames2VideoRequest.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.ViduFrames2VideoRequest.g.cs
@@ -86,6 +86,11 @@ public ViduFrames2VideoRequest(global::ZAI.ViduFrames2VideoRequestVariant1? valu
ViduFrames2VideoRequestVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static ViduFrames2VideoRequest FromViduFrames2VideoRequestVariant1(global::ZAI.ViduFrames2VideoRequestVariant1? value) => new ViduFrames2VideoRequest(value);
+
///
///
///
@@ -104,6 +109,11 @@ public ViduFrames2VideoRequest(global::ZAI.VideoCommonRequest? value)
Common = value;
}
+ ///
+ ///
+ ///
+ public static ViduFrames2VideoRequest FromCommon(global::ZAI.VideoCommonRequest? value) => new ViduFrames2VideoRequest(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.ViduImage2VideoRequest.g.cs b/src/libs/ZAI/Generated/ZAI.Models.ViduImage2VideoRequest.g.cs
index cb81c09..c1015a9 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.ViduImage2VideoRequest.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.ViduImage2VideoRequest.g.cs
@@ -86,6 +86,11 @@ public ViduImage2VideoRequest(global::ZAI.ViduImage2VideoRequestVariant1? value)
ViduImage2VideoRequestVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static ViduImage2VideoRequest FromViduImage2VideoRequestVariant1(global::ZAI.ViduImage2VideoRequestVariant1? value) => new ViduImage2VideoRequest(value);
+
///
///
///
@@ -104,6 +109,11 @@ public ViduImage2VideoRequest(global::ZAI.VideoCommonRequest? value)
Common = value;
}
+ ///
+ ///
+ ///
+ public static ViduImage2VideoRequest FromCommon(global::ZAI.VideoCommonRequest? value) => new ViduImage2VideoRequest(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.ViduReference2VideoRequest.g.cs b/src/libs/ZAI/Generated/ZAI.Models.ViduReference2VideoRequest.g.cs
index 0affd27..5fa28bd 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.ViduReference2VideoRequest.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.ViduReference2VideoRequest.g.cs
@@ -86,6 +86,11 @@ public ViduReference2VideoRequest(global::ZAI.ViduReference2VideoRequestVariant1
ViduReference2VideoRequestVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static ViduReference2VideoRequest FromViduReference2VideoRequestVariant1(global::ZAI.ViduReference2VideoRequestVariant1? value) => new ViduReference2VideoRequest(value);
+
///
///
///
@@ -104,6 +109,11 @@ public ViduReference2VideoRequest(global::ZAI.VideoCommonRequest? value)
Common = value;
}
+ ///
+ ///
+ ///
+ public static ViduReference2VideoRequest FromCommon(global::ZAI.VideoCommonRequest? value) => new ViduReference2VideoRequest(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.ViduText2VideoRequest.g.cs b/src/libs/ZAI/Generated/ZAI.Models.ViduText2VideoRequest.g.cs
index 502e42e..97dda5a 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.ViduText2VideoRequest.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.ViduText2VideoRequest.g.cs
@@ -86,6 +86,11 @@ public ViduText2VideoRequest(global::ZAI.ViduText2VideoRequestVariant1? value)
ViduText2VideoRequestVariant1 = value;
}
+ ///
+ ///
+ ///
+ public static ViduText2VideoRequest FromViduText2VideoRequestVariant1(global::ZAI.ViduText2VideoRequestVariant1? value) => new ViduText2VideoRequest(value);
+
///
///
///
@@ -104,6 +109,11 @@ public ViduText2VideoRequest(global::ZAI.VideoCommonRequest? value)
Common = value;
}
+ ///
+ ///
+ ///
+ public static ViduText2VideoRequest FromCommon(global::ZAI.VideoCommonRequest? value) => new ViduText2VideoRequest(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.Models.VisionMultimodalContentItem.g.cs b/src/libs/ZAI/Generated/ZAI.Models.VisionMultimodalContentItem.g.cs
index f75607e..e804557 100644
--- a/src/libs/ZAI/Generated/ZAI.Models.VisionMultimodalContentItem.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.Models.VisionMultimodalContentItem.g.cs
@@ -146,6 +146,11 @@ public VisionMultimodalContentItem(global::ZAI.VisionMultimodalContentItemText?
Text = value;
}
+ ///
+ ///
+ ///
+ public static VisionMultimodalContentItem FromText(global::ZAI.VisionMultimodalContentItemText? value) => new VisionMultimodalContentItem(value);
+
///
///
///
@@ -164,6 +169,11 @@ public VisionMultimodalContentItem(global::ZAI.VisionMultimodalContentItemImage?
Image = value;
}
+ ///
+ ///
+ ///
+ public static VisionMultimodalContentItem FromImage(global::ZAI.VisionMultimodalContentItemImage? value) => new VisionMultimodalContentItem(value);
+
///
///
///
@@ -182,6 +192,11 @@ public VisionMultimodalContentItem(global::ZAI.VisionMultimodalContentItemVideo?
Video = value;
}
+ ///
+ ///
+ ///
+ public static VisionMultimodalContentItem FromVideo(global::ZAI.VisionMultimodalContentItemVideo? value) => new VisionMultimodalContentItem(value);
+
///
///
///
@@ -200,6 +215,11 @@ public VisionMultimodalContentItem(global::ZAI.VisionMultimodalContentItemFile?
File = value;
}
+ ///
+ ///
+ ///
+ public static VisionMultimodalContentItem FromFile(global::ZAI.VisionMultimodalContentItemFile? value) => new VisionMultimodalContentItem(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.OneOf.2.g.cs b/src/libs/ZAI/Generated/ZAI.OneOf.2.g.cs
index a4b8c78..0a84997 100644
--- a/src/libs/ZAI/Generated/ZAI.OneOf.2.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.OneOf.2.g.cs
@@ -85,6 +85,11 @@ public OneOf(T1? value)
Value1 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue1(T1? value) => new OneOf(value);
+
///
///
///
@@ -103,6 +108,11 @@ public OneOf(T2? value)
Value2 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue2(T2? value) => new OneOf(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.OneOf.3.g.cs b/src/libs/ZAI/Generated/ZAI.OneOf.3.g.cs
index 2753e9d..80af7d7 100644
--- a/src/libs/ZAI/Generated/ZAI.OneOf.3.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.OneOf.3.g.cs
@@ -115,6 +115,11 @@ public OneOf(T1? value)
Value1 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue1(T1? value) => new OneOf(value);
+
///
///
///
@@ -133,6 +138,11 @@ public OneOf(T2? value)
Value2 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue2(T2? value) => new OneOf(value);
+
///
///
///
@@ -151,6 +161,11 @@ public OneOf(T3? value)
Value3 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue3(T3? value) => new OneOf(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.OneOf.4.g.cs b/src/libs/ZAI/Generated/ZAI.OneOf.4.g.cs
index 1fe0cf0..8dfceaf 100644
--- a/src/libs/ZAI/Generated/ZAI.OneOf.4.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.OneOf.4.g.cs
@@ -145,6 +145,11 @@ public OneOf(T1? value)
Value1 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue1(T1? value) => new OneOf(value);
+
///
///
///
@@ -163,6 +168,11 @@ public OneOf(T2? value)
Value2 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue2(T2? value) => new OneOf(value);
+
///
///
///
@@ -181,6 +191,11 @@ public OneOf(T3? value)
Value3 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue3(T3? value) => new OneOf(value);
+
///
///
///
@@ -199,6 +214,11 @@ public OneOf(T4? value)
Value4 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue4(T4? value) => new OneOf(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.OneOf.5.g.cs b/src/libs/ZAI/Generated/ZAI.OneOf.5.g.cs
index 144e31b..c13c7a8 100644
--- a/src/libs/ZAI/Generated/ZAI.OneOf.5.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.OneOf.5.g.cs
@@ -175,6 +175,11 @@ public OneOf(T1? value)
Value1 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue1(T1? value) => new OneOf(value);
+
///
///
///
@@ -193,6 +198,11 @@ public OneOf(T2? value)
Value2 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue2(T2? value) => new OneOf(value);
+
///
///
///
@@ -211,6 +221,11 @@ public OneOf(T3? value)
Value3 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue3(T3? value) => new OneOf(value);
+
///
///
///
@@ -229,6 +244,11 @@ public OneOf(T4? value)
Value4 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue4(T4? value) => new OneOf(value);
+
///
///
///
@@ -247,6 +267,11 @@ public OneOf(T5? value)
Value5 = value;
}
+ ///
+ ///
+ ///
+ public static OneOf FromValue5(T5? value) => new OneOf(value);
+
///
///
///
diff --git a/src/libs/ZAI/Generated/ZAI.OptionsSupport.g.cs b/src/libs/ZAI/Generated/ZAI.OptionsSupport.g.cs
index 77fc85a..6cd3820 100644
--- a/src/libs/ZAI/Generated/ZAI.OptionsSupport.g.cs
+++ b/src/libs/ZAI/Generated/ZAI.OptionsSupport.g.cs
@@ -54,6 +54,156 @@ public sealed class AutoSDKClientOptions
Hooks.Add(hook ?? throw new global::System.ArgumentNullException(nameof(hook)));
return this;
}
+
+ ///
+ /// Optional per-request authorization provider invoked before each request is sent.
+ /// Set this when the client is registered as a singleton in DI but each call needs
+ /// a fresh credential resolved from a provider, secret-store, or session — instead
+ /// of mutating the shared Authorizations list at construction time.
+ ///
+ public global::ZAI.IAutoSDKAuthorizationProvider? AuthorizationProvider { get; set; }
+
+ ///
+ /// Convenience helper that registers
+ /// using so request-level auth is resolved without
+ /// touching shared client state.
+ ///
+ ///
+ public global::ZAI.AutoSDKClientOptions UseAuthorizationProvider(
+ global::ZAI.IAutoSDKAuthorizationProvider provider)
+ {
+ AuthorizationProvider = provider ?? throw new global::System.ArgumentNullException(nameof(provider));
+ if (Hooks.Find(static x => x is global::ZAI.AutoSDKAuthorizationProviderHook) == null)
+ {
+ Hooks.Add(new global::ZAI.AutoSDKAuthorizationProviderHook());
+ }
+
+ return this;
+ }
+ }
+
+ ///
+ /// A request-level authorization value supplied by .
+ /// Mirrors the runtime fields the SDK applies for HTTP / OAuth2 / API-key auth without
+ /// requiring the consumer to construct the generated EndPointAuthorization type.
+ ///
+ public readonly struct AutoSDKAuthorizationValue
+ {
+ ///
+ /// Initializes a new .
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public AutoSDKAuthorizationValue(
+ string value,
+ string scheme = "Bearer",
+ string? headerName = null,
+ string location = "Header",
+ string type = "Http")
+ {
+ Value = value ?? string.Empty;
+ Scheme = string.IsNullOrWhiteSpace(scheme) ? "Bearer" : scheme;
+ HeaderName = headerName ?? string.Empty;
+ Location = string.IsNullOrWhiteSpace(location) ? "Header" : location;
+ Type = string.IsNullOrWhiteSpace(type) ? "Http" : type;
+ }
+
+ /// The credential value (token, API key, etc.).
+ public string Value { get; }
+
+ /// The HTTP authorization scheme — typically Bearer, Basic, or Token.
+ public string Scheme { get; }
+
+ /// The custom header name when is ApiKey; ignored for HTTP/OAuth2 auth.
+ public string HeaderName { get; }
+
+ /// The credential location — Header, Query, or Cookie.
+ public string Location { get; }
+
+ /// The auth type — Http, OAuth2, OpenIdConnect, or ApiKey.
+ public string Type { get; }
+
+ /// Convenience factory for a Bearer token.
+ public static global::ZAI.AutoSDKAuthorizationValue Bearer(string token) => new(value: token, scheme: "Bearer");
+
+ /// Convenience factory for an API-key header.
+ public static global::ZAI.AutoSDKAuthorizationValue ApiKeyHeader(string name, string value) =>
+ new(value: value, headerName: name, location: "Header", type: "ApiKey");
+ }
+
+ ///
+ /// Resolves request-level authorization values without mutating the shared client
+ /// authorization list. Implementations should be safe to invoke concurrently —
+ /// the hook calls them once per outgoing request.
+ ///
+ public interface IAutoSDKAuthorizationProvider
+ {
+ ///
+ /// Returns one or more values to apply to
+ /// the current request, or an empty list / null to leave the request as-is.
+ ///
+ ///
+ global::System.Threading.Tasks.Task?> ResolveAsync(
+ global::ZAI.AutoSDKHookContext context);
+ }
+
+ ///
+ /// Built-in that consults
+ /// before every outgoing
+ /// request and stamps the resolved values onto the .
+ ///
+ public sealed class AutoSDKAuthorizationProviderHook : global::ZAI.AutoSDKHook
+ {
+ ///
+ public override async global::System.Threading.Tasks.Task OnBeforeRequestAsync(
+ global::ZAI.AutoSDKHookContext context)
+ {
+ context = context ?? throw new global::System.ArgumentNullException(nameof(context));
+
+ var provider = context.ClientOptions?.AuthorizationProvider;
+ if (provider == null || context.Request == null)
+ {
+ return;
+ }
+
+ var resolved = await provider.ResolveAsync(context).ConfigureAwait(false);
+ if (resolved == null || resolved.Count == 0)
+ {
+ return;
+ }
+
+ for (var index = 0; index < resolved.Count; index++)
+ {
+ ApplyAuthorization(context.Request, resolved[index]);
+ }
+ }
+
+ private static void ApplyAuthorization(
+ global::System.Net.Http.HttpRequestMessage request,
+ global::ZAI.AutoSDKAuthorizationValue authorization)
+ {
+ switch (authorization.Type)
+ {
+ case "Http":
+ case "OAuth2":
+ case "OpenIdConnect":
+ request.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue(
+ scheme: authorization.Scheme,
+ parameter: authorization.Value);
+ break;
+ case "ApiKey":
+ if (string.Equals(authorization.Location, "Header", global::System.StringComparison.OrdinalIgnoreCase) &&
+ !string.IsNullOrEmpty(authorization.HeaderName))
+ {
+ request.Headers.Remove(authorization.HeaderName);
+ request.Headers.TryAddWithoutValidation(authorization.HeaderName, authorization.Value ?? string.Empty);
+ }
+ break;
+ }
+ }
}
///