diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 27524edd..917dddf0 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 8b6cd71c-ea04-44da-af45-e43968b5928d management: - docChecksum: bc2a17a8bdced4449c22e8cb27f02be5 + docChecksum: f3cb384db5d4ebfb44d9bee2439a3a0a docVersion: 1.0.0 - speakeasyVersion: 1.654.0 - generationVersion: 2.750.0 - releaseVersion: 0.1.11 - configChecksum: f7e503f7b6144914db85599585462a92 + speakeasyVersion: 1.658.1 + generationVersion: 2.755.6 + releaseVersion: 0.1.12 + configChecksum: 58991a7987fc75734e6147cc87d5e7fd repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true @@ -15,7 +15,7 @@ features: acceptHeaders: 2.81.2 additionalDependencies: 0.1.0 constsAndDefaults: 0.1.12 - core: 3.26.5 + core: 3.26.7 customCodeRegions: 0.1.0 defaultEnabledRetries: 0.1.0 deprecations: 2.81.1 @@ -74,6 +74,8 @@ generatedFiles: - docs/models/chatmessagecontentitemimagedetail.md - docs/models/chatmessagecontentitemtext.md - docs/models/chatmessagecontentitemvideo.md + - docs/models/chatmessagecontentitemvideoinputvideo.md + - docs/models/chatmessagecontentitemvideovideourl.md - docs/models/chatmessagetokenlogprob.md - docs/models/chatmessagetokenlogprobs.md - docs/models/chatmessagetoolcall.md @@ -508,7 +510,8 @@ generatedFiles: - docs/models/usermessage.md - docs/models/usermessagecontent.md - docs/models/variables.md - - docs/models/videourl.md + - docs/models/videourl1.md + - docs/models/videourl2.md - docs/models/websearchpreviewtooluserlocation.md - docs/models/websearchpreviewtooluserlocationtype.md - docs/models/websearchstatus.md diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index eadf15d5..92245f09 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -30,7 +30,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false typescript: - version: 0.1.11 + version: 0.1.12 acceptHeaderEnum: false additionalDependencies: dependencies: {} diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 3923d43c..36d073a2 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -4657,21 +4657,38 @@ components: - type - input_audio ChatMessageContentItemVideo: - type: object - properties: - type: - type: string - const: input_video - video_url: - type: object + oneOf: + - type: object properties: - url: + type: type: string + const: input_video + video_url: + type: object + properties: + url: + type: string + required: + - url required: - - url - required: - - type - - video_url + - type + - video_url + - type: object + properties: + type: + type: string + const: video_url + video_url: + type: object + properties: + url: + type: string + required: + - url + required: + - type + - video_url + type: object ChatMessageContentItem: oneOf: - $ref: '#/components/schemas/ChatMessageContentItemText' @@ -4686,6 +4703,7 @@ components: image_url: '#/components/schemas/ChatMessageContentItemImage' input_audio: '#/components/schemas/ChatMessageContentItemAudio' input_video: '#/components/schemas/ChatMessageContentItemVideo' + video_url: '#/components/schemas/ChatMessageContentItemVideo' ChatMessageToolCall: type: object properties: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index fdcaa293..e9a82359 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -4680,21 +4680,38 @@ components: - type - input_audio ChatMessageContentItemVideo: - type: object - properties: - type: - type: string - const: input_video - video_url: - type: object + oneOf: + - type: object properties: - url: + type: type: string + const: input_video + video_url: + type: object + properties: + url: + type: string + required: + - url required: - - url - required: - - type - - video_url + - type + - video_url + - type: object + properties: + type: + type: string + const: video_url + video_url: + type: object + properties: + url: + type: string + required: + - url + required: + - type + - video_url + type: object ChatMessageContentItem: oneOf: - $ref: '#/components/schemas/ChatMessageContentItemText' @@ -4709,6 +4726,7 @@ components: image_url: '#/components/schemas/ChatMessageContentItemImage' input_audio: '#/components/schemas/ChatMessageContentItemAudio' input_video: '#/components/schemas/ChatMessageContentItemVideo' + video_url: '#/components/schemas/ChatMessageContentItemVideo' ChatMessageToolCall: type: object properties: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 12bf61b6..11aa52dc 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.654.0 +speakeasyVersion: 1.658.1 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:08647b466c00989914e3a2436175152270f771f0a57d055f5bab14cc2d4be89e - sourceBlobDigest: sha256:53027ec57392d9617cc001ece83c2fe1aa6e5dbfd52d170381c34c33c6042c23 + sourceRevisionDigest: sha256:dccdd6d8e61ea181bc9254207827c883c6e2097ba113d59a10a5e3e0a6a6c7c1 + sourceBlobDigest: sha256:0ad23d34c1945df70f227b3ab39280c587785e7ca5295978e8200df7bf22e1ee tags: - latest - staging @@ -12,10 +12,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:08647b466c00989914e3a2436175152270f771f0a57d055f5bab14cc2d4be89e - sourceBlobDigest: sha256:53027ec57392d9617cc001ece83c2fe1aa6e5dbfd52d170381c34c33c6042c23 + sourceRevisionDigest: sha256:dccdd6d8e61ea181bc9254207827c883c6e2097ba113d59a10a5e3e0a6a6c7c1 + sourceBlobDigest: sha256:0ad23d34c1945df70f227b3ab39280c587785e7ca5295978e8200df7bf22e1ee codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:e30bf4d24076522aaf92aa570cc8b7ba008d86e9a36336d815e99dbf154d3b47 + codeSamplesRevisionDigest: sha256:60f39f4ae7fef520d6fd747e5c79e462eb3ce73d4686d4fd0d6487e7df7964e7 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/docs/models/assistantmessagecontent.md b/docs/models/assistantmessagecontent.md index dfdbba6c..30a5052e 100644 --- a/docs/models/assistantmessagecontent.md +++ b/docs/models/assistantmessagecontent.md @@ -14,8 +14,10 @@ const value: string = ""; ```typescript const value: models.ChatMessageContentItem[] = [ { - type: "text", - text: "", + type: "image_url", + imageUrl: { + url: "https://pretty-reservation.org", + }, }, ]; ``` diff --git a/docs/models/chatmessagecontentitem.md b/docs/models/chatmessagecontentitem.md index 273f186d..da9d3c15 100644 --- a/docs/models/chatmessagecontentitem.md +++ b/docs/models/chatmessagecontentitem.md @@ -18,7 +18,7 @@ const value: models.ChatMessageContentItemText = { const value: models.ChatMessageContentItemImage = { type: "image_url", imageUrl: { - url: "https://better-nephew.com/", + url: "https://pretty-reservation.org", }, }; ``` @@ -39,9 +39,20 @@ const value: models.ChatMessageContentItemAudio = { ```typescript const value: models.ChatMessageContentItemVideo = { - type: "input_video", + type: "video_url", videoUrl: { - url: "https://imaginative-mousse.org", + url: "https://palatable-subexpression.com/", + }, +}; +``` + +### `models.ChatMessageContentItemVideo` + +```typescript +const value: models.ChatMessageContentItemVideo = { + type: "video_url", + videoUrl: { + url: "https://palatable-subexpression.com/", }, }; ``` diff --git a/docs/models/chatmessagecontentitemimage.md b/docs/models/chatmessagecontentitemimage.md index 7341c287..aa9882d5 100644 --- a/docs/models/chatmessagecontentitemimage.md +++ b/docs/models/chatmessagecontentitemimage.md @@ -8,7 +8,7 @@ import { ChatMessageContentItemImage } from "@openrouter/sdk/models"; let value: ChatMessageContentItemImage = { type: "image_url", imageUrl: { - url: "https://better-nephew.com/", + url: "https://pretty-reservation.org", }, }; ``` diff --git a/docs/models/chatmessagecontentitemvideo.md b/docs/models/chatmessagecontentitemvideo.md index 96ac2105..8bcb8beb 100644 --- a/docs/models/chatmessagecontentitemvideo.md +++ b/docs/models/chatmessagecontentitemvideo.md @@ -1,21 +1,27 @@ # ChatMessageContentItemVideo -## Example Usage -```typescript -import { ChatMessageContentItemVideo } from "@openrouter/sdk/models"; +## Supported Types + +### `models.ChatMessageContentItemVideoInputVideo` -let value: ChatMessageContentItemVideo = { +```typescript +const value: models.ChatMessageContentItemVideoInputVideo = { type: "input_video", videoUrl: { - url: "https://imaginative-mousse.org", + url: "https://salty-diversity.biz", }, }; ``` -## Fields +### `models.ChatMessageContentItemVideoVideoURL` + +```typescript +const value: models.ChatMessageContentItemVideoVideoURL = { + type: "video_url", + videoUrl: { + url: "https://palatable-subexpression.com/", + }, +}; +``` -| Field | Type | Required | Description | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `type` | *string* | :heavy_check_mark: | N/A | -| `videoUrl` | [models.VideoUrl](../models/videourl.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/chatmessagecontentitemvideoinputvideo.md b/docs/models/chatmessagecontentitemvideoinputvideo.md new file mode 100644 index 00000000..80afbbc9 --- /dev/null +++ b/docs/models/chatmessagecontentitemvideoinputvideo.md @@ -0,0 +1,21 @@ +# ChatMessageContentItemVideoInputVideo + +## Example Usage + +```typescript +import { ChatMessageContentItemVideoInputVideo } from "@openrouter/sdk/models"; + +let value: ChatMessageContentItemVideoInputVideo = { + type: "input_video", + videoUrl: { + url: "https://salty-diversity.biz", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| `type` | *string* | :heavy_check_mark: | N/A | +| `videoUrl` | [models.VideoUrl1](../models/videourl1.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/chatmessagecontentitemvideovideourl.md b/docs/models/chatmessagecontentitemvideovideourl.md new file mode 100644 index 00000000..8c4afb4c --- /dev/null +++ b/docs/models/chatmessagecontentitemvideovideourl.md @@ -0,0 +1,21 @@ +# ChatMessageContentItemVideoVideoURL + +## Example Usage + +```typescript +import { ChatMessageContentItemVideoVideoURL } from "@openrouter/sdk/models"; + +let value: ChatMessageContentItemVideoVideoURL = { + type: "video_url", + videoUrl: { + url: "https://palatable-subexpression.com/", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| `type` | *string* | :heavy_check_mark: | N/A | +| `videoUrl` | [models.VideoUrl2](../models/videourl2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/toolresponsemessagecontent.md b/docs/models/toolresponsemessagecontent.md index d3caea71..7926f5c3 100644 --- a/docs/models/toolresponsemessagecontent.md +++ b/docs/models/toolresponsemessagecontent.md @@ -14,8 +14,10 @@ const value: string = ""; ```typescript const value: models.ChatMessageContentItem[] = [ { - type: "text", - text: "", + type: "image_url", + imageUrl: { + url: "https://pretty-reservation.org", + }, }, ]; ``` diff --git a/docs/models/usermessagecontent.md b/docs/models/usermessagecontent.md index 8e4cbf88..69eeecaf 100644 --- a/docs/models/usermessagecontent.md +++ b/docs/models/usermessagecontent.md @@ -14,8 +14,10 @@ const value: string = ""; ```typescript const value: models.ChatMessageContentItem[] = [ { - type: "text", - text: "", + type: "image_url", + imageUrl: { + url: "https://pretty-reservation.org", + }, }, ]; ``` diff --git a/docs/models/videourl1.md b/docs/models/videourl1.md new file mode 100644 index 00000000..aa61751a --- /dev/null +++ b/docs/models/videourl1.md @@ -0,0 +1,17 @@ +# VideoUrl1 + +## Example Usage + +```typescript +import { VideoUrl1 } from "@openrouter/sdk/models"; + +let value: VideoUrl1 = { + url: "https://colorless-milestone.net/", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `url` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/videourl.md b/docs/models/videourl2.md similarity index 70% rename from docs/models/videourl.md rename to docs/models/videourl2.md index 99f2f67d..0ec1780e 100644 --- a/docs/models/videourl.md +++ b/docs/models/videourl2.md @@ -1,12 +1,12 @@ -# VideoUrl +# VideoUrl2 ## Example Usage ```typescript -import { VideoUrl } from "@openrouter/sdk/models"; +import { VideoUrl2 } from "@openrouter/sdk/models"; -let value: VideoUrl = { - url: "https://tangible-extent.net/", +let value: VideoUrl2 = { + url: "https://triangular-soup.info", }; ``` diff --git a/examples/nextjs-example/package-lock.json b/examples/nextjs-example/package-lock.json index f3728793..e447e11c 100644 --- a/examples/nextjs-example/package-lock.json +++ b/examples/nextjs-example/package-lock.json @@ -36,7 +36,7 @@ }, "../..": { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.12", "license": "Apache-2.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/jsr.json b/jsr.json index b75bb7a0..96ec6b3f 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.12", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 074b4c02..64d55f13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.12", "license": "Apache-2.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/package.json b/package.json index c4ff254d..caa11dca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "0.1.11", + "version": "0.1.12", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 300+ language models through a unified API.", "keywords": [ diff --git a/src/lib/config.ts b/src/lib/config.ts index 516c1e42..21fd12df 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -59,7 +59,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "0.1.11", - genVersion: "2.750.0", - userAgent: "speakeasy-sdk/typescript 0.1.11 2.750.0 1.0.0 @openrouter/sdk", + sdkVersion: "0.1.12", + genVersion: "2.755.6", + userAgent: "speakeasy-sdk/typescript 0.1.12 2.755.6 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/chatmessagecontentitem.ts b/src/models/chatmessagecontentitem.ts index f762f382..fabd198e 100644 --- a/src/models/chatmessagecontentitem.ts +++ b/src/models/chatmessagecontentitem.ts @@ -35,7 +35,8 @@ export type ChatMessageContentItem = | (ChatMessageContentItemText & { type: "text" }) | (ChatMessageContentItemImage & { type: "image_url" }) | (ChatMessageContentItemAudio & { type: "input_audio" }) - | (ChatMessageContentItemVideo & { type: "input_video" }); + | (ChatMessageContentItemVideo & { type: "input_video" }) + | (ChatMessageContentItemVideo & { type: "video_url" }); /** @internal */ export const ChatMessageContentItem$inboundSchema: z.ZodType< @@ -54,13 +55,17 @@ export const ChatMessageContentItem$inboundSchema: z.ZodType< ChatMessageContentItemVideo$inboundSchema.and( z.object({ type: z.literal("input_video") }), ), + z.lazy(() => ChatMessageContentItemVideo$inboundSchema).and( + z.object({ type: z.literal("video_url") }), + ), ]); /** @internal */ export type ChatMessageContentItem$Outbound = | (ChatMessageContentItemText$Outbound & { type: "text" }) | (ChatMessageContentItemImage$Outbound & { type: "image_url" }) | (ChatMessageContentItemAudio$Outbound & { type: "input_audio" }) - | (ChatMessageContentItemVideo$Outbound & { type: "input_video" }); + | (ChatMessageContentItemVideo$Outbound & { type: "input_video" }) + | (ChatMessageContentItemVideo$Outbound & { type: "video_url" }); /** @internal */ export const ChatMessageContentItem$outboundSchema: z.ZodType< @@ -79,6 +84,9 @@ export const ChatMessageContentItem$outboundSchema: z.ZodType< ChatMessageContentItemVideo$outboundSchema.and( z.object({ type: z.literal("input_video") }), ), + z.lazy(() => ChatMessageContentItemVideo$outboundSchema).and( + z.object({ type: z.literal("video_url") }), + ), ]); export function chatMessageContentItemToJSON( diff --git a/src/models/chatmessagecontentitemvideo.ts b/src/models/chatmessagecontentitemvideo.ts index f1d8316e..d4d3f3f3 100644 --- a/src/models/chatmessagecontentitemvideo.ts +++ b/src/models/chatmessagecontentitemvideo.ts @@ -8,74 +8,212 @@ import { safeParse } from "../lib/schemas.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; -export type VideoUrl = { +export type VideoUrl2 = { url: string; }; -export type ChatMessageContentItemVideo = { +export type ChatMessageContentItemVideoVideoURL = { + type: "video_url"; + videoUrl: VideoUrl2; +}; + +export type VideoUrl1 = { + url: string; +}; + +export type ChatMessageContentItemVideoInputVideo = { type: "input_video"; - videoUrl: VideoUrl; + videoUrl: VideoUrl1; }; +export type ChatMessageContentItemVideo = + | ChatMessageContentItemVideoInputVideo + | ChatMessageContentItemVideoVideoURL; + /** @internal */ -export const VideoUrl$inboundSchema: z.ZodType = z.object({ +export const VideoUrl2$inboundSchema: z.ZodType = z.object({ url: z.string(), }); /** @internal */ -export type VideoUrl$Outbound = { +export type VideoUrl2$Outbound = { url: string; }; /** @internal */ -export const VideoUrl$outboundSchema: z.ZodType = z - .object({ - url: z.string(), +export const VideoUrl2$outboundSchema: z.ZodType< + VideoUrl2$Outbound, + VideoUrl2 +> = z.object({ + url: z.string(), +}); + +export function videoUrl2ToJSON(videoUrl2: VideoUrl2): string { + return JSON.stringify(VideoUrl2$outboundSchema.parse(videoUrl2)); +} +export function videoUrl2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => VideoUrl2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'VideoUrl2' from JSON`, + ); +} + +/** @internal */ +export const ChatMessageContentItemVideoVideoURL$inboundSchema: z.ZodType< + ChatMessageContentItemVideoVideoURL, + unknown +> = z.object({ + type: z.literal("video_url"), + video_url: z.lazy(() => VideoUrl2$inboundSchema), +}).transform((v) => { + return remap$(v, { + "video_url": "videoUrl", + }); +}); +/** @internal */ +export type ChatMessageContentItemVideoVideoURL$Outbound = { + type: "video_url"; + video_url: VideoUrl2$Outbound; +}; + +/** @internal */ +export const ChatMessageContentItemVideoVideoURL$outboundSchema: z.ZodType< + ChatMessageContentItemVideoVideoURL$Outbound, + ChatMessageContentItemVideoVideoURL +> = z.object({ + type: z.literal("video_url"), + videoUrl: z.lazy(() => VideoUrl2$outboundSchema), +}).transform((v) => { + return remap$(v, { + videoUrl: "video_url", }); +}); -export function videoUrlToJSON(videoUrl: VideoUrl): string { - return JSON.stringify(VideoUrl$outboundSchema.parse(videoUrl)); +export function chatMessageContentItemVideoVideoURLToJSON( + chatMessageContentItemVideoVideoURL: ChatMessageContentItemVideoVideoURL, +): string { + return JSON.stringify( + ChatMessageContentItemVideoVideoURL$outboundSchema.parse( + chatMessageContentItemVideoVideoURL, + ), + ); } -export function videoUrlFromJSON( +export function chatMessageContentItemVideoVideoURLFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => VideoUrl$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'VideoUrl' from JSON`, + (x) => + ChatMessageContentItemVideoVideoURL$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChatMessageContentItemVideoVideoURL' from JSON`, ); } /** @internal */ -export const ChatMessageContentItemVideo$inboundSchema: z.ZodType< - ChatMessageContentItemVideo, +export const VideoUrl1$inboundSchema: z.ZodType = z.object({ + url: z.string(), +}); +/** @internal */ +export type VideoUrl1$Outbound = { + url: string; +}; + +/** @internal */ +export const VideoUrl1$outboundSchema: z.ZodType< + VideoUrl1$Outbound, + VideoUrl1 +> = z.object({ + url: z.string(), +}); + +export function videoUrl1ToJSON(videoUrl1: VideoUrl1): string { + return JSON.stringify(VideoUrl1$outboundSchema.parse(videoUrl1)); +} +export function videoUrl1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => VideoUrl1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'VideoUrl1' from JSON`, + ); +} + +/** @internal */ +export const ChatMessageContentItemVideoInputVideo$inboundSchema: z.ZodType< + ChatMessageContentItemVideoInputVideo, unknown > = z.object({ type: z.literal("input_video"), - video_url: z.lazy(() => VideoUrl$inboundSchema), + video_url: z.lazy(() => VideoUrl1$inboundSchema), }).transform((v) => { return remap$(v, { "video_url": "videoUrl", }); }); /** @internal */ -export type ChatMessageContentItemVideo$Outbound = { +export type ChatMessageContentItemVideoInputVideo$Outbound = { type: "input_video"; - video_url: VideoUrl$Outbound; + video_url: VideoUrl1$Outbound; }; /** @internal */ -export const ChatMessageContentItemVideo$outboundSchema: z.ZodType< - ChatMessageContentItemVideo$Outbound, - ChatMessageContentItemVideo +export const ChatMessageContentItemVideoInputVideo$outboundSchema: z.ZodType< + ChatMessageContentItemVideoInputVideo$Outbound, + ChatMessageContentItemVideoInputVideo > = z.object({ type: z.literal("input_video"), - videoUrl: z.lazy(() => VideoUrl$outboundSchema), + videoUrl: z.lazy(() => VideoUrl1$outboundSchema), }).transform((v) => { return remap$(v, { videoUrl: "video_url", }); }); +export function chatMessageContentItemVideoInputVideoToJSON( + chatMessageContentItemVideoInputVideo: ChatMessageContentItemVideoInputVideo, +): string { + return JSON.stringify( + ChatMessageContentItemVideoInputVideo$outboundSchema.parse( + chatMessageContentItemVideoInputVideo, + ), + ); +} +export function chatMessageContentItemVideoInputVideoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ChatMessageContentItemVideoInputVideo$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChatMessageContentItemVideoInputVideo' from JSON`, + ); +} + +/** @internal */ +export const ChatMessageContentItemVideo$inboundSchema: z.ZodType< + ChatMessageContentItemVideo, + unknown +> = z.union([ + z.lazy(() => ChatMessageContentItemVideoInputVideo$inboundSchema), + z.lazy(() => ChatMessageContentItemVideoVideoURL$inboundSchema), +]); +/** @internal */ +export type ChatMessageContentItemVideo$Outbound = + | ChatMessageContentItemVideoInputVideo$Outbound + | ChatMessageContentItemVideoVideoURL$Outbound; + +/** @internal */ +export const ChatMessageContentItemVideo$outboundSchema: z.ZodType< + ChatMessageContentItemVideo$Outbound, + ChatMessageContentItemVideo +> = z.union([ + z.lazy(() => ChatMessageContentItemVideoInputVideo$outboundSchema), + z.lazy(() => ChatMessageContentItemVideoVideoURL$outboundSchema), +]); + export function chatMessageContentItemVideoToJSON( chatMessageContentItemVideo: ChatMessageContentItemVideo, ): string {