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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@ internal static partial class ApiEndpointsPublishJobCommandApiCommand
private static Option<global::Descript.PublishJobRequestMediaType?> MediaType { get; } = new(
name: @"--media-type")
{
Description = @"Media type of the published output.",
Description = @"Media type of the published output. Defaults to `Video` when omitted.

If the target composition has no video content:
- omitting `media_type` publishes it as `Audio`
(the completed job result reports `media_type: Audio`),
- explicitly requesting `Video` is rejected with a 422.
",
};

private static Option<global::Descript.PublishJobRequestResolution?> Resolution { get; } = new(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -480,20 +480,24 @@ partial void ProcessPublishJobResponseContent(
h => h.Key,
h => h.Value));
}
//
// Unprocessable Entity: - `media_type` was explicitly set to `Video` but the target composition has no video content. Retry with `media_type` set to `Audio` (or omit it to publish as audio).
if ((int)__response.StatusCode == 422)
{
string? __content_422 = null;
global::System.Exception? __exception_422 = null;
global::Descript.Error400? __value_422 = null;
try
{
if (__effectiveReadResponseAsString)
{
__content_422 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);
__value_422 = global::Descript.Error400.FromJson(__content_422, JsonSerializerContext);
}
else
{
__content_422 = await __response.Content.ReadAsStringAsync(__effectiveCancellationToken).ConfigureAwait(false);

__value_422 = global::Descript.Error400.FromJson(__content_422, JsonSerializerContext);
}
}
catch (global::System.Exception __ex)
Expand All @@ -502,11 +506,12 @@ partial void ProcessPublishJobResponseContent(
}


throw global::Descript.ApiException.Create(
throw global::Descript.ApiException<global::Descript.Error400>.Create(
statusCode: __response.StatusCode,
message: __content_422 ?? __response.ReasonPhrase ?? string.Empty,
innerException: __exception_422,
responseBody: __content_422,
responseObject: __value_422,
responseHeaders: global::System.Linq.Enumerable.ToDictionary(
__response.Headers,
h => h.Key,
Expand Down Expand Up @@ -674,7 +679,11 @@ partial void ProcessPublishJobResponseContent(
/// Example: 39677a40-1c43-4c36-8449-46cfbc4de2b5
/// </param>
/// <param name="mediaType">
/// Media type of the published output.<br/>
/// Media type of the published output. Defaults to `Video` when omitted.<br/>
/// If the target composition has no video content:<br/>
/// - omitting `media_type` publishes it as `Audio`<br/>
/// (the completed job result reports `media_type: Audio`),<br/>
/// - explicitly requesting `Video` is rejected with a 422.<br/>
/// Default Value: Video
/// </param>
/// <param name="resolution">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,11 @@ public partial interface IApiEndpointsClient
/// Example: 39677a40-1c43-4c36-8449-46cfbc4de2b5
/// </param>
/// <param name="mediaType">
/// Media type of the published output.<br/>
/// Media type of the published output. Defaults to `Video` when omitted.<br/>
/// If the target composition has no video content:<br/>
/// - omitting `media_type` publishes it as `Audio`<br/>
/// (the completed job result reports `media_type: Audio`),<br/>
/// - explicitly requesting `Video` is rejected with a 422.<br/>
/// Default Value: Video
/// </param>
/// <param name="resolution">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#nullable enable

namespace Descript.JsonConverters
{
/// <inheritdoc />
public sealed class PublishSuccessResultMediaTypeJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Descript.PublishSuccessResultMediaType>
{
/// <inheritdoc />
public override global::Descript.PublishSuccessResultMediaType 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::Descript.PublishSuccessResultMediaTypeExtensions.ToEnum(stringValue) ?? default;
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::Descript.PublishSuccessResultMediaType)numValue;
}
case global::System.Text.Json.JsonTokenType.Null:
{
return default(global::Descript.PublishSuccessResultMediaType);
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
}

return default;
}

/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::Descript.PublishSuccessResultMediaType value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));

writer.WriteStringValue(global::Descript.PublishSuccessResultMediaTypeExtensions.ToValueString(value));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#nullable enable

namespace Descript.JsonConverters
{
/// <inheritdoc />
public sealed class PublishSuccessResultMediaTypeNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter<global::Descript.PublishSuccessResultMediaType?>
{
/// <inheritdoc />
public override global::Descript.PublishSuccessResultMediaType? 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::Descript.PublishSuccessResultMediaTypeExtensions.ToEnum(stringValue);
}

break;
}
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
return (global::Descript.PublishSuccessResultMediaType)numValue;
}
case global::System.Text.Json.JsonTokenType.Null:
{
return default(global::Descript.PublishSuccessResultMediaType?);
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
}

return default;
}

/// <inheritdoc />
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
global::Descript.PublishSuccessResultMediaType? 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::Descript.PublishSuccessResultMediaTypeExtensions.ToValueString(value.Value));
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ namespace Descript

typeof(global::Descript.JsonConverters.PublishSuccessResultStatusNullableJsonConverter),

typeof(global::Descript.JsonConverters.PublishSuccessResultMediaTypeJsonConverter),

typeof(global::Descript.JsonConverters.PublishSuccessResultMediaTypeNullableJsonConverter),

typeof(global::Descript.JsonConverters.PublishErrorResultStatusJsonConverter),

typeof(global::Descript.JsonConverters.PublishErrorResultStatusNullableJsonConverter),
Expand Down Expand Up @@ -232,6 +236,7 @@ namespace Descript
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.AgentJobStatusResultDiscriminatorStatus), TypeInfoPropertyName = "AgentJobStatusResultDiscriminatorStatus2")]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishSuccessResult))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishSuccessResultStatus), TypeInfoPropertyName = "PublishSuccessResultStatus2")]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishSuccessResultMediaType), TypeInfoPropertyName = "PublishSuccessResultMediaType2")]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishErrorResult))]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishErrorResultStatus), TypeInfoPropertyName = "PublishErrorResultStatus2")]
[global::System.Text.Json.Serialization.JsonSerializable(typeof(global::Descript.PublishJobStatus))]
Expand Down
Loading