From 71645335d6e05ef63cbd2a331dd2f488913961a5 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sun, 21 Dec 2025 23:44:35 -0500 Subject: [PATCH] veo 3 client --- .../veo_3p1_fast_multi_function_video_gen.rs | 2 +- .../src/endpoints/generate/video/mod.rs | 1 + .../generate/video/multi_function/mod.rs | 2 ++ .../veo_3p1_fast_multi_function_video_gen.rs | 18 ++++++++++++++++++ .../veo_3p1_multi_function_video_gen.rs | 18 ++++++++++++++++++ 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/mod.rs create mode 100644 crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs create mode 100644 crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen.rs diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs index ca345d06f6..7b8acdc1c1 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs @@ -3,7 +3,7 @@ use tokens::tokens::generic_inference_jobs::InferenceJobToken; use tokens::tokens::media_files::MediaFileToken; use utoipa::ToSchema; -pub const VEO_3P1_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/veo_3p1_fast"; +pub const VEO_3P1_FAST_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/veo_3p1_fast"; /// Both text-to-video and image-to-video in one request. #[derive(Serialize, Deserialize, ToSchema)] diff --git a/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/mod.rs b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/mod.rs index ab29e4f1ee..28a28bdbb2 100644 --- a/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/mod.rs +++ b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/mod.rs @@ -5,3 +5,4 @@ pub mod generate_seedance_1_0_lite_image_to_video; pub mod generate_veo_2_image_to_video; pub mod generate_veo_3_fast_image_to_video; pub mod generate_veo_3_image_to_video; +pub mod multi_function; diff --git a/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/mod.rs b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/mod.rs new file mode 100644 index 0000000000..4a9d4cdb3c --- /dev/null +++ b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/mod.rs @@ -0,0 +1,2 @@ +pub mod veo_3p1_multi_function_video_gen; +pub mod veo_3p1_fast_multi_function_video_gen; \ No newline at end of file diff --git a/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs new file mode 100644 index 0000000000..d261aa77d0 --- /dev/null +++ b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen.rs @@ -0,0 +1,18 @@ +use crate::credentials::storyteller_credential_set::StorytellerCredentialSet; +use crate::error::storyteller_error::StorytellerError; +use crate::utils::api_host::ApiHost; +use crate::utils::basic_json_post_request::basic_json_post_request; +use artcraft_api_defs::generate::video::multi_function::veo_3p1_fast_multi_function_video_gen::{Veo3p1FastMultiFunctionVideoGenRequest, Veo3p1FastMultiFunctionVideoGenResponse, VEO_3P1_FAST_MULTI_FUNCTION_VIDEO_VIDEO_PATH}; + +pub async fn veo_3p1_fast_multi_function_image_gen( + api_host: &ApiHost, + maybe_creds: Option<&StorytellerCredentialSet>, + request: Veo3p1FastMultiFunctionVideoGenRequest, +) -> Result { + Ok(basic_json_post_request( + api_host, + VEO_3P1_FAST_MULTI_FUNCTION_VIDEO_VIDEO_PATH, + maybe_creds, + request, + ).await?) +} diff --git a/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen.rs b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen.rs new file mode 100644 index 0000000000..062ab20c13 --- /dev/null +++ b/crates/api_clients/artcraft/storyteller_client/src/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen.rs @@ -0,0 +1,18 @@ +use crate::credentials::storyteller_credential_set::StorytellerCredentialSet; +use crate::error::storyteller_error::StorytellerError; +use crate::utils::api_host::ApiHost; +use crate::utils::basic_json_post_request::basic_json_post_request; +use artcraft_api_defs::generate::video::multi_function::veo_3p1_multi_function_video_gen::{Veo3p1MultiFunctionVideoGenRequest, Veo3p1MultiFunctionVideoGenResponse, VEO_3P1_MULTI_FUNCTION_VIDEO_VIDEO_PATH}; + +pub async fn veo_3p1_multi_function_image_gen( + api_host: &ApiHost, + maybe_creds: Option<&StorytellerCredentialSet>, + request: Veo3p1MultiFunctionVideoGenRequest, +) -> Result { + Ok(basic_json_post_request( + api_host, + VEO_3P1_MULTI_FUNCTION_VIDEO_VIDEO_PATH, + maybe_creds, + request, + ).await?) +}