diff --git a/src/libs/Ideogram/Generated/Ideogram.IImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs b/src/libs/Ideogram/Generated/Ideogram.IImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs new file mode 100644 index 00000000..9e868fca --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.IImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs @@ -0,0 +1,125 @@ +#nullable enable + +namespace Ideogram +{ + public partial interface IImagesGenerateClient + { + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task PostGenerateImageV2NanoBanana21Async( + + global::Ideogram.GenerateImageNanoBanana21Request request, + bool? dryRun = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task> PostGenerateImageV2NanoBanana21AsResponseAsync( + + global::Ideogram.GenerateImageNanoBanana21Request request, + bool? dryRun = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// The prompt to generate images from, or the edit instruction to apply when source images are supplied. It is passed to the model as written. + /// + /// + /// Existing upload or generated image assets to edit, by reference. Takes priority over `images` if both are supplied. + /// + /// + /// Optional source images to edit (max 10, max 25MB each; JPEG, PNG, or WEBP). Multipart requests only. + /// + /// + /// Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.
+ /// Default Value: auto + /// + /// + /// The output resolution tier.
+ /// Default Value: 1K + /// + /// + /// The number of images to generate.
+ /// Default Value: 1 + /// + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + /// + /// + /// When false (the default), the request waits until the images are ready and returns them in `data`. When true, the request returns as soon as it is accepted; poll `GET /v2/generations/{generation_id}` with the returned `generation_id` for the result.
+ /// Default Value: false + /// + /// + /// HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a
+ /// JSON POST to this URL once all images for the request have finished
+ /// generating. The body mirrors the synchronous generate response:
+ /// `request_id`, `created`, and a `data` array
+ /// containing every generated image (`url`, `prompt`, `resolution`, `seed`,
+ /// `is_image_safe`). Each delivery is signed with Ed25519 and verifiable
+ /// against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;
+ /// private and loopback hosts and the cloud metadata service are rejected.
+ /// Example: https://api.example.com/webhooks/ideogram + /// + /// + /// When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately. + /// + /// + /// A collection you can write to, by its URL-safe base64 collection id. The output images are added to it when the request completes. + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + global::System.Threading.Tasks.Task PostGenerateImageV2NanoBanana21Async( + string prompt, + bool? dryRun = default, + global::System.Collections.Generic.IList? imageAssetIdentifiers = default, + global::System.Collections.Generic.IList? images = default, + global::Ideogram.NanoBanana21AspectRatio? aspectRatio = default, + global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? resolutionTier = default, + int? numImages = default, + int? seed = default, + bool? async = default, + string? webhookUrl = default, + bool? @private = default, + string? targetCollectionId = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default); + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/Ideogram.ImagesGenerate.JsonSerializerContext.g.cs b/src/libs/Ideogram/Generated/Ideogram.ImagesGenerate.JsonSerializerContext.g.cs index a7b364c3..407fb35d 100644 --- a/src/libs/Ideogram/Generated/Ideogram.ImagesGenerate.JsonSerializerContext.g.cs +++ b/src/libs/Ideogram/Generated/Ideogram.ImagesGenerate.JsonSerializerContext.g.cs @@ -72,6 +72,10 @@ namespace Ideogram [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2Request))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana2AspectRatio), TypeInfoPropertyName = "NanoBanana2AspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier), TypeInfoPropertyName = "GenerateImageNanoBanana2RequestResolutionTier2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21Response))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21Request))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana21AspectRatio), TypeInfoPropertyName = "NanoBanana21AspectRatio2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier), TypeInfoPropertyName = "GenerateImageNanoBanana21RequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProResponse))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProRequest))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBananaProAspectRatio), TypeInfoPropertyName = "NanoBananaProAspectRatio2")] @@ -131,6 +135,8 @@ namespace Ideogram [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageIdeogram45RequestQuality?), TypeInfoPropertyName = "NullableGenerateImageIdeogram45RequestQuality2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana2AspectRatio?), TypeInfoPropertyName = "NullableNanoBanana2AspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBanana2RequestResolutionTier2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana21AspectRatio?), TypeInfoPropertyName = "NullableNanoBanana21AspectRatio2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBanana21RequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBananaProAspectRatio?), TypeInfoPropertyName = "NullableNanoBananaProAspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBananaProRequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageGptImage25FlareRequestBackground?), TypeInfoPropertyName = "NullableGenerateImageGptImage25FlareRequestBackground2")] @@ -272,6 +278,10 @@ public override bool CanConvert(global::System.Type typeToConvert) || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier?) + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier) + + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?) + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier) || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier?) @@ -360,6 +370,10 @@ public override bool CanConvert(global::System.Type typeToConvert) || typeToConvert == typeof(global::Ideogram.NanoBanana2AspectRatio?) + || typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio) + + || typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio?) + || typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio) || typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio?) @@ -503,6 +517,16 @@ public override bool CanConvert(global::System.Type typeToConvert) return new global::Ideogram.JsonConverters.GenerateImageNanoBanana2RequestResolutionTierNullableJsonConverter(); } + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier)) + { + return new global::Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierJsonConverter(); + } + + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?)) + { + return new global::Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierNullableJsonConverter(); + } + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier)) { return new global::Ideogram.JsonConverters.GenerateImageNanoBananaProRequestResolutionTierJsonConverter(); @@ -723,6 +747,16 @@ public override bool CanConvert(global::System.Type typeToConvert) return new global::Ideogram.JsonConverters.NanoBanana2AspectRatioNullableJsonConverter(); } + if (typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio)) + { + return new global::Ideogram.JsonConverters.NanoBanana21AspectRatioJsonConverter(); + } + + if (typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio?)) + { + return new global::Ideogram.JsonConverters.NanoBanana21AspectRatioNullableJsonConverter(); + } + if (typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio)) { return new global::Ideogram.JsonConverters.NanoBananaProAspectRatioJsonConverter(); diff --git a/src/libs/Ideogram/Generated/Ideogram.ImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs b/src/libs/Ideogram/Generated/Ideogram.ImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs new file mode 100644 index 00000000..6fd2f84c --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.ImagesGenerateClient.PostGenerateImageV2NanoBanana21.g.cs @@ -0,0 +1,885 @@ + +#nullable enable + +namespace Ideogram +{ + public partial class ImagesGenerateClient + { + + + private static readonly global::Ideogram.EndPointSecurityRequirement s_PostGenerateImageV2NanoBanana21SecurityRequirement0 = + new global::Ideogram.EndPointSecurityRequirement + { + Authorizations = new global::Ideogram.EndPointAuthorizationRequirement[] + { new global::Ideogram.EndPointAuthorizationRequirement + { + Type = "Http", + SchemeId = "HttpBearer", + Location = "Header", + Name = "Bearer", + FriendlyName = "Bearer", + }, + }, + }; + private static readonly global::Ideogram.EndPointSecurityRequirement[] s_PostGenerateImageV2NanoBanana21SecurityRequirements = + new global::Ideogram.EndPointSecurityRequirement[] + { s_PostGenerateImageV2NanoBanana21SecurityRequirement0, + }; + partial void PreparePostGenerateImageV2NanoBanana21Arguments( + global::System.Net.Http.HttpClient httpClient, + ref bool? dryRun, + global::Ideogram.GenerateImageNanoBanana21Request request); + partial void PreparePostGenerateImageV2NanoBanana21Request( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpRequestMessage httpRequestMessage, + bool? dryRun, + global::Ideogram.GenerateImageNanoBanana21Request request); + partial void ProcessPostGenerateImageV2NanoBanana21Response( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage); + + partial void ProcessPostGenerateImageV2NanoBanana21ResponseContent( + global::System.Net.Http.HttpClient httpClient, + global::System.Net.Http.HttpResponseMessage httpResponseMessage, + ref string content); + + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task PostGenerateImageV2NanoBanana21Async( + + global::Ideogram.GenerateImageNanoBanana21Request request, + bool? dryRun = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __response = await PostGenerateImageV2NanoBanana21AsResponseAsync( + + request: request, + dryRun: dryRun, + requestOptions: requestOptions, + cancellationToken: cancellationToken + ).ConfigureAwait(false); + + return __response.Body; + } + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task> PostGenerateImageV2NanoBanana21AsResponseAsync( + + global::Ideogram.GenerateImageNanoBanana21Request request, + bool? dryRun = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + request = request ?? throw new global::System.ArgumentNullException(nameof(request)); + + PrepareArguments( + client: HttpClient); + PreparePostGenerateImageV2NanoBanana21Arguments( + httpClient: HttpClient, + dryRun: ref dryRun, + request: request); + + + var __authorizations = global::Ideogram.EndPointSecurityResolver.ResolveAuthorizations( + availableAuthorizations: Authorizations, + securityRequirements: s_PostGenerateImageV2NanoBanana21SecurityRequirements, + operationName: "PostGenerateImageV2NanoBanana21Async"); + + using var __timeoutCancellationTokenSource = global::Ideogram.AutoSDKRequestOptionsSupport.CreateTimeoutCancellationTokenSource( + clientOptions: Options, + requestOptions: requestOptions, + cancellationToken: cancellationToken); + var __effectiveCancellationToken = __timeoutCancellationTokenSource?.Token ?? cancellationToken; + var __effectiveReadResponseAsString = global::Ideogram.AutoSDKRequestOptionsSupport.GetReadResponseAsString( + clientOptions: Options, + requestOptions: requestOptions, + fallbackValue: ReadResponseAsString); + var __maxAttempts = global::Ideogram.AutoSDKRequestOptionsSupport.GetMaxAttempts( + clientOptions: Options, + requestOptions: requestOptions, + supportsRetry: false); + + global::System.Net.Http.HttpRequestMessage __CreateHttpRequest() + { + + var __pathBuilder = new global::Ideogram.PathBuilder( + path: "/v2/image/generate/nano-banana-2-1", + baseUri: HttpClient.BaseAddress); + __pathBuilder + .AddOptionalParameter("dry_run", dryRun?.ToString().ToLowerInvariant()) + ; + var __path = __pathBuilder.ToString(); + __path = global::Ideogram.AutoSDKRequestOptionsSupport.AppendQueryParameters( + path: __path, + clientParameters: Options.QueryParameters, + requestParameters: requestOptions?.QueryParameters); + var __httpRequest = new global::System.Net.Http.HttpRequestMessage( + method: global::System.Net.Http.HttpMethod.Post, + requestUri: new global::System.Uri(__path, global::System.UriKind.RelativeOrAbsolute)); +#if NET6_0_OR_GREATER + __httpRequest.Version = global::System.Net.HttpVersion.Version11; + __httpRequest.VersionPolicy = global::System.Net.Http.HttpVersionPolicy.RequestVersionOrHigher; +#endif + + foreach (var __authorization in __authorizations) + { + if (__authorization.Type == "Http" || + __authorization.Type == "OAuth2" || + __authorization.Type == "OpenIdConnect") + { + __httpRequest.Headers.Authorization = new global::System.Net.Http.Headers.AuthenticationHeaderValue( + scheme: __authorization.Name, + parameter: __authorization.Value); + } + else if (__authorization.Type == "ApiKey" && + __authorization.Location == "Header") + { + __httpRequest.Headers.Add(__authorization.Name, __authorization.Value); + } + } + + var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.Prompt ?? string.Empty), + name: "\"prompt\""); + + if (request.ImageAssetIdentifiers != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent($"[{string.Join(",", global::System.Linq.Enumerable.Select(request.ImageAssetIdentifiers!, x => x.ToJson(JsonSerializerContext)))}]"), + name: "\"image_asset_identifiers\""); + + } + if (request.Images != default) + { + + for (var __iImages = 0; __iImages < request.Images.Count; __iImages++) + { + var __contentImages = new global::System.Net.Http.ByteArrayContent(request.Images[__iImages]); + __contentImages.Headers.ContentType = new global::System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); + __httpRequestContent.Add( + content: __contentImages, + name: "\"images\"", + fileName: $"\"file{__iImages}.bin\""); + if (__contentImages.Headers.ContentDisposition != null) + { + __contentImages.Headers.ContentDisposition.FileNameStar = null; + } + } + + } + if (request.AspectRatio != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent((request.AspectRatio).HasValue ? (request.AspectRatio).GetValueOrDefault().ToValueString() : string.Empty), + name: "\"aspect_ratio\""); + + } + if (request.ResolutionTier != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent((request.ResolutionTier).HasValue ? (request.ResolutionTier).GetValueOrDefault().ToValueString() : string.Empty), + name: "\"resolution_tier\""); + + } + if (request.NumImages != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(global::System.Convert.ToString(request.NumImages, global::System.Globalization.CultureInfo.InvariantCulture) ?? string.Empty), + name: "\"num_images\""); + + } + if (request.Seed != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(global::System.Convert.ToString(request.Seed, global::System.Globalization.CultureInfo.InvariantCulture) ?? string.Empty), + name: "\"seed\""); + + } + if (request.Async != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent((global::System.Convert.ToString(request.Async, global::System.Globalization.CultureInfo.InvariantCulture) ?? string.Empty).ToLowerInvariant()), + name: "\"async\""); + + } + if (request.WebhookUrl != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.WebhookUrl ?? string.Empty), + name: "\"webhook_url\""); + + } + if (request.Private != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent((global::System.Convert.ToString(request.Private, global::System.Globalization.CultureInfo.InvariantCulture) ?? string.Empty).ToLowerInvariant()), + name: "\"private\""); + + } + if (request.TargetCollectionId != default) + { + + __httpRequestContent.Add( + content: new global::System.Net.Http.StringContent(request.TargetCollectionId ?? string.Empty), + name: "\"target_collection_id\""); + + } + + __httpRequest.Content = __httpRequestContent; + + global::Ideogram.AutoSDKRequestOptionsSupport.ApplyHeaders( + request: __httpRequest, + clientHeaders: Options.Headers, + requestHeaders: requestOptions?.Headers); + + PrepareRequest( + client: HttpClient, + request: __httpRequest); + PreparePostGenerateImageV2NanoBanana21Request( + httpClient: HttpClient, + httpRequestMessage: __httpRequest, + dryRun: dryRun, + request: request); + + return __httpRequest; + } + + global::System.Net.Http.HttpRequestMessage? __httpRequest = null; + global::System.Net.Http.HttpResponseMessage? __response = null; + var __attemptNumber = 0; + try + { + for (var __attempt = 1; __attempt <= __maxAttempts; __attempt++) + { + __attemptNumber = __attempt; + __httpRequest = __CreateHttpRequest(); + await global::Ideogram.AutoSDKRequestOptionsSupport.OnBeforeRequestAsync( + clientOptions: Options, + context: global::Ideogram.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PostGenerateImageV2NanoBanana21", + methodName: "PostGenerateImageV2NanoBanana21Async", + pathTemplate: "\"/v2/image/generate/nano-banana-2-1\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest ?? throw new global::System.InvalidOperationException("The HTTP request was not created before invoking a request hook."), + response: null, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + try + { + __response = await HttpClient.SendAsync( + request: __httpRequest, + completionOption: global::System.Net.Http.HttpCompletionOption.ResponseContentRead, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + } + catch (global::System.Net.Http.HttpRequestException __exception) + { + var __retryDelay = global::Ideogram.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: null, + attempt: __attempt); + var __willRetry = __attempt < __maxAttempts && !__effectiveCancellationToken.IsCancellationRequested; + await global::Ideogram.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Ideogram.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PostGenerateImageV2NanoBanana21", + methodName: "PostGenerateImageV2NanoBanana21Async", + pathTemplate: "\"/v2/image/generate/nano-banana-2-1\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest ?? throw new global::System.InvalidOperationException("The HTTP request was not created before invoking a request hook."), + response: null, + exception: __exception, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: __willRetry, + retryDelay: __willRetry ? __retryDelay : (global::System.TimeSpan?)null, + retryReason: "exception", + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + if (!__willRetry) + { + throw; + } + + __httpRequest.Dispose(); + __httpRequest = null; + await global::Ideogram.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + if (__response != null && + __attempt < __maxAttempts && + global::Ideogram.AutoSDKRequestOptionsSupport.ShouldRetryStatusCode(__response.StatusCode)) + { + var __retryDelay = global::Ideogram.AutoSDKRequestOptionsSupport.GetRetryDelay( + clientOptions: Options, + requestOptions: requestOptions, + response: __response, + attempt: __attempt); + await global::Ideogram.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Ideogram.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PostGenerateImageV2NanoBanana21", + methodName: "PostGenerateImageV2NanoBanana21Async", + pathTemplate: "\"/v2/image/generate/nano-banana-2-1\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest ?? throw new global::System.InvalidOperationException("The HTTP request was not created before invoking a request hook."), + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attempt, + maxAttempts: __maxAttempts, + willRetry: true, + retryDelay: __retryDelay, + retryReason: "status:" + ((int)__response.StatusCode).ToString(global::System.Globalization.CultureInfo.InvariantCulture), + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + __response.Dispose(); + __response = null; + __httpRequest.Dispose(); + __httpRequest = null; + await global::Ideogram.AutoSDKRequestOptionsSupport.DelayBeforeRetryAsync( + retryDelay: __retryDelay, + cancellationToken: __effectiveCancellationToken).ConfigureAwait(false); + continue; + } + + break; + } + + if (__response == null) + { + throw new global::System.InvalidOperationException("No response received."); + } + + using (__response) + { + + ProcessResponse( + client: HttpClient, + response: __response); + ProcessPostGenerateImageV2NanoBanana21Response( + httpClient: HttpClient, + httpResponseMessage: __response); + if (__response.IsSuccessStatusCode) + { + await global::Ideogram.AutoSDKRequestOptionsSupport.OnAfterSuccessAsync( + clientOptions: Options, + context: global::Ideogram.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PostGenerateImageV2NanoBanana21", + methodName: "PostGenerateImageV2NanoBanana21Async", + pathTemplate: "\"/v2/image/generate/nano-banana-2-1\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest ?? throw new global::System.InvalidOperationException("The HTTP request was not created before invoking a request hook."), + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + else + { + await global::Ideogram.AutoSDKRequestOptionsSupport.OnAfterErrorAsync( + clientOptions: Options, + context: global::Ideogram.AutoSDKRequestOptionsSupport.CreateHookContext( + operationId: "PostGenerateImageV2NanoBanana21", + methodName: "PostGenerateImageV2NanoBanana21Async", + pathTemplate: "\"/v2/image/generate/nano-banana-2-1\"", + httpMethod: "POST", + baseUri: BaseUri, + request: __httpRequest ?? throw new global::System.InvalidOperationException("The HTTP request was not created before invoking a request hook."), + response: __response, + exception: null, + clientOptions: Options, + requestOptions: requestOptions, + attempt: __attemptNumber, + maxAttempts: __maxAttempts, + willRetry: false, + retryDelay: null, + retryReason: global::System.String.Empty, + cancellationToken: __effectiveCancellationToken)).ConfigureAwait(false); + } + // + if ((int)__response.StatusCode == 400) + { + string? __content_400 = null; + global::System.Exception? __exception_400 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_400 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_400 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_400 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_400, + responseBody: __content_400, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + // + if ((int)__response.StatusCode == 401) + { + string? __content_401 = null; + global::System.Exception? __exception_401 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_401 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_401 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_401 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_401 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_401, + responseBody: __content_401, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + // Insufficient credits or quota. + if ((int)__response.StatusCode == 402) + { + string? __content_402 = null; + global::System.Exception? __exception_402 = null; + global::Ideogram.GenerationErrorResponse? __value_402 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_402 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_402 = global::Ideogram.GenerationErrorResponse.FromJson(__content_402, JsonSerializerContext); + } + else + { + __content_402 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_402 = global::Ideogram.GenerationErrorResponse.FromJson(__content_402, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_402 = __ex; + } + + + throw global::Ideogram.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 ((int)__response.StatusCode == 422) + { + string? __content_422 = null; + global::System.Exception? __exception_422 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_422 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_422 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_422 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_422 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_422, + responseBody: __content_422, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + // Too many requests. + if ((int)__response.StatusCode == 429) + { + string? __content_429 = null; + global::System.Exception? __exception_429 = null; + global::Ideogram.GenerationErrorResponse? __value_429 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_429 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + __value_429 = global::Ideogram.GenerationErrorResponse.FromJson(__content_429, JsonSerializerContext); + } + else + { + __content_429 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + + __value_429 = global::Ideogram.GenerationErrorResponse.FromJson(__content_429, JsonSerializerContext); + } + } + catch (global::System.Exception __ex) + { + __exception_429 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_429 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_429, + responseBody: __content_429, + responseObject: __value_429, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + // + if ((int)__response.StatusCode == 500) + { + string? __content_500 = null; + global::System.Exception? __exception_500 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_500 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_500 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_500 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_500 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_500, + responseBody: __content_500, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + // + if ((int)__response.StatusCode == 503) + { + string? __content_503 = null; + global::System.Exception? __exception_503 = null; + try + { + if (__effectiveReadResponseAsString) + { + __content_503 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + else + { + __content_503 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false); + } + } + catch (global::System.Exception __ex) + { + __exception_503 = __ex; + } + + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content_503 ?? __response.ReasonPhrase ?? string.Empty, + innerException: __exception_503, + responseBody: __content_503, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + + if (__effectiveReadResponseAsString) + { + var __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + ProcessResponseContent( + client: HttpClient, + response: __response, + content: ref __content); + ProcessPostGenerateImageV2NanoBanana21ResponseContent( + httpClient: HttpClient, + httpResponseMessage: __response, + content: ref __content); + + try + { + __response.EnsureSuccessStatusCode(); + + var __value = global::Ideogram.GenerateImageNanoBanana21Response.FromJson(__content, JsonSerializerContext) ?? + throw new global::System.InvalidOperationException($"Response deserialization failed for \"{__content}\" "); + return new global::Ideogram.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Ideogram.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + responseBody: __content, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + } + else + { + try + { + __response.EnsureSuccessStatusCode(); + using var __content = await __response.Content.ReadAsStreamAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + + var __value = await global::Ideogram.GenerateImageNanoBanana21Response.FromJsonStreamAsync(__content, JsonSerializerContext).ConfigureAwait(false) ?? + throw new global::System.InvalidOperationException("Response deserialization failed."); + return new global::Ideogram.AutoSDKHttpResponse( + statusCode: __response.StatusCode, + headers: global::Ideogram.AutoSDKHttpResponse.CreateHeaders(__response), + requestUri: __response.RequestMessage?.RequestUri, + body: __value); + } + catch (global::System.Exception __ex) + { + string? __content = null; + try + { + __content = await __response.Content.ReadAsStringAsync( + #if NET5_0_OR_GREATER + __effectiveCancellationToken + #endif + ).ConfigureAwait(false); + } + catch (global::System.Exception) + { + } + + throw global::Ideogram.ApiException.Create( + statusCode: __response.StatusCode, + message: __content ?? __response.ReasonPhrase ?? string.Empty, + innerException: __ex, + responseBody: __content, + responseHeaders: global::System.Linq.Enumerable.ToDictionary( + __response.Headers, + h => h.Key, + h => h.Value)); + } + } + + } + } + finally + { + __httpRequest?.Dispose(); + } + } + /// + /// Generate with Nano Banana 2.1
+ /// Generate images with Nano Banana 2.1. Optionally upload source images as
+ /// `images` using `multipart/form-data` to edit them with the prompt.
+ /// Returns results directly by default; set `async` or supply a
+ /// `webhook_url` to get a `generation_id` and poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ /// + /// Default Value: false + /// + /// + /// The prompt to generate images from, or the edit instruction to apply when source images are supplied. It is passed to the model as written. + /// + /// + /// Existing upload or generated image assets to edit, by reference. Takes priority over `images` if both are supplied. + /// + /// + /// Optional source images to edit (max 10, max 25MB each; JPEG, PNG, or WEBP). Multipart requests only. + /// + /// + /// Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.
+ /// Default Value: auto + /// + /// + /// The output resolution tier.
+ /// Default Value: 1K + /// + /// + /// The number of images to generate.
+ /// Default Value: 1 + /// + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + /// + /// + /// When false (the default), the request waits until the images are ready and returns them in `data`. When true, the request returns as soon as it is accepted; poll `GET /v2/generations/{generation_id}` with the returned `generation_id` for the result.
+ /// Default Value: false + /// + /// + /// HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a
+ /// JSON POST to this URL once all images for the request have finished
+ /// generating. The body mirrors the synchronous generate response:
+ /// `request_id`, `created`, and a `data` array
+ /// containing every generated image (`url`, `prompt`, `resolution`, `seed`,
+ /// `is_image_safe`). Each delivery is signed with Ed25519 and verifiable
+ /// against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;
+ /// private and loopback hosts and the cloud metadata service are rejected.
+ /// Example: https://api.example.com/webhooks/ideogram + /// + /// + /// When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately. + /// + /// + /// A collection you can write to, by its URL-safe base64 collection id. The output images are added to it when the request completes. + /// + /// Per-request overrides such as headers, query parameters, timeout, retries, and response buffering. + /// The token to cancel the operation with + /// + public async global::System.Threading.Tasks.Task PostGenerateImageV2NanoBanana21Async( + string prompt, + bool? dryRun = default, + global::System.Collections.Generic.IList? imageAssetIdentifiers = default, + global::System.Collections.Generic.IList? images = default, + global::Ideogram.NanoBanana21AspectRatio? aspectRatio = default, + global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? resolutionTier = default, + int? numImages = default, + int? seed = default, + bool? async = default, + string? webhookUrl = default, + bool? @private = default, + string? targetCollectionId = default, + global::Ideogram.AutoSDKRequestOptions? requestOptions = default, + global::System.Threading.CancellationToken cancellationToken = default) + { + var __request = new global::Ideogram.GenerateImageNanoBanana21Request + { + Prompt = prompt, + ImageAssetIdentifiers = imageAssetIdentifiers, + Images = images, + AspectRatio = aspectRatio, + ResolutionTier = resolutionTier, + NumImages = numImages, + Seed = seed, + Async = async, + WebhookUrl = webhookUrl, + Private = @private, + TargetCollectionId = targetCollectionId, + }; + + return await PostGenerateImageV2NanoBanana21Async( + dryRun: dryRun, + request: __request, + requestOptions: requestOptions, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTier.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTier.g.cs new file mode 100644 index 00000000..0a1bdce0 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTier.g.cs @@ -0,0 +1,53 @@ +#nullable enable + +namespace Ideogram.JsonConverters +{ + /// + public sealed class GenerateImageNanoBanana21RequestResolutionTierJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier 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::Ideogram.GenerateImageNanoBanana21RequestResolutionTierExtensions.ToEnum(stringValue) ?? default; + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier)numValue; + } + case global::System.Text.Json.JsonTokenType.Null: + { + return default(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier); + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + writer.WriteStringValue(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTierExtensions.ToValueString(value)); + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierNullable.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierNullable.g.cs new file mode 100644 index 00000000..8d8bb38f --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierNullable.g.cs @@ -0,0 +1,60 @@ +#nullable enable + +namespace Ideogram.JsonConverters +{ + /// + public sealed class GenerateImageNanoBanana21RequestResolutionTierNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? 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::Ideogram.GenerateImageNanoBanana21RequestResolutionTierExtensions.ToEnum(stringValue); + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier)numValue; + } + case global::System.Text.Json.JsonTokenType.Null: + { + return default(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?); + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? 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::Ideogram.GenerateImageNanoBanana21RequestResolutionTierExtensions.ToValueString(value.Value)); + } + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatio.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatio.g.cs new file mode 100644 index 00000000..dfb6b873 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatio.g.cs @@ -0,0 +1,53 @@ +#nullable enable + +namespace Ideogram.JsonConverters +{ + /// + public sealed class NanoBanana21AspectRatioJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Ideogram.NanoBanana21AspectRatio 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::Ideogram.NanoBanana21AspectRatioExtensions.ToEnum(stringValue) ?? default; + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Ideogram.NanoBanana21AspectRatio)numValue; + } + case global::System.Text.Json.JsonTokenType.Null: + { + return default(global::Ideogram.NanoBanana21AspectRatio); + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Ideogram.NanoBanana21AspectRatio value, + global::System.Text.Json.JsonSerializerOptions options) + { + writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer)); + + writer.WriteStringValue(global::Ideogram.NanoBanana21AspectRatioExtensions.ToValueString(value)); + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatioNullable.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatioNullable.g.cs new file mode 100644 index 00000000..37a27c24 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.JsonConverters.NanoBanana21AspectRatioNullable.g.cs @@ -0,0 +1,60 @@ +#nullable enable + +namespace Ideogram.JsonConverters +{ + /// + public sealed class NanoBanana21AspectRatioNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter + { + /// + public override global::Ideogram.NanoBanana21AspectRatio? 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::Ideogram.NanoBanana21AspectRatioExtensions.ToEnum(stringValue); + } + + break; + } + case global::System.Text.Json.JsonTokenType.Number: + { + var numValue = reader.GetInt32(); + return (global::Ideogram.NanoBanana21AspectRatio)numValue; + } + case global::System.Text.Json.JsonTokenType.Null: + { + return default(global::Ideogram.NanoBanana21AspectRatio?); + } + default: + throw new global::System.ArgumentOutOfRangeException(nameof(reader)); + } + + return default; + } + + /// + public override void Write( + global::System.Text.Json.Utf8JsonWriter writer, + global::Ideogram.NanoBanana21AspectRatio? 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::Ideogram.NanoBanana21AspectRatioExtensions.ToValueString(value.Value)); + } + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContext.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContext.g.cs index 2467a220..78699016 100644 --- a/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContext.g.cs +++ b/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContext.g.cs @@ -428,6 +428,10 @@ namespace Ideogram [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2Request))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana2AspectRatio), TypeInfoPropertyName = "NanoBanana2AspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier), TypeInfoPropertyName = "GenerateImageNanoBanana2RequestResolutionTier2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21Response))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21Request))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana21AspectRatio), TypeInfoPropertyName = "NanoBanana21AspectRatio2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier), TypeInfoPropertyName = "GenerateImageNanoBanana21RequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProResponse))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProRequest))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBananaProAspectRatio), TypeInfoPropertyName = "NanoBananaProAspectRatio2")] @@ -505,10 +509,6 @@ namespace Ideogram [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.PostApiSubscriptionResponse))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.PostApiSubscriptionError))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.PostApiSubscriptionRequest))] - [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.ManageApiCreditSummaryResponse))] - [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::System.Collections.Generic.IList))] - [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.CreditGrant))] - [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GetApiKeysResponse))] internal sealed partial class SourceGenerationContextChunk0 : global::System.Text.Json.Serialization.JsonSerializerContext { } @@ -519,6 +519,10 @@ internal sealed partial class SourceGenerationContextChunk0 : global::System.Tex [global::System.Text.Json.Serialization.JsonSourceGenerationOptions( DefaultIgnoreCondition = global::System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull )] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.ManageApiCreditSummaryResponse))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::System.Collections.Generic.IList))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.CreditGrant))] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GetApiKeysResponse))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::System.Collections.Generic.IList))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.RedactedApiKey))] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.PostApiKeyResponse))] @@ -819,6 +823,8 @@ internal sealed partial class SourceGenerationContextChunk0 : global::System.Tex [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.PreciseEditImageIdeogram45RequestQuality?), TypeInfoPropertyName = "NullablePreciseEditImageIdeogram45RequestQuality2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana2AspectRatio?), TypeInfoPropertyName = "NullableNanoBanana2AspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBanana2RequestResolutionTier2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBanana21AspectRatio?), TypeInfoPropertyName = "NullableNanoBanana21AspectRatio2")] + [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBanana21RequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.NanoBananaProAspectRatio?), TypeInfoPropertyName = "NullableNanoBananaProAspectRatio2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier?), TypeInfoPropertyName = "NullableGenerateImageNanoBananaProRequestResolutionTier2")] [global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Ideogram.GenerateImageGptImage25FlareRequestBackground?), TypeInfoPropertyName = "NullableGenerateImageGptImage25FlareRequestBackground2")] @@ -1414,6 +1420,10 @@ public override bool CanConvert(global::System.Type typeToConvert) || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana2RequestResolutionTier?) + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier) + + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?) + || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier) || typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier?) @@ -1742,6 +1752,10 @@ public override bool CanConvert(global::System.Type typeToConvert) || typeToConvert == typeof(global::Ideogram.NanoBanana2AspectRatio?) + || typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio) + + || typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio?) + || typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio) || typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio?) @@ -2771,6 +2785,16 @@ public override bool CanConvert(global::System.Type typeToConvert) return new global::Ideogram.JsonConverters.GenerateImageNanoBanana2RequestResolutionTierNullableJsonConverter(); } + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier)) + { + return new global::Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierJsonConverter(); + } + + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier?)) + { + return new global::Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierNullableJsonConverter(); + } + if (typeToConvert == typeof(global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier)) { return new global::Ideogram.JsonConverters.GenerateImageNanoBananaProRequestResolutionTierJsonConverter(); @@ -3591,6 +3615,16 @@ public override bool CanConvert(global::System.Type typeToConvert) return new global::Ideogram.JsonConverters.NanoBanana2AspectRatioNullableJsonConverter(); } + if (typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio)) + { + return new global::Ideogram.JsonConverters.NanoBanana21AspectRatioJsonConverter(); + } + + if (typeToConvert == typeof(global::Ideogram.NanoBanana21AspectRatio?)) + { + return new global::Ideogram.JsonConverters.NanoBanana21AspectRatioNullableJsonConverter(); + } + if (typeToConvert == typeof(global::Ideogram.NanoBananaProAspectRatio)) { return new global::Ideogram.JsonConverters.NanoBananaProAspectRatioJsonConverter(); diff --git a/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContextTypes.g.cs b/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContextTypes.g.cs index cbf4188d..8dd83f22 100644 --- a/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContextTypes.g.cs +++ b/src/libs/Ideogram/Generated/Ideogram.JsonSerializerContextTypes.g.cs @@ -1697,967 +1697,983 @@ public sealed partial class JsonSerializerContextTypes /// /// /// - public global::Ideogram.GenerateImageNanoBananaProResponse? Type416 { get; set; } + public global::Ideogram.GenerateImageNanoBanana21Response? Type416 { get; set; } /// /// /// - public global::Ideogram.GenerateImageNanoBananaProRequest? Type417 { get; set; } + public global::Ideogram.GenerateImageNanoBanana21Request? Type417 { get; set; } /// /// /// - public global::Ideogram.NanoBananaProAspectRatio? Type418 { get; set; } + public global::Ideogram.NanoBanana21AspectRatio? Type418 { get; set; } /// /// /// - public global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier? Type419 { get; set; } + public global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? Type419 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage2Response? Type420 { get; set; } + public global::Ideogram.GenerateImageNanoBananaProResponse? Type420 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage2Request? Type421 { get; set; } + public global::Ideogram.GenerateImageNanoBananaProRequest? Type421 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25FlareResponse? Type422 { get; set; } + public global::Ideogram.NanoBananaProAspectRatio? Type422 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25FlareRequest? Type423 { get; set; } + public global::Ideogram.GenerateImageNanoBananaProRequestResolutionTier? Type423 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25FlareRequestBackground? Type424 { get; set; } + public global::Ideogram.GenerateImageGptImage2Response? Type424 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25FlareRequestQuality? Type425 { get; set; } + public global::Ideogram.GenerateImageGptImage2Request? Type425 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25SunburstResponse? Type426 { get; set; } + public global::Ideogram.GenerateImageGptImage25FlareResponse? Type426 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25SunburstRequest? Type427 { get; set; } + public global::Ideogram.GenerateImageGptImage25FlareRequest? Type427 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25SunburstRequestBackground? Type428 { get; set; } + public global::Ideogram.GenerateImageGptImage25FlareRequestBackground? Type428 { get; set; } /// /// /// - public global::Ideogram.GenerateImageGptImage25SunburstRequestQuality? Type429 { get; set; } + public global::Ideogram.GenerateImageGptImage25FlareRequestQuality? Type429 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2Response? Type430 { get; set; } + public global::Ideogram.GenerateImageGptImage25SunburstResponse? Type430 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2Request? Type431 { get; set; } + public global::Ideogram.GenerateImageGptImage25SunburstRequest? Type431 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2RequestRenderingSpeed? Type432 { get; set; } + public global::Ideogram.GenerateImageGptImage25SunburstRequestBackground? Type432 { get; set; } /// /// /// - public global::Ideogram.IdeogramV2StyleType? Type433 { get; set; } + public global::Ideogram.GenerateImageGptImage25SunburstRequestQuality? Type433 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2AResponse? Type434 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2Response? Type434 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2ARequest? Type435 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2Request? Type435 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV2ARequestRenderingSpeed? Type436 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2RequestRenderingSpeed? Type436 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3Response? Type437 { get; set; } + public global::Ideogram.IdeogramV2StyleType? Type437 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type438 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2AResponse? Type438 { get; set; } /// /// /// - public global::Ideogram.InpaintedImageObject? Type439 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2ARequest? Type439 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3Request? Type440 { get; set; } + public global::Ideogram.GenerateImageIdeogramV2ARequestRenderingSpeed? Type440 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3RequestRenderingSpeed? Type441 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3Response? Type441 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CustomModelResponse? Type442 { get; set; } + public global::System.Collections.Generic.IList? Type442 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CustomModelRequest? Type443 { get; set; } + public global::Ideogram.InpaintedImageObject? Type443 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CustomModelRequestRenderingSpeed? Type444 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3Request? Type444 { get; set; } /// /// /// - public global::Ideogram.ReframeImageIdeogramV3Response? Type445 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3RequestRenderingSpeed? Type445 { get; set; } /// /// /// - public global::Ideogram.ReframeImageIdeogramV3Request? Type446 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CustomModelResponse? Type446 { get; set; } /// /// /// - public global::Ideogram.ReframeImageIdeogramV3RequestRenderingSpeed? Type447 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CustomModelRequest? Type447 { get; set; } /// /// /// - public global::Ideogram.ReframeImageNanoBanana2Response? Type448 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CustomModelRequestRenderingSpeed? Type448 { get; set; } /// /// /// - public global::Ideogram.ReframeImageNanoBanana2Request? Type449 { get; set; } + public global::Ideogram.ReframeImageIdeogramV3Response? Type449 { get; set; } /// /// /// - public global::Ideogram.NanoBanana2ReframeAspectRatio? Type450 { get; set; } + public global::Ideogram.ReframeImageIdeogramV3Request? Type450 { get; set; } /// /// /// - public global::Ideogram.ReframeImageNanoBananaProResponse? Type451 { get; set; } + public global::Ideogram.ReframeImageIdeogramV3RequestRenderingSpeed? Type451 { get; set; } /// /// /// - public global::Ideogram.ReframeImageNanoBananaProRequest? Type452 { get; set; } + public global::Ideogram.ReframeImageNanoBanana2Response? Type452 { get; set; } /// /// /// - public global::Ideogram.NanoBananaProReframeAspectRatio? Type453 { get; set; } + public global::Ideogram.ReframeImageNanoBanana2Request? Type453 { get; set; } /// /// /// - public global::Ideogram.ReframeImageNanoBananaProRequestResolutionTier? Type454 { get; set; } + public global::Ideogram.NanoBanana2ReframeAspectRatio? Type454 { get; set; } /// /// /// - public global::Ideogram.ReframeImageGptImage25FlareResponse? Type455 { get; set; } + public global::Ideogram.ReframeImageNanoBananaProResponse? Type455 { get; set; } /// /// /// - public global::Ideogram.ReframeImageGptImage25FlareRequest? Type456 { get; set; } + public global::Ideogram.ReframeImageNanoBananaProRequest? Type456 { get; set; } /// /// /// - public global::Ideogram.ReframeImageGptImage25FlareRequestQuality? Type457 { get; set; } + public global::Ideogram.NanoBananaProReframeAspectRatio? Type457 { get; set; } /// /// /// - public global::Ideogram.ReframeImageBriaExpandResponse? Type458 { get; set; } + public global::Ideogram.ReframeImageNanoBananaProRequestResolutionTier? Type458 { get; set; } /// /// /// - public global::Ideogram.ReframeImageBriaExpandRequest? Type459 { get; set; } + public global::Ideogram.ReframeImageGptImage25FlareResponse? Type459 { get; set; } /// /// /// - public global::Ideogram.ReframeImageAutoResponse? Type460 { get; set; } + public global::Ideogram.ReframeImageGptImage25FlareRequest? Type460 { get; set; } /// /// /// - public global::Ideogram.ReframeImageAutoRequest? Type461 { get; set; } + public global::Ideogram.ReframeImageGptImage25FlareRequestQuality? Type461 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV3CharacterResponse? Type462 { get; set; } + public global::Ideogram.ReframeImageBriaExpandResponse? Type462 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV3CharacterRequest? Type463 { get; set; } + public global::Ideogram.ReframeImageBriaExpandRequest? Type463 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV3CharacterRequestRenderingSpeed? Type464 { get; set; } + public global::Ideogram.ReframeImageAutoResponse? Type464 { get; set; } /// /// /// - public global::Ideogram.GenerateImageIdeogramV3CharacterRequestStyleType? Type465 { get; set; } + public global::Ideogram.ReframeImageAutoRequest? Type465 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CharacterResponse? Type466 { get; set; } + public global::Ideogram.GenerateImageIdeogramV3CharacterResponse? Type466 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CharacterRequest? Type467 { get; set; } + public global::Ideogram.GenerateImageIdeogramV3CharacterRequest? Type467 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CharacterRequestRenderingSpeed? Type468 { get; set; } + public global::Ideogram.GenerateImageIdeogramV3CharacterRequestRenderingSpeed? Type468 { get; set; } /// /// /// - public global::Ideogram.InpaintImageIdeogramV3CharacterRequestStyleType? Type469 { get; set; } + public global::Ideogram.GenerateImageIdeogramV3CharacterRequestStyleType? Type469 { get; set; } /// /// /// - public global::Ideogram.GenerateImageV2AutoResponse? Type470 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CharacterResponse? Type470 { get; set; } /// /// /// - public global::Ideogram.GenerateImageV2AutoRequest? Type471 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CharacterRequest? Type471 { get; set; } /// /// /// - public global::Ideogram.GenerateImageV2AutoRequestResolutionTier? Type472 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CharacterRequestRenderingSpeed? Type472 { get; set; } /// /// /// - public global::Ideogram.ToolRemixResponse? Type473 { get; set; } + public global::Ideogram.InpaintImageIdeogramV3CharacterRequestStyleType? Type473 { get; set; } /// /// /// - public global::Ideogram.ToolRemixRequest? Type474 { get; set; } + public global::Ideogram.GenerateImageV2AutoResponse? Type474 { get; set; } /// /// /// - public global::Ideogram.ToolRemixRequestResolutionTier? Type475 { get; set; } + public global::Ideogram.GenerateImageV2AutoRequest? Type475 { get; set; } /// /// /// - public global::Ideogram.ResizeAdImageRequest? Type476 { get; set; } + public global::Ideogram.GenerateImageV2AutoRequestResolutionTier? Type476 { get; set; } /// /// /// - public global::Ideogram.ResizeAdImageRequestResolution? Type477 { get; set; } + public global::Ideogram.ToolRemixResponse? Type477 { get; set; } /// /// /// - public global::Ideogram.ResizeAdImageQuality? Type478 { get; set; } + public global::Ideogram.ToolRemixRequest? Type478 { get; set; } /// /// /// - public global::Ideogram.WebhookSigningJwks? Type479 { get; set; } + public global::Ideogram.ToolRemixRequestResolutionTier? Type479 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type480 { get; set; } + public global::Ideogram.ResizeAdImageRequest? Type480 { get; set; } /// /// /// - public global::Ideogram.WebhookSigningJwk? Type481 { get; set; } + public global::Ideogram.ResizeAdImageRequestResolution? Type481 { get; set; } /// /// /// - public global::Ideogram.ProvenanceVerifyResponse? Type482 { get; set; } + public global::Ideogram.ResizeAdImageQuality? Type482 { get; set; } /// /// /// - public global::Ideogram.ProvenanceVerifyResponseValidationState? Type483 { get; set; } + public global::Ideogram.WebhookSigningJwks? Type483 { get; set; } /// /// /// - public global::Ideogram.ProvenanceVerifyRequest? Type484 { get; set; } + public global::System.Collections.Generic.IList? Type484 { get; set; } /// /// /// - public global::Ideogram.ManageApiSubscriptionResponse? Type485 { get; set; } + public global::Ideogram.WebhookSigningJwk? Type485 { get; set; } /// /// /// - public global::Ideogram.MetronomeLinks? Type486 { get; set; } + public global::Ideogram.ProvenanceVerifyResponse? Type486 { get; set; } /// /// /// - public global::Ideogram.RechargeSettingsResponse? Type487 { get; set; } + public global::Ideogram.ProvenanceVerifyResponseValidationState? Type487 { get; set; } /// /// /// - public global::Ideogram.Price? Type488 { get; set; } + public global::Ideogram.ProvenanceVerifyRequest? Type488 { get; set; } /// /// /// - public global::Ideogram.RechargeSettings? Type489 { get; set; } + public global::Ideogram.ManageApiSubscriptionResponse? Type489 { get; set; } /// /// /// - public global::Ideogram.PostApiSubscriptionResponse? Type490 { get; set; } + public global::Ideogram.MetronomeLinks? Type490 { get; set; } /// /// /// - public global::Ideogram.PostApiSubscriptionError? Type491 { get; set; } + public global::Ideogram.RechargeSettingsResponse? Type491 { get; set; } /// /// /// - public global::Ideogram.PostApiSubscriptionRequest? Type492 { get; set; } + public global::Ideogram.Price? Type492 { get; set; } /// /// /// - public global::Ideogram.ManageApiCreditSummaryResponse? Type493 { get; set; } + public global::Ideogram.RechargeSettings? Type493 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type494 { get; set; } + public global::Ideogram.PostApiSubscriptionResponse? Type494 { get; set; } /// /// /// - public global::Ideogram.CreditGrant? Type495 { get; set; } + public global::Ideogram.PostApiSubscriptionError? Type495 { get; set; } /// /// /// - public global::Ideogram.GetApiKeysResponse? Type496 { get; set; } + public global::Ideogram.PostApiSubscriptionRequest? Type496 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type497 { get; set; } + public global::Ideogram.ManageApiCreditSummaryResponse? Type497 { get; set; } /// /// /// - public global::Ideogram.RedactedApiKey? Type498 { get; set; } + public global::System.Collections.Generic.IList? Type498 { get; set; } /// /// /// - public global::Ideogram.PostApiKeyResponse? Type499 { get; set; } + public global::Ideogram.CreditGrant? Type499 { get; set; } /// /// /// - public global::Ideogram.CreateApiKeyRequest? Type500 { get; set; } + public global::Ideogram.GetApiKeysResponse? Type500 { get; set; } /// /// /// - public global::Ideogram.ApiProfileApiKey? Type501 { get; set; } + public global::System.Collections.Generic.IList? Type501 { get; set; } /// /// /// - public global::Ideogram.ApiKeyStatus? Type502 { get; set; } + public global::Ideogram.RedactedApiKey? Type502 { get; set; } /// /// /// - public global::Ideogram.PatchApiKeyRequest? Type503 { get; set; } + public global::Ideogram.PostApiKeyResponse? Type503 { get; set; } /// /// /// - public global::Ideogram.ManageApiStripeSubscriptionResponse? Type504 { get; set; } + public global::Ideogram.CreateApiKeyRequest? Type504 { get; set; } /// /// /// - public global::Ideogram.ManageApiPaymentResponse? Type505 { get; set; } + public global::Ideogram.ApiProfileApiKey? Type505 { get; set; } /// /// /// - public global::Ideogram.GetApiTermsResponse? Type506 { get; set; } + public global::Ideogram.ApiKeyStatus? Type506 { get; set; } /// /// /// - public global::Ideogram.ApiTerms? Type507 { get; set; } + public global::Ideogram.PatchApiKeyRequest? Type507 { get; set; } /// /// /// - public global::Ideogram.PostApiTermsRequest? Type508 { get; set; } + public global::Ideogram.ManageApiStripeSubscriptionResponse? Type508 { get; set; } /// /// /// - public global::Ideogram.PostAddCreditsResponse? Type509 { get; set; } + public global::Ideogram.ManageApiPaymentResponse? Type509 { get; set; } /// /// /// - public global::Ideogram.PostAddCreditsError? Type510 { get; set; } + public global::Ideogram.GetApiTermsResponse? Type510 { get; set; } /// /// /// - public global::Ideogram.PostAddCreditsRequest? Type511 { get; set; } + public global::Ideogram.ApiTerms? Type511 { get; set; } /// /// /// - public global::Ideogram.GetUserCreditsResponse? Type512 { get; set; } + public global::Ideogram.PostApiTermsRequest? Type512 { get; set; } /// /// /// - public global::Ideogram.SpendCommitInfoResponse? Type513 { get; set; } + public global::Ideogram.PostAddCreditsResponse? Type513 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type514 { get; set; } + public global::Ideogram.PostAddCreditsError? Type514 { get; set; } /// /// /// - public global::Ideogram.SpendCommitInfo? Type515 { get; set; } + public global::Ideogram.PostAddCreditsRequest? Type515 { get; set; } /// /// /// - public global::Ideogram.GetUsageInfoResponse? Type516 { get; set; } + public global::Ideogram.GetUserCreditsResponse? Type516 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type517 { get; set; } + public global::Ideogram.SpendCommitInfoResponse? Type517 { get; set; } /// /// /// - public global::Ideogram.UsageSegment? Type518 { get; set; } + public global::System.Collections.Generic.IList? Type518 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type519 { get; set; } + public global::Ideogram.SpendCommitInfo? Type519 { get; set; } /// /// /// - public global::Ideogram.ToolUsage? Type520 { get; set; } + public global::Ideogram.GetUsageInfoResponse? Type520 { get; set; } /// /// /// - public global::Ideogram.ToolType? Type521 { get; set; } + public global::System.Collections.Generic.IList? Type521 { get; set; } /// /// /// - public global::Ideogram.ModelVersion? Type522 { get; set; } + public global::Ideogram.UsageSegment? Type522 { get; set; } /// /// /// - public global::Ideogram.SegmentBy? Type523 { get; set; } + public global::System.Collections.Generic.IList? Type523 { get; set; } /// /// /// - public global::Ideogram.UsageSource? Type524 { get; set; } + public global::Ideogram.ToolUsage? Type524 { get; set; } /// /// /// - public global::Ideogram.GetApiProfilesResponse? Type525 { get; set; } + public global::Ideogram.ToolType? Type525 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type526 { get; set; } + public global::Ideogram.ModelVersion? Type526 { get; set; } /// /// /// - public global::Ideogram.ApiProfile? Type527 { get; set; } + public global::Ideogram.SegmentBy? Type527 { get; set; } /// /// /// - public global::Ideogram.ApiProfileType? Type528 { get; set; } + public global::Ideogram.UsageSource? Type528 { get; set; } /// /// /// - public global::Ideogram.ApiProfileRole? Type529 { get; set; } + public global::Ideogram.GetApiProfilesResponse? Type529 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type530 { get; set; } + public global::System.Collections.Generic.IList? Type530 { get; set; } /// /// /// - public global::Ideogram.UpdateOrganizationApiPropertiesResponse? Type531 { get; set; } + public global::Ideogram.ApiProfile? Type531 { get; set; } /// /// /// - public global::Ideogram.UpdateOrganizationApiPropertiesRequest? Type532 { get; set; } + public global::Ideogram.ApiProfileType? Type532 { get; set; } /// /// /// - public global::Ideogram.GetApiOrganizationUserSuggestionsResponse? Type533 { get; set; } + public global::Ideogram.ApiProfileRole? Type533 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type534 { get; set; } + public global::System.Collections.Generic.IList? Type534 { get; set; } /// /// /// - public global::Ideogram.ApiOrganizationUserSuggestion? Type535 { get; set; } + public global::Ideogram.UpdateOrganizationApiPropertiesResponse? Type535 { get; set; } /// /// /// - public global::Ideogram.GetOrganizationMembersResponse? Type536 { get; set; } + public global::Ideogram.UpdateOrganizationApiPropertiesRequest? Type536 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type537 { get; set; } + public global::Ideogram.GetApiOrganizationUserSuggestionsResponse? Type537 { get; set; } /// /// /// - public global::Ideogram.OrganizationMember? Type538 { get; set; } + public global::System.Collections.Generic.IList? Type538 { get; set; } /// /// /// - public global::Ideogram.CreateApiKeyResponse? Type539 { get; set; } + public global::Ideogram.ApiOrganizationUserSuggestion? Type539 { get; set; } /// /// /// - public global::Ideogram.GetApiKeysV2Response? Type540 { get; set; } + public global::Ideogram.GetOrganizationMembersResponse? Type540 { get; set; } /// /// /// - public global::Ideogram.OrganizationMemberOperationResponse? Type541 { get; set; } + public global::System.Collections.Generic.IList? Type541 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type542 { get; set; } + public global::Ideogram.OrganizationMember? Type542 { get; set; } /// /// /// - public global::Ideogram.OrganizationMemberOperationResult? Type543 { get; set; } + public global::Ideogram.CreateApiKeyResponse? Type543 { get; set; } /// /// /// - public global::Ideogram.AddOrganizationMembersRequest? Type544 { get; set; } + public global::Ideogram.GetApiKeysV2Response? Type544 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type545 { get; set; } + public global::Ideogram.OrganizationMemberOperationResponse? Type545 { get; set; } /// /// /// - public global::Ideogram.LiteOrganizationMember? Type546 { get; set; } + public global::System.Collections.Generic.IList? Type546 { get; set; } /// /// /// - public global::Ideogram.RemoveOrganizationMembersRequest? Type547 { get; set; } + public global::Ideogram.OrganizationMemberOperationResult? Type547 { get; set; } /// /// /// - public global::Ideogram.PromoteOrganizationAdminsRequest? Type548 { get; set; } + public global::Ideogram.AddOrganizationMembersRequest? Type548 { get; set; } /// /// /// - public global::Ideogram.DemoteOrganizationAdminsRequest? Type549 { get; set; } + public global::System.Collections.Generic.IList? Type549 { get; set; } /// /// /// - public global::Ideogram.CancelOrganizationInviteRequest? Type550 { get; set; } + public global::Ideogram.LiteOrganizationMember? Type550 { get; set; } /// /// /// - public global::Ideogram.ResendOrganizationInviteRequest? Type551 { get; set; } + public global::Ideogram.RemoveOrganizationMembersRequest? Type551 { get; set; } /// /// /// - public global::Ideogram.ListOrganizationInvoicesResponse? Type552 { get; set; } + public global::Ideogram.PromoteOrganizationAdminsRequest? Type552 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type553 { get; set; } + public global::Ideogram.DemoteOrganizationAdminsRequest? Type553 { get; set; } /// /// /// - public global::Ideogram.Invoice? Type554 { get; set; } + public global::Ideogram.CancelOrganizationInviteRequest? Type554 { get; set; } /// /// /// - public global::Ideogram.InvoiceStatus? Type555 { get; set; } + public global::Ideogram.ResendOrganizationInviteRequest? Type555 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type556 { get; set; } + public global::Ideogram.ListOrganizationInvoicesResponse? Type556 { get; set; } /// /// /// - public global::Ideogram.InvoiceLineItem? Type557 { get; set; } + public global::System.Collections.Generic.IList? Type557 { get; set; } /// /// /// - public global::Ideogram.GetOrganizationBillingPortalResponse? Type558 { get; set; } + public global::Ideogram.Invoice? Type558 { get; set; } /// /// /// - public global::Ideogram.ListDatasetsResponse? Type559 { get; set; } + public global::Ideogram.InvoiceStatus? Type559 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type560 { get; set; } + public global::System.Collections.Generic.IList? Type560 { get; set; } /// /// /// - public global::Ideogram.Dataset? Type561 { get; set; } + public global::Ideogram.InvoiceLineItem? Type561 { get; set; } /// /// /// - public global::Ideogram.CreateDatasetRequest? Type562 { get; set; } + public global::Ideogram.GetOrganizationBillingPortalResponse? Type562 { get; set; } /// /// /// - public global::Ideogram.GetDatasetResponse? Type563 { get; set; } + public global::Ideogram.ListDatasetsResponse? Type563 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type564 { get; set; } + public global::System.Collections.Generic.IList? Type564 { get; set; } /// /// /// - public global::Ideogram.DatasetFile? Type565 { get; set; } + public global::Ideogram.Dataset? Type565 { get; set; } /// /// /// - public global::Ideogram.UploadDatasetAssetsResponse? Type566 { get; set; } + public global::Ideogram.CreateDatasetRequest? Type566 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type567 { get; set; } + public global::Ideogram.GetDatasetResponse? Type567 { get; set; } /// /// /// - public global::Ideogram.DatasetUploadSucceededAsset? Type568 { get; set; } + public global::System.Collections.Generic.IList? Type568 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type569 { get; set; } + public global::Ideogram.DatasetFile? Type569 { get; set; } /// /// /// - public global::Ideogram.DatasetUploadFailedAsset? Type570 { get; set; } + public global::Ideogram.UploadDatasetAssetsResponse? Type570 { get; set; } /// /// /// - public global::Ideogram.DatasetAssetFailureReason? Type571 { get; set; } + public global::System.Collections.Generic.IList? Type571 { get; set; } /// /// /// - public global::Ideogram.UploadDatasetAssetsRequest? Type572 { get; set; } + public global::Ideogram.DatasetUploadSucceededAsset? Type572 { get; set; } /// /// /// - public global::Ideogram.TrainDatasetModelResponse? Type573 { get; set; } + public global::System.Collections.Generic.IList? Type573 { get; set; } /// /// /// - public global::Ideogram.TrainDatasetModelRequest? Type574 { get; set; } + public global::Ideogram.DatasetUploadFailedAsset? Type574 { get; set; } /// /// /// - public global::Ideogram.ListModelsResponse? Type575 { get; set; } + public global::Ideogram.DatasetAssetFailureReason? Type575 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type576 { get; set; } + public global::Ideogram.UploadDatasetAssetsRequest? Type576 { get; set; } /// /// /// - public global::Ideogram.CustomModel? Type577 { get; set; } + public global::Ideogram.TrainDatasetModelResponse? Type577 { get; set; } /// /// /// - public global::Ideogram.ModelStatus? Type578 { get; set; } + public global::Ideogram.TrainDatasetModelRequest? Type578 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type579 { get; set; } + public global::Ideogram.ListModelsResponse? Type579 { get; set; } /// /// /// - public global::Ideogram.TrainingRun? Type580 { get; set; } + public global::System.Collections.Generic.IList? Type580 { get; set; } /// /// /// - public global::Ideogram.TrainingRunStatus? Type581 { get; set; } + public global::Ideogram.CustomModel? Type581 { get; set; } /// /// /// - public global::Ideogram.GetModelResponse? Type582 { get; set; } + public global::Ideogram.ModelStatus? Type582 { get; set; } /// /// /// - public global::Ideogram.TrainModelV3Request? Type583 { get; set; } + public global::System.Collections.Generic.IList? Type583 { get; set; } /// /// /// - public global::Ideogram.TrainModelV3AdvancedRequest? Type584 { get; set; } + public global::Ideogram.TrainingRun? Type584 { get; set; } /// /// /// - public global::Ideogram.TrainModelV4Request? Type585 { get; set; } + public global::Ideogram.TrainingRunStatus? Type585 { get; set; } /// /// /// - public global::Ideogram.TrainModelV4AdvancedRequest? Type586 { get; set; } + public global::Ideogram.GetModelResponse? Type586 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppResponse? Type587 { get; set; } + public global::Ideogram.TrainModelV3Request? Type587 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppRequest? Type588 { get; set; } + public global::Ideogram.TrainModelV3AdvancedRequest? Type588 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppRequestEmbed? Type589 { get; set; } + public global::Ideogram.TrainModelV4Request? Type589 { get; set; } /// /// /// - public object? Type590 { get; set; } + public global::Ideogram.TrainModelV4AdvancedRequest? Type590 { get; set; } /// /// /// - public global::Ideogram.MiniAppArtwork? Type591 { get; set; } + public global::Ideogram.PublishMiniAppResponse? Type591 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppPreviewResponse? Type592 { get; set; } + public global::Ideogram.PublishMiniAppRequest? Type592 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppPreviewRequest? Type593 { get; set; } + public global::Ideogram.PublishMiniAppRequestEmbed? Type593 { get; set; } /// /// /// - public global::Ideogram.PublishMiniAppPreviewRequestEmbed? Type594 { get; set; } + public object? Type594 { get; set; } /// /// /// - public global::Ideogram.UnpublishMiniAppPreviewResponse? Type595 { get; set; } + public global::Ideogram.MiniAppArtwork? Type595 { get; set; } /// /// /// - public global::Ideogram.GetStaleMiniAppPreviewsResponse? Type596 { get; set; } + public global::Ideogram.PublishMiniAppPreviewResponse? Type596 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type597 { get; set; } + public global::Ideogram.PublishMiniAppPreviewRequest? Type597 { get; set; } /// /// /// - public global::Ideogram.MiniAppMarketingProjectionEntry? Type598 { get; set; } + public global::Ideogram.PublishMiniAppPreviewRequestEmbed? Type598 { get; set; } /// /// /// - public global::Ideogram.MiniAppMarketingProjectionEntryEmbed? Type599 { get; set; } + public global::Ideogram.UnpublishMiniAppPreviewResponse? Type599 { get; set; } /// /// /// - public global::Ideogram.GetIntegrationsResponse? Type600 { get; set; } + public global::Ideogram.GetStaleMiniAppPreviewsResponse? Type600 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type601 { get; set; } + public global::System.Collections.Generic.IList? Type601 { get; set; } /// /// /// - public global::Ideogram.IntegrationType? Type602 { get; set; } + public global::Ideogram.MiniAppMarketingProjectionEntry? Type602 { get; set; } /// /// /// - public global::Ideogram.IntegrationErrorResponse? Type603 { get; set; } + public global::Ideogram.MiniAppMarketingProjectionEntryEmbed? Type603 { get; set; } /// /// /// - public global::Ideogram.IntegrationErrorResponseError? Type604 { get; set; } + public global::Ideogram.GetIntegrationsResponse? Type604 { get; set; } /// /// /// - public global::Ideogram.IntegrationAssetSearchResponse? Type605 { get; set; } + public global::System.Collections.Generic.IList? Type605 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type606 { get; set; } + public global::Ideogram.IntegrationType? Type606 { get; set; } /// /// /// - public global::Ideogram.IntegrationAsset? Type607 { get; set; } + public global::Ideogram.IntegrationErrorResponse? Type607 { get; set; } /// /// /// - public global::Ideogram.IntegrationAssetDelivery? Type608 { get; set; } + public global::Ideogram.IntegrationErrorResponseError? Type608 { get; set; } /// /// /// - public global::Ideogram.IntegrationAssetSearchRequest? Type609 { get; set; } + public global::Ideogram.IntegrationAssetSearchResponse? Type609 { get; set; } /// /// /// - public global::Ideogram.V4StyleDescription? Type610 { get; set; } + public global::System.Collections.Generic.IList? Type610 { get; set; } /// /// /// - public global::Ideogram.V4CompositionalDeconstruction? Type611 { get; set; } + public global::Ideogram.IntegrationAsset? Type611 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type612 { get; set; } + public global::Ideogram.IntegrationAssetDelivery? Type612 { get; set; } /// /// /// - public global::Ideogram.V4PromptElement? Type613 { get; set; } + public global::Ideogram.IntegrationAssetSearchRequest? Type613 { get; set; } /// /// /// - public global::Ideogram.V4ObjPromptElement? Type614 { get; set; } + public global::Ideogram.V4StyleDescription? Type614 { get; set; } /// /// /// - public global::Ideogram.V4TextPromptElement? Type615 { get; set; } + public global::Ideogram.V4CompositionalDeconstruction? Type615 { get; set; } /// /// /// - public global::Ideogram.V4PromptElementDiscriminator? Type616 { get; set; } + public global::System.Collections.Generic.IList? Type616 { get; set; } /// /// /// - public global::Ideogram.V4PromptElementDiscriminatorType? Type617 { get; set; } + public global::Ideogram.V4PromptElement? Type617 { get; set; } /// /// /// - public global::Ideogram.V4ObjPromptElementType? Type618 { get; set; } + public global::Ideogram.V4ObjPromptElement? Type618 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type619 { get; set; } + public global::Ideogram.V4TextPromptElement? Type619 { get; set; } /// /// /// - public global::Ideogram.V4TextPromptElementType? Type620 { get; set; } + public global::Ideogram.V4PromptElementDiscriminator? Type620 { get; set; } /// /// /// - public global::Ideogram.ColorPaletteWithPresetName? Type621 { get; set; } + public global::Ideogram.V4PromptElementDiscriminatorType? Type621 { get; set; } /// /// /// - public global::Ideogram.ColorPaletteWithMembers? Type622 { get; set; } + public global::Ideogram.V4ObjPromptElementType? Type622 { get; set; } /// /// /// - public global::Ideogram.ColorPalettePresetName? Type623 { get; set; } + public global::System.Collections.Generic.IList? Type623 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type624 { get; set; } + public global::Ideogram.V4TextPromptElementType? Type624 { get; set; } /// /// /// - public global::Ideogram.ColorPaletteMember? Type625 { get; set; } + public global::Ideogram.ColorPaletteWithPresetName? Type625 { get; set; } /// /// /// - public global::Ideogram.SvgGenerationObject? Type626 { get; set; } + public global::Ideogram.ColorPaletteWithMembers? Type626 { get; set; } /// /// /// - public global::Ideogram.SvgGenerationObjectObjectType? Type627 { get; set; } + public global::Ideogram.ColorPalettePresetName? Type627 { get; set; } /// /// /// - public global::Ideogram.SvgGenerationObjectMimeType? Type628 { get; set; } + public global::System.Collections.Generic.IList? Type628 { get; set; } /// /// /// - public global::Ideogram.VideoObject? Type629 { get; set; } + public global::Ideogram.ColorPaletteMember? Type629 { get; set; } /// /// /// - public global::Ideogram.VideoObjectObjectType? Type630 { get; set; } + public global::Ideogram.SvgGenerationObject? Type630 { get; set; } /// /// /// - public global::Ideogram.TextLayerizerResultObject? Type631 { get; set; } + public global::Ideogram.SvgGenerationObjectObjectType? Type631 { get; set; } /// /// /// - public global::Ideogram.TextLayerizerResultObjectObjectType? Type632 { get; set; } + public global::Ideogram.SvgGenerationObjectMimeType? Type632 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type633 { get; set; } + public global::Ideogram.VideoObject? Type633 { get; set; } /// /// /// - public global::Ideogram.DetectedTextBlockAlignment? Type634 { get; set; } + public global::Ideogram.VideoObjectObjectType? Type634 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type635 { get; set; } + public global::Ideogram.TextLayerizerResultObject? Type635 { get; set; } /// /// /// - public global::Ideogram.DetectedTextBlockFormattingItem? Type636 { get; set; } + public global::Ideogram.TextLayerizerResultObjectObjectType? Type636 { get; set; } /// /// /// - public global::Ideogram.DetectedTextBlockRole? Type637 { get; set; } + public global::System.Collections.Generic.IList? Type637 { get; set; } /// /// /// - public global::Ideogram.AssetType? Type638 { get; set; } + public global::Ideogram.DetectedTextBlockAlignment? Type638 { get; set; } /// /// /// - public global::Ideogram.AttributeValueType? Type639 { get; set; } + public global::System.Collections.Generic.IList? Type639 { get; set; } /// /// /// - public global::Ideogram.IdeogramColorPaletteWithPresetName? Type640 { get; set; } + public global::Ideogram.DetectedTextBlockFormattingItem? Type640 { get; set; } /// /// /// - public global::Ideogram.IdeogramColorPalettePresetName? Type641 { get; set; } + public global::Ideogram.DetectedTextBlockRole? Type641 { get; set; } /// /// /// - public global::Ideogram.PostGenerateDesignV4200Response? Type642 { get; set; } + public global::Ideogram.AssetType? Type642 { get; set; } /// /// /// - public global::Ideogram.PostGenerateDesignV4200ResponseDiscriminator? Type643 { get; set; } + public global::Ideogram.AttributeValueType? Type643 { get; set; } /// /// /// - public global::Ideogram.PostGenerateDesignV4200ResponseDiscriminatorResponseType? Type644 { get; set; } + public global::Ideogram.IdeogramColorPaletteWithPresetName? Type644 { get; set; } /// /// /// - public global::Ideogram.PostInternalTesting200Response? Type645 { get; set; } + public global::Ideogram.IdeogramColorPalettePresetName? Type645 { get; set; } /// /// /// - public global::Ideogram.GenerationResponseDataInnerDiscriminator? Type646 { get; set; } + public global::Ideogram.PostGenerateDesignV4200Response? Type646 { get; set; } /// /// /// - public global::Ideogram.GenerationResponseDataInnerDiscriminatorObjectType? Type647 { get; set; } + public global::Ideogram.PostGenerateDesignV4200ResponseDiscriminator? Type647 { get; set; } /// /// /// - public global::Ideogram.MagicPromptRequestMessagesInnerRole? Type648 { get; set; } + public global::Ideogram.PostGenerateDesignV4200ResponseDiscriminatorResponseType? Type648 { get; set; } /// /// /// - public global::Ideogram.DatasetCoverAssetIdentifier? Type649 { get; set; } + public global::Ideogram.PostInternalTesting200Response? Type649 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type650 { get; set; } + public global::Ideogram.GenerationResponseDataInnerDiscriminator? Type650 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type651 { get; set; } + public global::Ideogram.GenerationResponseDataInnerDiscriminatorObjectType? Type651 { get; set; } /// /// /// - public global::Ideogram.ListCustomModelsScope? Type652 { get; set; } + public global::Ideogram.MagicPromptRequestMessagesInnerRole? Type652 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type653 { get; set; } + public global::Ideogram.DatasetCoverAssetIdentifier? Type653 { get; set; } /// /// /// - public global::Ideogram.GetAccountUsageBucketWidth? Type654 { get; set; } + public global::System.Collections.Generic.IList? Type654 { get; set; } /// /// /// - public global::System.Collections.Generic.IList? Type655 { get; set; } + public global::System.Collections.Generic.IList? Type655 { get; set; } /// /// /// - public global::Ideogram.GetAccountUsageSource? Type656 { get; set; } + public global::Ideogram.ListCustomModelsScope? Type656 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type657 { get; set; } + /// + /// + /// + public global::Ideogram.GetAccountUsageBucketWidth? Type658 { get; set; } + /// + /// + /// + public global::System.Collections.Generic.IList? Type659 { get; set; } + /// + /// + /// + public global::Ideogram.GetAccountUsageSource? Type660 { get; set; } /// /// diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.Json.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.Json.g.cs new file mode 100644 index 00000000..340b7c8a --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.Json.g.cs @@ -0,0 +1,141 @@ +#nullable enable + +namespace Ideogram +{ + public sealed partial class GenerateImageNanoBanana21Request + { + /// + /// Serializes the current instance to a JSON string using the provided JsonSerializerContext. + /// + public string ToJson( + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return global::System.Text.Json.JsonSerializer.Serialize( + this, + this.GetType(), + jsonSerializerContext); + } + + /// + /// Serializes the current instance to a JSON string using the generated default JsonSerializerContext. + /// + public string ToJson() + { + return ToJson(global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Serializes the current instance to a JSON string using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public string ToJson( + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return ToJson(global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.Serialize( + this, + jsonSerializerOptions); + } + + /// + /// Deserializes a JSON string using the provided JsonSerializerContext. + /// + public static global::Ideogram.GenerateImageNanoBanana21Request? FromJson( + string json, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return global::System.Text.Json.JsonSerializer.Deserialize( + json, + typeof(global::Ideogram.GenerateImageNanoBanana21Request), + jsonSerializerContext) as global::Ideogram.GenerateImageNanoBanana21Request; + } + + /// + /// Deserializes a JSON string using the generated default JsonSerializerContext. + /// + public static global::Ideogram.GenerateImageNanoBanana21Request? FromJson( + string json) + { + return FromJson( + json, + global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Deserializes a JSON string using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public static global::Ideogram.GenerateImageNanoBanana21Request? FromJson( + string json, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return FromJson( + json, + global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.Deserialize( + json, + jsonSerializerOptions); + } + + /// + /// Deserializes a JSON stream using the provided JsonSerializerContext. + /// + public static async global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return (await global::System.Text.Json.JsonSerializer.DeserializeAsync( + jsonStream, + typeof(global::Ideogram.GenerateImageNanoBanana21Request), + jsonSerializerContext).ConfigureAwait(false)) as global::Ideogram.GenerateImageNanoBanana21Request; + } + + /// + /// Deserializes a JSON stream using the generated default JsonSerializerContext. + /// + public static global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream) + { + return FromJsonStreamAsync( + jsonStream, + global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Deserializes a JSON stream using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public static global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return FromJsonStreamAsync( + jsonStream, + global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.DeserializeAsync( + jsonStream, + jsonSerializerOptions); + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.g.cs new file mode 100644 index 00000000..f38106e5 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Request.g.cs @@ -0,0 +1,189 @@ + +#nullable enable + +namespace Ideogram +{ + /// + /// Source `images` are optional. When supplied, the prompt is applied to
+ /// them as an edit. Without source images, the output is generated from
+ /// the prompt alone. + ///
+ public sealed partial class GenerateImageNanoBanana21Request + { + /// + /// The prompt to generate images from, or the edit instruction to apply when source images are supplied. It is passed to the model as written. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("prompt")] + [global::System.Text.Json.Serialization.JsonRequired] + public required string Prompt { get; set; } + + /// + /// Existing upload or generated image assets to edit, by reference. Takes priority over `images` if both are supplied. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("image_asset_identifiers")] + public global::System.Collections.Generic.IList? ImageAssetIdentifiers { get; set; } + + /// + /// Optional source images to edit (max 10, max 25MB each; JPEG, PNG, or WEBP). Multipart requests only. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("images")] + public global::System.Collections.Generic.IList? Images { get; set; } + + /// + /// Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.
+ /// Default Value: auto + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("aspect_ratio")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Ideogram.JsonConverters.NanoBanana21AspectRatioJsonConverter))] + public global::Ideogram.NanoBanana21AspectRatio? AspectRatio { get; set; } + + /// + /// The output resolution tier.
+ /// Default Value: 1K + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("resolution_tier")] + [global::System.Text.Json.Serialization.JsonConverter(typeof(global::Ideogram.JsonConverters.GenerateImageNanoBanana21RequestResolutionTierJsonConverter))] + public global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? ResolutionTier { get; set; } + + /// + /// The number of images to generate.
+ /// Default Value: 1 + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("num_images")] + public int? NumImages { get; set; } + + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + ///
+ /// 12345 + [global::System.Text.Json.Serialization.JsonPropertyName("seed")] + public int? Seed { get; set; } + + /// + /// When false (the default), the request waits until the images are ready and returns them in `data`. When true, the request returns as soon as it is accepted; poll `GET /v2/generations/{generation_id}` with the returned `generation_id` for the result.
+ /// Default Value: false + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("async")] + public bool? Async { get; set; } + + /// + /// HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a
+ /// JSON POST to this URL once all images for the request have finished
+ /// generating. The body mirrors the synchronous generate response:
+ /// `request_id`, `created`, and a `data` array
+ /// containing every generated image (`url`, `prompt`, `resolution`, `seed`,
+ /// `is_image_safe`). Each delivery is signed with Ed25519 and verifiable
+ /// against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;
+ /// private and loopback hosts and the cloud metadata service are rejected.
+ /// Example: https://api.example.com/webhooks/ideogram + ///
+ /// https://api.example.com/webhooks/ideogram + [global::System.Text.Json.Serialization.JsonPropertyName("webhook_url")] + public string? WebhookUrl { get; set; } + + /// + /// When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("private")] + public bool? Private { get; set; } + + /// + /// A collection you can write to, by its URL-safe base64 collection id. The output images are added to it when the request completes. + /// + [global::System.Text.Json.Serialization.JsonPropertyName("target_collection_id")] + public string? TargetCollectionId { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + + /// + /// Initializes a new instance of the class. + /// + /// + /// The prompt to generate images from, or the edit instruction to apply when source images are supplied. It is passed to the model as written. + /// + /// + /// Existing upload or generated image assets to edit, by reference. Takes priority over `images` if both are supplied. + /// + /// + /// Optional source images to edit (max 10, max 25MB each; JPEG, PNG, or WEBP). Multipart requests only. + /// + /// + /// Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.
+ /// Default Value: auto + /// + /// + /// The output resolution tier.
+ /// Default Value: 1K + /// + /// + /// The number of images to generate.
+ /// Default Value: 1 + /// + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + /// + /// + /// When false (the default), the request waits until the images are ready and returns them in `data`. When true, the request returns as soon as it is accepted; poll `GET /v2/generations/{generation_id}` with the returned `generation_id` for the result.
+ /// Default Value: false + /// + /// + /// HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a
+ /// JSON POST to this URL once all images for the request have finished
+ /// generating. The body mirrors the synchronous generate response:
+ /// `request_id`, `created`, and a `data` array
+ /// containing every generated image (`url`, `prompt`, `resolution`, `seed`,
+ /// `is_image_safe`). Each delivery is signed with Ed25519 and verifiable
+ /// against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;
+ /// private and loopback hosts and the cloud metadata service are rejected.
+ /// Example: https://api.example.com/webhooks/ideogram + /// + /// + /// When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately. + /// + /// + /// A collection you can write to, by its URL-safe base64 collection id. The output images are added to it when the request completes. + /// +#if NET7_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.SetsRequiredMembers] +#endif + public GenerateImageNanoBanana21Request( + string prompt, + global::System.Collections.Generic.IList? imageAssetIdentifiers, + global::System.Collections.Generic.IList? images, + global::Ideogram.NanoBanana21AspectRatio? aspectRatio, + global::Ideogram.GenerateImageNanoBanana21RequestResolutionTier? resolutionTier, + int? numImages, + int? seed, + bool? async, + string? webhookUrl, + bool? @private, + string? targetCollectionId) + { + this.Prompt = prompt ?? throw new global::System.ArgumentNullException(nameof(prompt)); + this.ImageAssetIdentifiers = imageAssetIdentifiers; + this.Images = images; + this.AspectRatio = aspectRatio; + this.ResolutionTier = resolutionTier; + this.NumImages = numImages; + this.Seed = seed; + this.Async = async; + this.WebhookUrl = webhookUrl; + this.Private = @private; + this.TargetCollectionId = targetCollectionId; + } + + /// + /// Initializes a new instance of the class. + /// + public GenerateImageNanoBanana21Request() + { + } + + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21RequestResolutionTier.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21RequestResolutionTier.g.cs new file mode 100644 index 00000000..c3a4ca32 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21RequestResolutionTier.g.cs @@ -0,0 +1,58 @@ + +#nullable enable + +namespace Ideogram +{ + /// + /// The output resolution tier.
+ /// Default Value: 1K + ///
+ public enum GenerateImageNanoBanana21RequestResolutionTier + { + /// + /// + /// + x1k, + /// + /// + /// + x2k, + /// + /// + /// + x4k, + } + + /// + /// Enum extensions to do fast conversions without the reflection. + /// + public static class GenerateImageNanoBanana21RequestResolutionTierExtensions + { + /// + /// Converts an enum to a string. + /// + public static string ToValueString(this GenerateImageNanoBanana21RequestResolutionTier value) + { + return value switch + { + GenerateImageNanoBanana21RequestResolutionTier.x1k => "1K", + GenerateImageNanoBanana21RequestResolutionTier.x2k => "2K", + GenerateImageNanoBanana21RequestResolutionTier.x4k => "4K", + _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null), + }; + } + /// + /// Converts an string to a enum. + /// + public static GenerateImageNanoBanana21RequestResolutionTier? ToEnum(string value) + { + return value switch + { + "1K" => GenerateImageNanoBanana21RequestResolutionTier.x1k, + "2K" => GenerateImageNanoBanana21RequestResolutionTier.x2k, + "4K" => GenerateImageNanoBanana21RequestResolutionTier.x4k, + _ => null, + }; + } + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.Json.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.Json.g.cs new file mode 100644 index 00000000..a3580573 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.Json.g.cs @@ -0,0 +1,141 @@ +#nullable enable + +namespace Ideogram +{ + public sealed partial class GenerateImageNanoBanana21Response + { + /// + /// Serializes the current instance to a JSON string using the provided JsonSerializerContext. + /// + public string ToJson( + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return global::System.Text.Json.JsonSerializer.Serialize( + this, + this.GetType(), + jsonSerializerContext); + } + + /// + /// Serializes the current instance to a JSON string using the generated default JsonSerializerContext. + /// + public string ToJson() + { + return ToJson(global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Serializes the current instance to a JSON string using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public string ToJson( + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return ToJson(global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.Serialize( + this, + jsonSerializerOptions); + } + + /// + /// Deserializes a JSON string using the provided JsonSerializerContext. + /// + public static global::Ideogram.GenerateImageNanoBanana21Response? FromJson( + string json, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return global::System.Text.Json.JsonSerializer.Deserialize( + json, + typeof(global::Ideogram.GenerateImageNanoBanana21Response), + jsonSerializerContext) as global::Ideogram.GenerateImageNanoBanana21Response; + } + + /// + /// Deserializes a JSON string using the generated default JsonSerializerContext. + /// + public static global::Ideogram.GenerateImageNanoBanana21Response? FromJson( + string json) + { + return FromJson( + json, + global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Deserializes a JSON string using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public static global::Ideogram.GenerateImageNanoBanana21Response? FromJson( + string json, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return FromJson( + json, + global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.Deserialize( + json, + jsonSerializerOptions); + } + + /// + /// Deserializes a JSON stream using the provided JsonSerializerContext. + /// + public static async global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream, + global::System.Text.Json.Serialization.JsonSerializerContext jsonSerializerContext) + { + return (await global::System.Text.Json.JsonSerializer.DeserializeAsync( + jsonStream, + typeof(global::Ideogram.GenerateImageNanoBanana21Response), + jsonSerializerContext).ConfigureAwait(false)) as global::Ideogram.GenerateImageNanoBanana21Response; + } + + /// + /// Deserializes a JSON stream using the generated default JsonSerializerContext. + /// + public static global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream) + { + return FromJsonStreamAsync( + jsonStream, + global::Ideogram.SourceGenerationContext.Default); + } + + /// + /// Deserializes a JSON stream using the provided JsonSerializerOptions. + /// +#if NET8_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")] + [global::System.Diagnostics.CodeAnalysis.RequiresDynamicCode("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")] +#endif + public static global::System.Threading.Tasks.ValueTask FromJsonStreamAsync( + global::System.IO.Stream jsonStream, + global::System.Text.Json.JsonSerializerOptions? jsonSerializerOptions = null) + { + if (jsonSerializerOptions is null) + { + return FromJsonStreamAsync( + jsonStream, + global::Ideogram.SourceGenerationContext.Default); + } + + return global::System.Text.Json.JsonSerializer.DeserializeAsync( + jsonStream, + jsonSerializerOptions); + } + } +} diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.g.cs new file mode 100644 index 00000000..3bd60593 --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.GenerateImageNanoBanana21Response.g.cs @@ -0,0 +1,81 @@ + +#nullable enable + +namespace Ideogram +{ + /// + /// Response returned by `POST /v2/image/generate/nano-banana-2-1`.
+ /// Synchronous requests (the default) include the generated images in
+ /// `data`. Asynchronous requests omit `data`; poll
+ /// `GET /v2/generations/{generation_id}` with the returned
+ /// `generation_id`. `seed` is the seed that was used, including when you
+ /// did not set one.
+ /// Example: {"data":[{"seed":12345,"prompt":"prompt","resolution":"1024x1024","url":"https://openapi-generator.tech","is_image_safe":true},{"seed":12345,"prompt":"prompt","resolution":"1024x1024","url":"https://openapi-generator.tech","is_image_safe":true}],"seed":12345,"generation_id":"generation_id"} + ///
+ public sealed partial class GenerateImageNanoBanana21Response + { + /// + /// URL-safe base64 ID of the generation. Use it to poll
+ /// `GET /v2/generations/{generation_id}`. + ///
+ [global::System.Text.Json.Serialization.JsonPropertyName("generation_id")] + [global::System.Text.Json.Serialization.JsonRequired] + public required string GenerationId { get; set; } + + /// + /// The generated images, in generation order. Present only for synchronous requests (`async` omitted or false). + /// + [global::System.Text.Json.Serialization.JsonPropertyName("data")] + public global::System.Collections.Generic.IList? Data { get; set; } + + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + ///
+ /// 12345 + [global::System.Text.Json.Serialization.JsonPropertyName("seed")] + [global::System.Text.Json.Serialization.JsonRequired] + public required int Seed { get; set; } + + /// + /// Additional properties that are not explicitly defined in the schema + /// + [global::System.Text.Json.Serialization.JsonExtensionData] + public global::System.Collections.Generic.IDictionary AdditionalProperties { get; set; } = new global::System.Collections.Generic.Dictionary(); + + /// + /// Initializes a new instance of the class. + /// + /// + /// URL-safe base64 ID of the generation. Use it to poll
+ /// `GET /v2/generations/{generation_id}`. + /// + /// + /// Random seed. Set for reproducible generation.
+ /// Example: 12345 + /// + /// + /// The generated images, in generation order. Present only for synchronous requests (`async` omitted or false). + /// +#if NET7_0_OR_GREATER + [global::System.Diagnostics.CodeAnalysis.SetsRequiredMembers] +#endif + public GenerateImageNanoBanana21Response( + string generationId, + int seed, + global::System.Collections.Generic.IList? data) + { + this.GenerationId = generationId ?? throw new global::System.ArgumentNullException(nameof(generationId)); + this.Data = data; + this.Seed = seed; + } + + /// + /// Initializes a new instance of the class. + /// + public GenerateImageNanoBanana21Response() + { + } + + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/Ideogram.Models.NanoBanana21AspectRatio.g.cs b/src/libs/Ideogram/Generated/Ideogram.Models.NanoBanana21AspectRatio.g.cs new file mode 100644 index 00000000..51d0c77e --- /dev/null +++ b/src/libs/Ideogram/Generated/Ideogram.Models.NanoBanana21AspectRatio.g.cs @@ -0,0 +1,130 @@ + +#nullable enable + +namespace Ideogram +{ + /// + /// Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.
+ /// Default Value: auto + ///
+ public enum NanoBanana21AspectRatio + { + /// + /// + /// + x16_9, + /// + /// + /// + x1_1, + /// + /// + /// + x1_4, + /// + /// + /// + x1_8, + /// + /// + /// + x21_9, + /// + /// + /// + x2_3, + /// + /// + /// + x3_2, + /// + /// + /// + x3_4, + /// + /// + /// + x4_1, + /// + /// + /// + x4_3, + /// + /// + /// + x4_5, + /// + /// + /// + x5_4, + /// + /// + /// + x8_1, + /// + /// + /// + x9_16, + /// + /// + /// + Auto, + } + + /// + /// Enum extensions to do fast conversions without the reflection. + /// + public static class NanoBanana21AspectRatioExtensions + { + /// + /// Converts an enum to a string. + /// + public static string ToValueString(this NanoBanana21AspectRatio value) + { + return value switch + { + NanoBanana21AspectRatio.x16_9 => "16:9", + NanoBanana21AspectRatio.x1_1 => "1:1", + NanoBanana21AspectRatio.x1_4 => "1:4", + NanoBanana21AspectRatio.x1_8 => "1:8", + NanoBanana21AspectRatio.x21_9 => "21:9", + NanoBanana21AspectRatio.x2_3 => "2:3", + NanoBanana21AspectRatio.x3_2 => "3:2", + NanoBanana21AspectRatio.x3_4 => "3:4", + NanoBanana21AspectRatio.x4_1 => "4:1", + NanoBanana21AspectRatio.x4_3 => "4:3", + NanoBanana21AspectRatio.x4_5 => "4:5", + NanoBanana21AspectRatio.x5_4 => "5:4", + NanoBanana21AspectRatio.x8_1 => "8:1", + NanoBanana21AspectRatio.x9_16 => "9:16", + NanoBanana21AspectRatio.Auto => "auto", + _ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null), + }; + } + /// + /// Converts an string to a enum. + /// + public static NanoBanana21AspectRatio? ToEnum(string value) + { + return value switch + { + "16:9" => NanoBanana21AspectRatio.x16_9, + "1:1" => NanoBanana21AspectRatio.x1_1, + "1:4" => NanoBanana21AspectRatio.x1_4, + "1:8" => NanoBanana21AspectRatio.x1_8, + "21:9" => NanoBanana21AspectRatio.x21_9, + "2:3" => NanoBanana21AspectRatio.x2_3, + "3:2" => NanoBanana21AspectRatio.x3_2, + "3:4" => NanoBanana21AspectRatio.x3_4, + "4:1" => NanoBanana21AspectRatio.x4_1, + "4:3" => NanoBanana21AspectRatio.x4_3, + "4:5" => NanoBanana21AspectRatio.x4_5, + "5:4" => NanoBanana21AspectRatio.x5_4, + "8:1" => NanoBanana21AspectRatio.x8_1, + "9:16" => NanoBanana21AspectRatio.x9_16, + "auto" => NanoBanana21AspectRatio.Auto, + _ => null, + }; + } + } +} \ No newline at end of file diff --git a/src/libs/Ideogram/Generated/autosdk.generated-examples.json b/src/libs/Ideogram/Generated/autosdk.generated-examples.json index c05dd3ab..c262af2e 100644 --- a/src/libs/Ideogram/Generated/autosdk.generated-examples.json +++ b/src/libs/Ideogram/Generated/autosdk.generated-examples.json @@ -1135,6 +1135,17 @@ }, { "Order": 104, + "Title": "Generate with Nano Banana 2.1", + "Slug": "post-generate-image-v2-nano-banana21", + "Description": "Generate images with Nano Banana 2.1. Optionally upload source images as\n\u0060images\u0060 using \u0060multipart/form-data\u0060 to edit them with the prompt.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", + "Language": "http", + "Code": "### Generate with Nano Banana 2.1\n# @name post_generate_image_v2_nano_banana21\nPOST {{host}}/v2/image/generate/nano-banana-2-1?dry_run=false\nAuthorization: Bearer {{token}}\nContent-Type: multipart/form-data; boundary=AutoSDKBoundary\nAccept: application/json\n\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022prompt\u0022\n\nstring\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022image_asset_identifiers\u0022\n\n{\u0022asset_type\u0022:\u0022RESPONSE\u0022,\u0022asset_id\u0022:\u00227uS_VESkRI6O3-sVgHQp_A\u0022}\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022images\u0022; filename=\u0022images.bin\u0022\nContent-Type: application/octet-stream\n\n\u003C ./images.bin\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022aspect_ratio\u0022\n\nauto\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022resolution_tier\u0022\n\n1K\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022num_images\u0022\n\n1\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022seed\u0022\n\n12345\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022async\u0022\n\nfalse\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022webhook_url\u0022\n\nhttps://api.example.com/webhooks/ideogram\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022private\u0022\n\ntrue\n--AutoSDKBoundary\nContent-Disposition: form-data; name=\u0022target_collection_id\u0022\n\nstring\n--AutoSDKBoundary--\n\n## Responses\n# 200\n# Description: The generated images (synchronous requests), or an acknowledgement to poll with \u0060GET /v2/generations/{generation_id}\u0060 (\u0060async\u0060 requests).\n# Content-Type: application/json\n# 400\n# Description: Invalid input provided.\n# 401\n# Description: Unauthorized.\n# 402\n# Description: Insufficient credits or quota.\n# Content-Type: application/json\n# 422\n# Description: The prompt did not pass safety checks.\n# 429\n# Description: Too many requests.\n# Content-Type: application/json\n# 500\n# Description: Internal server error.\n# 503\n# Description: The endpoint is temporarily unavailable.", + "Format": "http", + "OperationId": "post_generate_image_v2_nano_banana21", + "Setup": null + }, + { + "Order": 105, "Title": "Generate with Nano Banana Pro", "Slug": "post-generate-image-v2-nano-banana-pro", "Description": "Generate images with Nano Banana Pro. Optionally upload source images as\n\u0060images\u0060 using \u0060multipart/form-data\u0060 to edit them with the prompt.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1145,7 +1156,7 @@ "Setup": null }, { - "Order": 105, + "Order": 106, "Title": "Generate with P-Image Ideogram", "Slug": "post-generate-image-v2-p-image-ideogram", "Description": "Generate images with P-Image Ideogram, a fast model with selectable\nquality and resolution tiers. Returns results directly by default; set\n\u0060async\u0060 or supply a \u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1156,7 +1167,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 106, + "Order": 107, "Title": "Generate with Z-Image", "Slug": "post-generate-image-v2-z-image", "Description": "Generate images from a text prompt with Z-Image. Returns results\ndirectly by default; set \u0060async\u0060 or supply a \u0060webhook_url\u0060 to get a\n\u0060generation_id\u0060 and poll \u0060GET /v2/generations/{generation_id}\u0060.", @@ -1167,7 +1178,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 107, + "Order": 108, "Title": "Inpaint with Ideogram 3.0", "Slug": "post-inpaint-image-v2-ideogram-v3", "Description": "Repaint the masked region of a source image with Ideogram 3.0, guided\nby a text prompt. Upload the source \u0060image\u0060 and its \u0060mask\u0060 using\n\u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1178,7 +1189,7 @@ "Setup": null }, { - "Order": 108, + "Order": 109, "Title": "Inpaint a consistent character with Ideogram 3.0", "Slug": "post-inpaint-image-v2-ideogram-v3-character", "Description": "Repaint the masked region of a source image with Ideogram 3.0 so it\nfeatures a consistent character. Upload the source \u0060image\u0060, its\n\u0060mask\u0060, and a \u0060character_reference_images\u0060 image (or use a saved\ncharacter) using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1189,7 +1200,7 @@ "Setup": null }, { - "Order": 109, + "Order": 110, "Title": "Inpaint with a custom Ideogram 3.0 model", "Slug": "post-inpaint-image-v2-ideogram-v3-custom-model", "Description": "Repaint the masked region of a source image with a custom Ideogram 3.0\nmodel, passed as \u0060custom_model_uri\u0060. Upload the source \u0060image\u0060 and its\n\u0060mask\u0060 using \u0060multipart/form-data\u0060. Returns results directly by\ndefault; set \u0060async\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1200,7 +1211,7 @@ "Setup": null }, { - "Order": 110, + "Order": 111, "Title": "Precise edit with Ideogram 4.5", "Slug": "post-precise-edit-image-v2-ideogram45", "Description": "Edit an image with Ideogram 4.5 and get the result back at that image\u0027s\nexact width and height. Upload the image as \u0060image\u0060 using\n\u0060multipart/form-data\u0060, with optional \u0060reference_images\u0060 and a \u0060mask\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.\n\n\u0060context_window\u0060 confines the edit to one region of the image, so a\nlarge image keeps its detail: pass \u0060y_min,x_min,y_max,x_max\u0060, or \u0060auto\u0060\ntogether with a \u0060mask\u0060. The result always keeps the image\u0027s own width\nand height.", @@ -1211,7 +1222,7 @@ "Setup": null }, { - "Order": 111, + "Order": 112, "Title": "Reframe an image, letting Ideogram pick the model", "Slug": "post-reframe-image-auto", "Description": "Reframe one image to a new aspect ratio without choosing a model.\nIdeogram selects the model best suited to the source and may route\ndifferent requests to different models; the request is billed at the\nchosen model\u0027s price. Supply either an existing Ideogram image asset\nor raw image bytes, but not both.\n\nThis operation is asynchronous. It returns as soon as the request is\naccepted; poll \u0060GET /v2/generations/{generation_id}\u0060 for completion\nand results.", @@ -1222,7 +1233,7 @@ "Setup": null }, { - "Order": 112, + "Order": 113, "Title": "Reframe an image with Bria Expand", "Slug": "post-reframe-image-bria-expand", "Description": "Extend one image to a new aspect ratio with Bria Expand. The source\npixels are kept exactly as they are, centered on the new canvas, and\nthe model paints only the added area. Supply either an existing\nIdeogram image asset or raw image bytes, but not both. The canvas is\nsized from the source so that the whole source fits.\n\nThis operation is asynchronous. It returns as soon as the request is\naccepted; poll \u0060GET /v2/generations/{generation_id}\u0060 for completion\nand results.", @@ -1233,7 +1244,7 @@ "Setup": null }, { - "Order": 113, + "Order": 114, "Title": "Reframe an image with GPT Image 2.5 Flare", "Slug": "post-reframe-image-gpt-image25-flare", "Description": "Recompose one image for a new aspect ratio with GPT Image 2.5 Flare.\nSupply either an existing Ideogram image asset or raw image bytes, but\nnot both. The requested aspect ratio is resolved to the closest output\nsize the model supports.\n\nThis operation is asynchronous. It returns as soon as the request is\naccepted; poll \u0060GET /v2/generations/{generation_id}\u0060 for completion\nand results.", @@ -1244,7 +1255,7 @@ "Setup": null }, { - "Order": 114, + "Order": 115, "Title": "Reframe with Ideogram 3.0", "Slug": "post-reframe-image-v2-ideogram-v3", "Description": "Expand an image to a new Ideogram 3.0 resolution, keeping the source\npixels in the center and filling the new area. Upload the source\n\u0060image\u0060 using \u0060multipart/form-data\u0060. Returns results directly by\ndefault; set \u0060async\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1255,7 +1266,7 @@ "Setup": null }, { - "Order": 115, + "Order": 116, "Title": "Reframe with Nano Banana 2", "Slug": "post-reframe-image-nano-banana2", "Description": "Expand an image to a new aspect ratio with Nano Banana 2. Upload the\nsource \u0060image\u0060 using \u0060multipart/form-data\u0060. Always asynchronous:\nreturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nfor results.", @@ -1266,7 +1277,7 @@ "Setup": null }, { - "Order": 116, + "Order": 117, "Title": "Reframe an image with Nano Banana Pro", "Slug": "post-reframe-image-nano-banana-pro", "Description": "Recompose one image for a new aspect ratio with Nano Banana Pro, at a\n1K, 2K, or 4K output tier. Supply either an existing Ideogram image\nasset or raw image bytes, but not both. The requested aspect ratio is\nresolved to the closest dimensions the model supports at that tier.\n\nThis operation is asynchronous. It returns as soon as the request is\naccepted; poll \u0060GET /v2/generations/{generation_id}\u0060 for completion\nand results.", @@ -1277,7 +1288,7 @@ "Setup": null }, { - "Order": 117, + "Order": 118, "Title": "Remix with Ideogram 3.0", "Slug": "post-remix-image-v2-ideogram-v3", "Description": "Transform an existing image with Ideogram 3.0, guided by a text\nprompt. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1288,7 +1299,7 @@ "Setup": null }, { - "Order": 118, + "Order": 119, "Title": "Remix a consistent character with Ideogram 3.0", "Slug": "post-remix-image-v2-ideogram-v3-character", "Description": "Transform an existing image with Ideogram 3.0 so it features a\nconsistent character, guided by a text prompt. Upload the source\n\u0060image\u0060 and a \u0060character_reference_images\u0060 image (or use a saved\ncharacter) using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1299,7 +1310,7 @@ "Setup": null }, { - "Order": 119, + "Order": 120, "Title": "Remix with a custom Ideogram 3.0 model", "Slug": "post-remix-image-v2-ideogram-v3-custom-model", "Description": "Transform an existing image with a custom Ideogram 3.0 model that your\nuser or organization can access, guided by a text prompt. Upload the\nsource \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1310,7 +1321,7 @@ "Setup": null }, { - "Order": 120, + "Order": 121, "Title": "Remix with Ideogram 4.0", "Slug": "post-remix-image-v2-ideogram-v4", "Description": "Transform an existing image with Ideogram 4.0, guided by a text\nprompt. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1321,7 +1332,7 @@ "Setup": null }, { - "Order": 121, + "Order": 122, "Title": "Upscale with Nano Banana Pro", "Slug": "post-upscale-image-nano-banana-pro", "Description": "Regenerate an image at a higher \u0060resolution_tier\u0060 (1K, 2K, or 4K) while\npreserving its content, composition, and style. Upload the source\n\u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1332,7 +1343,7 @@ "Setup": null }, { - "Order": 122, + "Order": 123, "Title": "Upscale with Topaz Bloom 2", "Slug": "post-upscale-image-topaz-bloom2", "Description": "Creatively upscale an image to 2x, 4x, or 8x its original resolution,\noptionally guided by a \u0060prompt\u0060. Upload the source \u0060image\u0060 using\n\u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1343,7 +1354,7 @@ "Setup": null }, { - "Order": 123, + "Order": 124, "Title": "Upscale with Topaz Redefine", "Slug": "post-upscale-image-topaz-redefine", "Description": "Creatively upscale an image to 2x, 4x, or 8x its original resolution,\nguided by an optional \u0060prompt\u0060 or \u0060autoprompt\u0060. Upload the source\n\u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1354,7 +1365,7 @@ "Setup": null }, { - "Order": 124, + "Order": 125, "Title": "Upscale with Topaz Standard V2", "Slug": "post-upscale-image-topaz-standard-v2", "Description": "Upscale an image to 2x, 4x, or 8x its original resolution; no prompt is\nneeded. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1365,7 +1376,7 @@ "Setup": null }, { - "Order": 125, + "Order": 126, "Title": "Upscale with Topaz Text Refine", "Slug": "post-upscale-image-topaz-text-refine", "Description": "Upscale an image to 2x, 4x, or 8x its original resolution; no prompt is\nneeded. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1376,7 +1387,7 @@ "Setup": null }, { - "Order": 126, + "Order": 127, "Title": "Upscale with Topaz Wonder 3.5", "Slug": "post-upscale-image-topaz-wonder35", "Description": "Upscale an image to 2x, 4x, or 8x its original resolution, with\n\u0060enhancement_strength\u0060 controlling how strongly detail is reconstructed.\nUpload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1387,7 +1398,7 @@ "Setup": null }, { - "Order": 127, + "Order": 128, "Title": "Fetch the media bytes for an integration asset", "Slug": "get-integration-asset-delivery", "Description": "Redeems the short-lived signed delivery reference returned by an integration asset search and streams the asset\u0027s media bytes. The signed reference is the sole authorization for this endpoint; it is rejected once it expires or when the integration it names has changed.", @@ -1398,7 +1409,7 @@ "Setup": null }, { - "Order": 128, + "Order": 129, "Title": "List enabled integration types", "Slug": "get-integrations", "Description": "Lists the distinct integration types enabled for the authenticated organization. The response does not expose configured integration rows, provider details, configuration, or credentials.", @@ -1409,7 +1420,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 129, + "Order": 130, "Title": "Search assets from an enabled integration type", "Slug": "post-integration-assets-search", "Description": "Generated from OpenAPI examples.", @@ -1420,7 +1431,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 130, + "Order": 131, "Title": "Testing", "Slug": "post-internal-testing", "Description": "Just a testing endpoint", @@ -1431,7 +1442,7 @@ "Setup": null }, { - "Order": 131, + "Order": 132, "Title": "Add members to a specific organization", "Slug": "add-organization-members", "Description": "Generated from OpenAPI examples.", @@ -1442,7 +1453,7 @@ "Setup": null }, { - "Order": 132, + "Order": 133, "Title": "Cancel a pending invite for an organization", "Slug": "cancel-organization-invite", "Description": "Generated from OpenAPI examples.", @@ -1453,7 +1464,7 @@ "Setup": null }, { - "Order": 133, + "Order": 134, "Title": "Creates an API key.", "Slug": "create-api-key", "Description": "Generated from OpenAPI examples.", @@ -1464,7 +1475,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 134, + "Order": 135, "Title": "Create an API key for a specific organization", "Slug": "create-api-key-v2", "Description": "Generated from OpenAPI examples.", @@ -1475,7 +1486,7 @@ "Setup": null }, { - "Order": 135, + "Order": 136, "Title": "Create a payment setup session for inline card collection.", "Slug": "create-api-payment", "Description": "Returns a client_secret for the org\u0027s payment customer so the inline payment\nmodal can save a card without leaving the app.\n\nSoft-deprecated: the inline Elements flow was removed in the Stripe.js\neager-bundle incident (2026-05-20). New clients should use the\nstripe_payment_setup_url field on ManageApiStripeSubscriptionResponse, which\nreturns a hosted Stripe Checkout URL instead. This endpoint will be formally\ndeprecated and then removed once no callers reference it.", @@ -1486,7 +1497,7 @@ "Setup": null }, { - "Order": 136, + "Order": 137, "Title": "Delete an API key.", "Slug": "delete-single-api-key", "Description": "Generated from OpenAPI examples.", @@ -1497,7 +1508,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 137, + "Order": 138, "Title": "Demote admins back to member role in an ENTERPRISE_PREPAID or ENTERPRISE_API organization", "Slug": "demote-organization-admins", "Description": "Generated from OpenAPI examples.", @@ -1508,7 +1519,7 @@ "Setup": null }, { - "Order": 138, + "Order": 139, "Title": "Lifetime credit totals for the API user\u0027s account.", "Slug": "get-api-credit-summary", "Description": "Returns the lifetime credit KPIs (consumed, expired, issued) used to\nrender the API credit dashboard strip. All values default to $0 when\nMetronome is unavailable so the FE can always render.", @@ -1519,7 +1530,7 @@ "Setup": null }, { - "Order": 139, + "Order": 140, "Title": "Retrieve current API keys and their respective data.", "Slug": "get-api-keys", "Description": "Generated from OpenAPI examples.", @@ -1530,7 +1541,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 140, + "Order": 141, "Title": "Retrieve API keys for a specific organization", "Slug": "get-api-keys-v2", "Description": "Generated from OpenAPI examples.", @@ -1541,7 +1552,7 @@ "Setup": null }, { - "Order": 141, + "Order": 142, "Title": "Get search results for user handles with suggestions for a particular organization.", "Slug": "get-api-organization-user-suggestions", "Description": "Generated from OpenAPI examples.", @@ -1552,7 +1563,7 @@ "Setup": null }, { - "Order": 142, + "Order": 143, "Title": "Retrieve the user\u0027s current API profiles", "Slug": "get-api-profiles", "Description": "Generated from OpenAPI examples.", @@ -1563,7 +1574,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 143, + "Order": 144, "Title": "Retrieve data relevant to connecting to Stripe.", "Slug": "get-api-stripe-subscription", "Description": "Generated from OpenAPI examples.", @@ -1574,7 +1585,7 @@ "Setup": null }, { - "Order": 144, + "Order": 145, "Title": "Retrieve data relevant to creating an API subscription.", "Slug": "get-api-subscription", "Description": "Generated from OpenAPI examples.", @@ -1585,7 +1596,7 @@ "Setup": null }, { - "Order": 145, + "Order": 146, "Title": "Retrieve the latest terms of service for API usage.", "Slug": "get-api-terms", "Description": "Generated from OpenAPI examples.", @@ -1596,7 +1607,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 146, + "Order": 147, "Title": "Retrieve the Stripe billing portal URL for a specific organization", "Slug": "get-organization-billing-portal", "Description": "Generated from OpenAPI examples.", @@ -1607,7 +1618,7 @@ "Setup": null }, { - "Order": 147, + "Order": 148, "Title": "Retrieve members of a specific organization", "Slug": "get-organization-members", "Description": "Returns both active members and pending invites for the organization. A pending invite is identified by a non-null invite_status (e.g. PENDING); active members have a null invite_status.", @@ -1618,7 +1629,7 @@ "Setup": null }, { - "Order": 148, + "Order": 149, "Title": "Retrieve usage information segmented by time period with tool-specific breakdowns", "Slug": "get-usage-info", "Description": "Generated from OpenAPI examples.", @@ -1629,7 +1640,7 @@ "Setup": null }, { - "Order": 149, + "Order": 150, "Title": "Retrieve user credit information and spending metrics", "Slug": "get-user-credits", "Description": "Generated from OpenAPI examples.", @@ -1640,7 +1651,7 @@ "Setup": null }, { - "Order": 150, + "Order": 151, "Title": "Retrieve user spend commit information", "Slug": "get-user-spend-commit-info", "Description": "Generated from OpenAPI examples.", @@ -1651,7 +1662,7 @@ "Setup": null }, { - "Order": 151, + "Order": 152, "Title": "Retrieve invoices for a specific organization", "Slug": "list-organization-invoices", "Description": "Generated from OpenAPI examples.", @@ -1662,7 +1673,7 @@ "Setup": null }, { - "Order": 152, + "Order": 153, "Title": "Add credits to an API user\u0027s account.", "Slug": "post-add-credits-for-api", "Description": "Generated from OpenAPI examples.", @@ -1673,7 +1684,7 @@ "Setup": null }, { - "Order": 153, + "Order": 154, "Title": "Update API subscription settings", "Slug": "post-api-subscription", "Description": "Generated from OpenAPI examples.", @@ -1684,7 +1695,7 @@ "Setup": null }, { - "Order": 154, + "Order": 155, "Title": "Accept terms", "Slug": "post-api-terms", "Description": "Generated from OpenAPI examples.", @@ -1695,7 +1706,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 155, + "Order": 156, "Title": "Promote members to ADMIN role in an ENTERPRISE_PREPAID or ENTERPRISE_API organization", "Slug": "promote-organization-admins", "Description": "Generated from OpenAPI examples.", @@ -1706,7 +1717,7 @@ "Setup": null }, { - "Order": 156, + "Order": 157, "Title": "Remove members from a specific organization", "Slug": "remove-organization-members", "Description": "Generated from OpenAPI examples.", @@ -1717,7 +1728,7 @@ "Setup": null }, { - "Order": 157, + "Order": 158, "Title": "Resend a pending invite for an organization", "Slug": "resend-organization-invite", "Description": "Generated from OpenAPI examples.", @@ -1728,7 +1739,7 @@ "Setup": null }, { - "Order": 158, + "Order": 159, "Title": "Update a single field on an organization\u0027s API properties.", "Slug": "update-organization-api-properties", "Description": "Lets an organization owner toggle API-only settings such as\ncopyright_detection_enabled. Updates only the fields explicitly present\nin the request body; absent fields are left unchanged.", @@ -1739,7 +1750,7 @@ "Setup": null }, { - "Order": 159, + "Order": 160, "Title": "Update an API key\u0027s user-supplied label.", "Slug": "update-single-api-key", "Description": "Generated from OpenAPI examples.", @@ -1750,7 +1761,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 160, + "Order": 161, "Title": "Get stale mini-app preview entries", "Slug": "get-stale-preview-mini-apps", "Description": "Returns preview ids whose most recent successful publish is older than the cutoff. This read-only endpoint does not delete preview entries.", @@ -1761,7 +1772,7 @@ "Setup": null }, { - "Order": 161, + "Order": 162, "Title": "Publish a mini-app catalog entry", "Slug": "publish-mini-app", "Description": "Publishes a mini-app\u0027s catalog entry. Called by the mini-apps deploy pipeline after a deploy to register or refresh a single app, keyed by its unique slug. Re-publishing an existing app refreshes the deploy-managed fields (label, description, embed mode, scopes, image-input support, deployment details, and website) while leaving administrator-managed settings and artwork untouched. Artwork from the request is used only when creating a new app.", @@ -1772,7 +1783,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 162, + "Order": 163, "Title": "Publish a mini-app preview entry", "Slug": "publish-preview-mini-app", "Description": "Publishes a mini-app preview entry. Called by the mini-apps preview deploy pipeline to register a throwaway preview deploy, keyed by its unique preview id. Re-publishing an existing preview id refreshes every deploy-managed field. Preview entries are independent from the main catalog: they carry no slug, owner, or membership gating, and anyone with the preview link can access the app.", @@ -1783,7 +1794,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 163, + "Order": 164, "Title": "Unpublish a mini-app preview entry", "Slug": "unpublish-preview-mini-app", "Description": "Deletes a mini-app preview entry by its preview id. Repeated requests succeed when the entry is already absent, so preview teardown can retry safely.", @@ -1794,7 +1805,7 @@ "Setup": null }, { - "Order": 164, + "Order": 165, "Title": "Get model details", "Slug": "get-custom-model", "Description": "Get detailed information about a specific custom model. The user must either own the model or the model must be shared with the user\u0027s organization via the model registry. Returns 404 if the model is not found or not accessible.", @@ -1805,7 +1816,7 @@ "Setup": null }, { - "Order": 165, + "Order": 166, "Title": "List models", "Slug": "list-custom-models", "Description": "Lists custom models for the authenticated user. Use the \u0060scope\u0060 parameter to control which models are returned. If omitted, returns both owned models and models shared with the user\u0027s organization via the model registry. \u0060owned\u0060 returns only models created by the user. \u0060shared\u0060 returns only models shared via the model registry, excluding the user\u0027s own models.", @@ -1816,7 +1827,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 166, + "Order": 167, "Title": "Train a custom Ideogram v3 model", "Slug": "train-model-v3", "Description": "Start training a custom Ideogram v3 model from a dataset using default hyperparameters. The dataset must contain at least 15 images and a maximum of 100 images.", @@ -1827,7 +1838,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 167, + "Order": 168, "Title": "Train a custom Ideogram v3 model with advanced hyperparameters", "Slug": "train-model-v3-advanced", "Description": "Start training a custom Ideogram v3 model from a dataset with caller-supplied hyperparameters (training steps, LoRA rank, EMA decay, learning rate). All hyperparameters are optional and fall back to defaults when omitted. The dataset must contain at least 15 images and a maximum of 100 images. Returns the model ID and training status.", @@ -1838,7 +1849,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 168, + "Order": 169, "Title": "Train a custom Ideogram v4 model", "Slug": "train-model-v4", "Description": "Start training a custom Ideogram v4 model from a dataset using default hyperparameters. The dataset must contain at least 15 images and a maximum of 100 images.", @@ -1849,7 +1860,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 169, + "Order": 170, "Title": "Train a custom Ideogram v4 model with advanced hyperparameters", "Slug": "train-model-v4-advanced", "Description": "Start training a custom Ideogram v4 model from a dataset with caller-supplied hyperparameters (training steps, LoRA rank, EMA decay, learning rate). All hyperparameters are optional and fall back to defaults when omitted. The dataset must contain at least 15 images and a maximum of 100 images. Returns the model ID and training status.", @@ -1860,7 +1871,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 170, + "Order": 171, "Title": "Remove an object", "Slug": "post-remove-object-from-v2-assets", "Description": "Remove a masked object from an image. Upload the source \u0060image\u0060 and a\n\u0060mask\u0060 of the same size using \u0060multipart/form-data\u0060. Returns a\n\u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060 for the\nresult.", @@ -1871,7 +1882,7 @@ "Setup": null }, { - "Order": 171, + "Order": 172, "Title": "Generate Magic Prompt", "Slug": "post-magic-prompt", "Description": "Transforms basic prompts into a magic prompt. Internal use only (feature flagged). TODO: update description if enabled externally.", @@ -1882,7 +1893,7 @@ "Setup": null }, { - "Order": 172, + "Order": 173, "Title": "Generate a Magic Prompt with Ideogram 4.0", "Slug": "post-magic-prompt-v4", "Description": "Transforms a basic prompt into an enhanced Ideogram 4.0 magic prompt.\nThe magic prompt model version is fixed; callers cannot select it.\nWhen \u0060aspect_ratio\u0060 is \u0060AUTO\u0060 (the default), the model selects the most\nsuitable aspect ratio for the prompt and returns it in the response.", @@ -1893,7 +1904,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 173, + "Order": 174, "Title": "Check whether content was created by Ideogram", "Slug": "post-provenance-verify", "Description": "Checks image content for an Ideogram provenance manifest (C2PA Content\nCredentials) and returns the disclosure it carries: the provider name,\nthe generating system and its version, the creation time, and the\ncontent\u0027s unique identifier.\n\nUpload the image to verify as the \u0060content\u0060 part.\n\nThis endpoint is public and unauthenticated \u2014 no API key is required.\nSubmitted content is analyzed in memory and never stored.", @@ -1904,7 +1915,7 @@ "Setup": null }, { - "Order": 174, + "Order": 175, "Title": "Remove background", "Slug": "post-remove-background-v2", "Description": "Remove the background from an image and return the foreground as a\ntransparent PNG. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns the result directly by default; set \u0060async\u0060 to get a\n\u0060generation_id\u0060 and poll \u0060GET /v2/generations/{generation_id}\u0060.", @@ -1915,7 +1926,7 @@ "Setup": null }, { - "Order": 175, + "Order": 176, "Title": "Replace background with GPT Image 2", "Slug": "post-replace-background", "Description": "Replace the background of an image from a text prompt while keeping the\nautomatically detected foreground subject; no mask is needed. Upload\nthe source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -1926,7 +1937,7 @@ "Setup": null }, { - "Order": 176, + "Order": 177, "Title": "Replace background with Ideogram 3.0", "Slug": "post-replace-background-ideogram-v3", "Description": "Replace the background of an image from a text prompt with Ideogram 3.0,\nkeeping the automatically detected foreground subject; no mask is\nneeded. Upload the source \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -1937,7 +1948,7 @@ "Setup": null }, { - "Order": 177, + "Order": 178, "Title": "Upscale with automatic model selection", "Slug": "post-upscale", "Description": "Upscale an image to 2x, 4x, or 8x its original resolution with a model\nIdeogram picks per request; the choice may change over time. Upload the\nsource \u0060image\u0060 using \u0060multipart/form-data\u0060.\nReturns results directly by default; set \u0060async\u0060 or supply a\n\u0060webhook_url\u0060 to get a \u0060generation_id\u0060 and poll\n\u0060GET /v2/generations/{generation_id}\u0060.", @@ -1948,7 +1959,7 @@ "Setup": null }, { - "Order": 178, + "Order": 179, "Title": "Reference to video with MiniMax H3", "Slug": "post-edit-video-minimax-h3-reference-to-video", "Description": "Produce a video from a text prompt and optional reference media with\nMiniMax H3. Upload \u0060reference_images\u0060 and \u0060reference_audios\u0060 using\n\u0060multipart/form-data\u0060, and address them in the prompt by position\n(\u0060Image 1\u0060, \u0060Audio 1\u0060, \u2026). Returns a \u0060generation_id\u0060; poll\n\u0060GET /v2/generations/{generation_id}\u0060 or supply a \u0060webhook_url\u0060.", @@ -1959,7 +1970,7 @@ "Setup": null }, { - "Order": 179, + "Order": 180, "Title": "Edit video with Seedance 2.0", "Slug": "post-edit-video-seed-dance2", "Description": "Edit a video you already have stored with Ideogram by replacing part of\nit. Reference the source video with \u0060video_asset_identifier\u0060 and mark the\nspan to replace with \u0060start_frame_time\u0060 and \u0060end_frame_time\u0060, in seconds.\nSeedance 2.0 generates a new clip for that span from your prompt, and the\nresult is the source video with the generated clip spliced in over the\nspan: everything before \u0060start_frame_time\u0060, then the generated clip, then\neverything from \u0060end_frame_time\u0060 on. That edited video is the asset the\nrequest produces.\n\n\u0060is_start_frame_included\u0060 and \u0060is_end_frame_included\u0060 anchor the generated\nclip on the span\u0027s own end frames, so it joins the surrounding footage\ninstead of cutting to something unrelated. Anchoring the start opens the\nclip on the frame already at \u0060start_frame_time\u0060; anchoring the end lands\nit on the frame at \u0060end_frame_time\u0060; anchoring both joins at each seam. At\nleast one must be anchored.\n\nThe generated clip is used at its own length, which the model rarely makes\nexactly the span\u0027s, so the edited video is usually a different length from\nthe source. Request a \u0060duration\u0060 close to the span to keep them near each\nother. The clip is scaled and cropped to fill the source\u0027s frame and\nconformed to its frame rate, so resolution and aspect ratio follow the\nsource rather than being requested.\n\nVideo generation always runs asynchronously: the response returns as\nsoon as the request is accepted and carries only a \u0060generation_id\u0060.\nPoll for completion and results with\n\u0060GET /v2/generations/{generation_id}\u0060 using that id, or supply a\n\u0060webhook_url\u0060 to have the finished result POSTed to your server\ninstead.\n\nVideo links are available for a limited period of time; download the\nvideo if you want to keep it.", @@ -1970,7 +1981,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 180, + "Order": 181, "Title": "Image to video with Kling v3 Standard", "Slug": "post-generate-video-kling-v3-standard-image-to-video", "Description": "Generate a video from a first-frame image and a text prompt with Kling\nv3 Standard. Upload the first frame as \u0060image\u0060, and optionally a final\nframe as \u0060end_image\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -1981,7 +1992,7 @@ "Setup": null }, { - "Order": 181, + "Order": 182, "Title": "Text to video with Kling v3 Standard", "Slug": "post-generate-video-kling-v3-standard-text-to-video", "Description": "Generate a video from a text prompt with Kling v3 Standard.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -1992,7 +2003,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 182, + "Order": 183, "Title": "Image to video with MiniMax H3", "Slug": "post-generate-video-minimax-h3-image-to-video", "Description": "Generate a video from a first-frame image and a text prompt with\nMiniMax H3. Upload the first frame as \u0060image\u0060, and optionally a final\nframe as \u0060end_image\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2003,7 +2014,7 @@ "Setup": null }, { - "Order": 183, + "Order": 184, "Title": "Text to video with MiniMax H3", "Slug": "post-generate-video-minimax-h3-text-to-video", "Description": "Generate a video from a text prompt with MiniMax H3.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2014,7 +2025,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 184, + "Order": 185, "Title": "Image to video with Seedance 2.5", "Slug": "post-generate-video-seed-dance25-image-to-video", "Description": "Generate a video from a first-frame image and a text prompt with\nSeedance 2.5. Upload the first frame as \u0060image\u0060, and optionally a final\nframe as \u0060end_image\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2025,7 +2036,7 @@ "Setup": null }, { - "Order": 185, + "Order": 186, "Title": "Reference to video with Seedance 2.5", "Slug": "post-generate-video-seed-dance25-reference-to-video", "Description": "Generate a video from a text prompt and reference media with\nSeedance 2.5. Upload at least one image in \u0060reference_images\u0060, plus optional\n\u0060reference_audios\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2036,7 +2047,7 @@ "Setup": null }, { - "Order": 186, + "Order": 187, "Title": "Text to video with Seedance 2.5", "Slug": "post-generate-video-seed-dance25-text-to-video", "Description": "Generate a video from a text prompt with Seedance 2.5, at up to 1080p and\n30 seconds. Returns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2047,7 +2058,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 187, + "Order": 188, "Title": "Image to video with Seedance 2.0", "Slug": "post-generate-video-seed-dance2-image-to-video", "Description": "Generate one or more videos from a first-frame image and a text prompt\nwith Seedance 2.0. Upload the first frame as \u0060image\u0060, and optionally a final\nframe as \u0060end_image\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2058,7 +2069,7 @@ "Setup": null }, { - "Order": 188, + "Order": 189, "Title": "Reference to video with Seedance 2.0", "Slug": "post-generate-video-seed-dance2-reference-to-video", "Description": "Generate a video from a text prompt and reference media with\nSeedance 2.0. Upload at least one image in \u0060reference_images\u0060, plus optional\n\u0060reference_audios\u0060, using \u0060multipart/form-data\u0060.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2069,7 +2080,7 @@ "Setup": null }, { - "Order": 189, + "Order": 190, "Title": "Text to video with Seedance 2.0", "Slug": "post-generate-video-seed-dance2-text-to-video", "Description": "Generate one or more videos from a text prompt with Seedance 2.0.\nReturns a \u0060generation_id\u0060; poll \u0060GET /v2/generations/{generation_id}\u0060\nor supply a \u0060webhook_url\u0060.", @@ -2080,7 +2091,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 190, + "Order": 191, "Title": "Turn a still image into a subtle looping video", "Slug": "post-living-image", "Description": "Animates one image into a short, loop-ready clip for use as a living background. The camera stays fixed and only the parts of the scene that would move in real life move: water, light, mist, particles, fabric, creatures. Ideogram inspects the image and writes the motion prompt, so the request needs only the image.\nVideo generation runs asynchronously. Poll \u0060GET /v1/generations/{generation_id}\u0060 with the returned \u0060generation_id\u0060 until the generation completes or fails.", @@ -2091,7 +2102,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 191, + "Order": 192, "Title": "Product 360 Video", "Slug": "post-product360-video", "Description": "Animates one product image through a complete turntable revolution and returns to the starting pose so the result loops cleanly.\nVideo generation runs asynchronously. Poll \u0060GET /v2/generations/{generation_id}\u0060 with the returned \u0060generation_id\u0060 until the generation completes or fails.", @@ -2102,7 +2113,7 @@ "Setup": "This example assumes \u0060using Ideogram;\u0060 is in scope and \u0060apiKey\u0060 contains the required credential." }, { - "Order": 192, + "Order": 193, "Title": "Describe", "Slug": "post-describe", "Description": "Describe an image.\n\nSupported image formats include JPEG, PNG, and WebP.", @@ -2113,7 +2124,7 @@ "Setup": null }, { - "Order": 193, + "Order": 194, "Title": "Describe with Ideogram 4.0", "Slug": "post-describe-v4", "Description": "Describe an image with Ideogram 4.0 and return a structured\n\u0060V4JsonPrompt\u0060. The returned \u0060json_prompt\u0060 is a working JSON prompt\nthat can be passed directly as \u0060json_prompt\u0060 to the\n\u0060/v1/ideogram-v4/generate\u0060 family of endpoints.\n\nSupported image formats include JPEG, PNG, and WebP.", @@ -2124,7 +2135,7 @@ "Setup": null }, { - "Order": 194, + "Order": 195, "Title": "Get the public keys used to verify webhook signatures", "Slug": "get-webhook-signing-jwks", "Description": "Returns the set of Ed25519 public keys Ideogram uses to sign outbound\nwebhook payloads. Customers verify incoming webhooks by recomputing the\ncanonical signed message (\u0060request_id\\nuser_id\\ntimestamp\\nsha256_hex(body)\u0060)\nand checking the \u0060X-Ideogram-Webhook-Signature\u0060 header against any key\nin this document.\n\nThe document includes the current signing key plus any keys recently\nrotated out, so signatures already in flight remain verifiable across\nrotations. Cache for up to 24 hours; refresh sooner if a signature\nfails to verify against the cached set.\n\nThis endpoint is public and unauthenticated \u2014 no API key is required.", diff --git a/src/libs/Ideogram/openapi.json b/src/libs/Ideogram/openapi.json index 3be4fbb9..a4e8adf5 100644 --- a/src/libs/Ideogram/openapi.json +++ b/src/libs/Ideogram/openapi.json @@ -9157,6 +9157,100 @@ "x-openapi-router-controller": "external_api.generated.openapi.controllers.images_generate_controller" } }, + "/v2/image/generate/nano-banana-2-1": { + "post": { + "description": "Generate images with Nano Banana 2.1. Optionally upload source images as\n`images` using `multipart/form-data` to edit them with the prompt.\nReturns results directly by default; set `async` or supply a\n`webhook_url` to get a `generation_id` and poll\n`GET /v2/generations/{generation_id}`.\n", + "operationId": "post_generate_image_v2_nano_banana21", + "parameters": [ + { + "description": "When true, the request is validated and priced but not run: nothing is\ngenerated, stored, or billed, and no safety review is performed. The\nresponse is a `PriceQuote` object instead of the usual response for this\nendpoint. Send exactly the request you would send to generate, so the\nquote reflects the same options.\n", + "in": "query", + "name": "dry_run", + "required": false, + "schema": { + "default": false, + "type": "boolean" + }, + "x-tool-description": "Validate and quote only; no generation, storage, billing, or safety review." + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "encoding": { + "image_asset_identifiers": { + "contentType": "application/json" + } + }, + "schema": { + "$ref": "#/components/schemas/GenerateImageNanoBanana21Request" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateImageNanoBanana21Request" + } + } + }, + "description": "A request to generate images with Nano Banana 2.1. Send it as `application/json`, or as `multipart/form-data` to include source `images`.", + "required": true, + "x-body-name": "body" + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateImageNanoBanana21Response" + } + } + }, + "description": "The generated images (synchronous requests), or an acknowledgement to poll with `GET /v2/generations/{generation_id}` (`async` requests)." + }, + "400": { + "description": "Invalid input provided." + }, + "401": { + "description": "Unauthorized." + }, + "402": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerationErrorResponse" + } + } + }, + "description": "Insufficient credits or quota." + }, + "422": { + "description": "The prompt did not pass safety checks." + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerationErrorResponse" + } + } + }, + "description": "Too many requests." + }, + "500": { + "description": "Internal server error." + }, + "503": { + "description": "The endpoint is temporarily unavailable." + } + }, + "summary": "Generate with Nano Banana 2.1", + "tags": [ + "images-generate" + ], + "x-tool-description": "Generate from text or edit supplied image assets with Nano Banana 2.1. The prompt is used without rewriting.", + "x-openapi-router-controller": "external_api.generated.openapi.controllers.images_generate_controller" + } + }, "/v2/image/generate/nano-banana-pro": { "post": { "description": "Generate images with Nano Banana Pro. Optionally upload source images as\n`images` using `multipart/form-data` to edit them with the prompt.\nReturns results directly by default; set `async` or supply a\n`webhook_url` to get a `generation_id` and poll\n`GET /v2/generations/{generation_id}`.\n", @@ -29547,7 +29641,7 @@ "example": "2048x2048", "nullable": true, "type": "string", - "x-tool-description": "The output shape; this operation has no resolution or aspect_ratio field. Omit for auto, which renders at 2K. Without image_asset_identifiers, use the 2K size closest to the requested aspect ratio: 2048x2048 (1:1), 1792x2240 (4:5), 2240x1792 (5:4), 1728x2304 (3:4), 2304x1728 (4:3), 1664x2496 (2:3), 2496x1664 (3:2), 1440x2560 (9:16), 2560x1440 (16:9), 1600x2560 (5:8), 2560x1600 (8:5), 1440x2880 (1:2), 2880x1440 (2:1), 1280x3072 (5:12), 3072x1280 (12:5), 1248x3328 (3:8), 3328x1248 (8:3), 1152x2944 (9:23), 2944x1152 (23:9), 1296x3168 (9:22), 3168x1296 (22:9), 1024x3072 (1:3), 3072x1024 (3:1). Use a 1K size (1024x1024, 896x1120, 1120x896, 864x1152, 1152x864, 832x1248, 1248x832, 800x1280, 1280x800, 720x1280, 1280x720, 720x1440, 1440x720) only when the user asks for a smaller image. With image_asset_identifiers, \"source\" keeps the first image's size, and an exact WIDTHxHEIGHT (sides multiples of 32 and at least 256px, at most 2048x2048 total pixels, ratio up to 6:1) reshapes it.", + "x-tool-description": "The output shape; this operation has no resolution or aspect_ratio field. Omit for auto, which renders at 2K. Without image_asset_identifiers, use the 2K size closest to the requested aspect ratio: 2048x2048 (1:1), 1792x2240 (4:5), 2240x1792 (5:4), 1728x2304 (3:4), 2304x1728 (4:3), 1664x2496 (2:3), 2496x1664 (3:2), 1440x2560 (9:16), 2560x1440 (16:9), 1600x2560 (5:8), 2560x1600 (8:5), 1440x2880 (1:2), 2880x1440 (2:1), 1280x3072 (5:12), 3072x1280 (12:5), 1248x3328 (3:8), 3328x1248 (8:3), 1152x2944 (9:23), 2944x1152 (23:9), 1296x3168 (9:22), 3168x1296 (22:9), 1024x3072 (1:3), 3072x1024 (3:1). Use a 1K size (1024x1024, 896x1120, 1120x896, 864x1152, 1152x864, 832x1248, 1248x832, 800x1280, 1280x800, 720x1280, 1280x720, 720x1440, 1440x720) only when the user asks for a smaller image. With image_asset_identifiers, \"source\" keeps the first image's size, and an exact WIDTHxHEIGHT (sides multiples of 32 and at least 256px, at most 2048x2048 total pixels, ratio up to 6:1) reshapes it; the 720-pixel 1K sizes are not multiples of 32, so use 1344x768 or 768x1344 for 16:9 or 9:16 edits.", "x-playground-field": { "label": "Size", "control": "select", @@ -29996,6 +30090,152 @@ "type": "object", "x-tool-description": "Supply image_asset_identifiers to edit existing images; omit them to generate from text." }, + "GenerateImageNanoBanana21Response": { + "description": "Response returned by `POST /v2/image/generate/nano-banana-2-1`.\nSynchronous requests (the default) include the generated images in\n`data`. Asynchronous requests omit `data`; poll\n`GET /v2/generations/{generation_id}` with the returned\n`generation_id`. `seed` is the seed that was used, including when you\ndid not set one.\n", + "example": { + "data": [ + { + "seed": 12345, + "prompt": "prompt", + "resolution": "1024x1024", + "url": "https://openapi-generator.tech", + "is_image_safe": true + }, + { + "seed": 12345, + "prompt": "prompt", + "resolution": "1024x1024", + "url": "https://openapi-generator.tech", + "is_image_safe": true + } + ], + "seed": 12345, + "generation_id": "generation_id" + }, + "properties": { + "generation_id": { + "description": "URL-safe base64 ID of the generation. Use it to poll\n`GET /v2/generations/{generation_id}`.\n", + "title": "generation_id", + "type": "string" + }, + "data": { + "description": "The generated images, in generation order. Present only for synchronous requests (`async` omitted or false).", + "items": { + "$ref": "#/components/schemas/GeneratedImageObject" + }, + "title": "data", + "type": "array" + }, + "seed": { + "description": "Random seed. Set for reproducible generation.", + "example": 12345, + "maximum": 2147483647, + "minimum": 0, + "title": "Seed", + "type": "integer", + "x-tool-description": "Set for reproducible generation." + } + }, + "required": [ + "generation_id", + "seed" + ], + "title": "GenerateImageNanoBanana21Response", + "type": "object" + }, + "GenerateImageNanoBanana21Request": { + "description": "Source `images` are optional. When supplied, the prompt is applied to\nthem as an edit. Without source images, the output is generated from\nthe prompt alone.\n", + "properties": { + "prompt": { + "description": "The prompt to generate images from, or the edit instruction to apply when source images are supplied. It is passed to the model as written.", + "maxLength": 10000, + "minLength": 1, + "type": "string", + "x-tool-description": "Generation prompt or edit instruction, passed to the model unchanged." + }, + "image_asset_identifiers": { + "description": "Existing upload or generated image assets to edit, by reference. Takes priority over `images` if both are supplied.", + "items": { + "$ref": "#/components/schemas/AssetIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "x-tool-description": "Image assets to edit." + }, + "images": { + "description": "Optional source images to edit (max 10, max 25MB each; JPEG, PNG, or WEBP). Multipart requests only.", + "items": { + "format": "binary", + "type": "string" + }, + "maxItems": 10, + "type": "array", + "x-tool-description": "Images to edit (max 10; JPEG/PNG/WEBP, max 25MB each). Multipart only." + }, + "aspect_ratio": { + "$ref": "#/components/schemas/NanoBanana21AspectRatio" + }, + "resolution_tier": { + "default": "1K", + "description": "The output resolution tier.", + "enum": [ + "1K", + "2K", + "4K" + ], + "type": "string" + }, + "num_images": { + "default": 1, + "description": "The number of images to generate.", + "maximum": 8, + "minimum": 1, + "type": "integer", + "x-tool-description": "Number of variations of this one prompt. For different subjects, make separate calls instead of listing them in one prompt." + }, + "seed": { + "description": "Random seed. Set for reproducible generation.", + "example": 12345, + "maximum": 2147483647, + "minimum": 0, + "title": "Seed", + "type": "integer", + "x-tool-description": "Set for reproducible generation." + }, + "async": { + "default": false, + "description": "When false (the default), the request waits until the images are ready and returns them in `data`. When true, the request returns as soon as it is accepted; poll `GET /v2/generations/{generation_id}` with the returned `generation_id` for the result.", + "type": "boolean", + "x-tool-description": "Always overridden to true; tools run asynchronously." + }, + "webhook_url": { + "description": "HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a\nJSON POST to this URL once all images for the request have finished\ngenerating. The body mirrors the synchronous generate response:\n`request_id`, `created`, and a `data` array\ncontaining every generated image (`url`, `prompt`, `resolution`, `seed`,\n`is_image_safe`). Each delivery is signed with Ed25519 and verifiable\nagainst the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;\nprivate and loopback hosts and the cloud metadata service are rejected.\n", + "example": "https://api.example.com/webhooks/ideogram", + "format": "uri", + "maxLength": 2048, + "title": "webhook_url", + "type": "string", + "x-tool-description": "Signed completion callback; public HTTPS only (no private/internal hosts)." + }, + "private": { + "description": "When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately.", + "nullable": true, + "type": "boolean", + "x-tool-description": "true keeps the output private; false publishes it. Enterprise output is always private." + }, + "target_collection_id": { + "description": "A collection you can write to, by its URL-safe base64 collection id. The output images are added to it when the request completes.", + "type": "string", + "x-tool-description": "Destination collection ID (URL-safe base64); must be writable." + } + }, + "required": [ + "prompt" + ], + "type": "object", + "x-tool-description": "Supply image_asset_identifiers to edit existing images; omit them to generate from text." + }, "GenerateImageNanoBananaProResponse": { "description": "Response returned by `POST /v2/image/generate/nano-banana-pro`.\nSynchronous requests (the default) include the generated images in\n`data`. Asynchronous requests omit `data`; poll\n`GET /v2/generations/{generation_id}` with the returned\n`generation_id`. `seed` is the seed that was used, including when you\ndid not set one.\n", "example": { @@ -37855,7 +38095,8 @@ ], "example": "GENERAL", "title": "StyleTypeV3", - "type": "string" + "type": "string", + "x-tool-description": "The style type to generate with. With a style reference, saved style or style_preset, use auto; any type other than auto or general is rejected." }, "StylePresetV3": { "description": "A predefined style preset that applies a specific artistic style to the generated image.", @@ -38768,7 +39009,8 @@ ], "example": "general", "title": "IdeogramV3StyleType", - "type": "string" + "type": "string", + "x-tool-description": "The style type to generate with. With a style reference, saved style or style_preset, use auto; any type other than auto or general is rejected." }, "IdeogramV3StylePreset": { "description": "A predefined style preset that applies a specific artistic style to the generated image.", @@ -38911,6 +39153,29 @@ "title": "NanoBanana2AspectRatio", "type": "string" }, + "NanoBanana21AspectRatio": { + "default": "auto", + "description": "Output aspect ratios Nano Banana 2.1 serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.", + "enum": [ + "auto", + "1:1", + "3:2", + "2:3", + "4:3", + "3:4", + "5:4", + "4:5", + "16:9", + "9:16", + "21:9", + "4:1", + "1:4", + "8:1", + "1:8" + ], + "title": "NanoBanana21AspectRatio", + "type": "string" + }, "NanoBananaProAspectRatio": { "default": "auto", "description": "Output aspect ratios Nano Banana Pro serves. `auto` lets the model choose the shape; an edit keeps its source image's shape.",