8080import java .util .ArrayList ;
8181import java .util .List ;
8282import java .util .concurrent .CompletableFuture ;
83+ import java .util .concurrent .atomic .AtomicBoolean ;
8384import java .util .function .Function ;
8485import java .util .logging .Logger ;
8586
@@ -568,6 +569,10 @@ CompletableFuture<GenerateVideosOperation> privateGenerateVideos(
568569 }
569570
570571 private static final Logger logger = Logger .getLogger (AsyncModels .class .getName ());
572+ private static final AtomicBoolean loggedGenerateImagesWarning = new AtomicBoolean (false );
573+ private static final AtomicBoolean loggedEditImageWarning = new AtomicBoolean (false );
574+ private static final AtomicBoolean loggedGenerateVideosVideoWarning = new AtomicBoolean (false );
575+ private static final AtomicBoolean loggedGenerateVideosWarning = new AtomicBoolean (false );
571576
572577 /**
573578 * Asynchronously counts tokens given a GenAI model and a text string.
@@ -832,9 +837,19 @@ public CompletableFuture<ResponseStream<GenerateContentResponse>> generateConten
832837 * optional configurations
833838 * @return a {@link com.google.genai.types.GenerateImagesResponse} instance that contains the
834839 * generated images.
840+ * @deprecated Use {@link #generateContent(String, Content)} instead.
835841 */
842+ @ Deprecated
836843 public CompletableFuture <GenerateImagesResponse > generateImages (
837844 String model , String prompt , GenerateImagesConfig config ) {
845+ if (loggedGenerateImagesWarning .compareAndSet (false , true )) {
846+ logger .warning (
847+ "The generateImages method is deprecated and will be removed in the next major release"
848+ + " (not before Jan. 1 2027). Please use the generateContent method with image models"
849+ + " instead. See https://ai.google.dev/gemini-api/docs/deprecations#imagen-models and"
850+ + " https:/"
851+ + "/docs.cloud.google.com/gemini-enterprise-agent-platform/models/capabilities/image-generation#generate-images" );
852+ }
838853 return privateGenerateImages (model , prompt , config )
839854 .thenApply (models ::postProcessGenerateImagesResponse );
840855 }
@@ -855,9 +870,18 @@ public CompletableFuture<GenerateImagesResponse> generateImages(
855870 * optional configurations
856871 * @return a {@link com.google.genai.types.EditImageResponse} instance that contains the edited
857872 * image.
873+ * @deprecated Use {@link #generateContent(String, Content)} instead.
858874 */
875+ @ Deprecated
859876 public CompletableFuture <EditImageResponse > editImage (
860877 String model , String prompt , List <ReferenceImage > referenceImages , EditImageConfig config ) {
878+ if (loggedEditImageWarning .compareAndSet (false , true )) {
879+ logger .warning (
880+ "The editImage method is deprecated and will be removed in the next major release (not"
881+ + " before Jan. 1 2027). Please use the generateContent method with image models"
882+ + " instead. See https:/"
883+ + "/docs.cloud.google.com/gemini-enterprise-agent-platform/models/capabilities/gemini-edit-images#edit-an-image" );
884+ }
861885 List <ReferenceImageAPI > referenceImagesAPI = new ArrayList <>();
862886 for (ReferenceImage referenceImage : referenceImages ) {
863887 referenceImagesAPI .add (referenceImage .toReferenceImageAPI ());
@@ -917,9 +941,18 @@ public CompletableFuture<GenerateVideosOperation> generateVideos(
917941 * optional configurations
918942 * @return a {@link com.google.genai.types.GenerateVideosOperation} instance that contains the
919943 * generated videos.
944+ * @deprecated Use {@link #generateVideos(String, GenerateVideosSource, GenerateVideosConfig)}
945+ * instead.
920946 */
947+ @ Deprecated
921948 public CompletableFuture <GenerateVideosOperation > generateVideos (
922949 String model , String prompt , Image image , Video video , GenerateVideosConfig config ) {
950+ if (loggedGenerateVideosVideoWarning .compareAndSet (false , true )) {
951+ logger .warning (
952+ "The generateVideos (with prompt, image, video) method is deprecated and will be removed"
953+ + " in the next major release (not before 2026-07-31). Please use"
954+ + " generateVideos(String, GenerateVideosSource, GenerateVideosConfig) instead." );
955+ }
923956 return privateGenerateVideos (model , prompt , image , models .preProcessVideo (video ), null , config );
924957 }
925958
@@ -935,9 +968,18 @@ public CompletableFuture<GenerateVideosOperation> generateVideos(
935968 * optional configurations
936969 * @return a {@link com.google.genai.types.GenerateVideosOperation} instance that contains the
937970 * generated videos.
971+ * @deprecated Use {@link #generateVideos(String, GenerateVideosSource, GenerateVideosConfig)}
972+ * instead.
938973 */
974+ @ Deprecated
939975 public CompletableFuture <GenerateVideosOperation > generateVideos (
940976 String model , String prompt , Image image , GenerateVideosConfig config ) {
977+ if (loggedGenerateVideosWarning .compareAndSet (false , true )) {
978+ logger .warning (
979+ "The generateVideos (with prompt, image) method is deprecated and will be removed in the"
980+ + " next major release (not before 2026-07-31). Please use generateVideos(String,"
981+ + " GenerateVideosSource, GenerateVideosConfig) instead." );
982+ }
941983 return generateVideos (model , prompt , image , null , config );
942984 }
943985
0 commit comments