Skip to content

Commit 6cb7d7a

Browse files
google-genai-botcopybara-github
authored andcommitted
feat!: add enum support
PiperOrigin-RevId: 754997060
1 parent 04971fc commit 6cb7d7a

File tree

76 files changed

+165
-2724
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+165
-2724
lines changed

README.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,6 @@ import com.google.genai.types.Content;
215215
import com.google.genai.types.GenerateContentConfig;
216216
import com.google.genai.types.GenerateContentResponse;
217217
import com.google.genai.types.GoogleSearch;
218-
import com.google.genai.types.HarmBlockThreshold;
219-
import com.google.genai.types.HarmCategory;
220218
import com.google.genai.types.Part;
221219
import com.google.genai.types.SafetySetting;
222220
import com.google.genai.types.Tool;
@@ -229,12 +227,12 @@ public class GenerateContentWithConfigs {
229227
ImmutableList<SafetySetting> safetySettings =
230228
ImmutableList.of(
231229
SafetySetting.builder()
232-
.category(HarmCategory.Known.HARM_CATEGORY_HATE_SPEECH)
233-
.threshold(HarmBlockThreshold.Known.BLOCK_ONLY_HIGH)
230+
.category("HARM_CATEGORY_HATE_SPEECH")
231+
.threshold("BLOCK_ONLY_HIGH")
234232
.build(),
235233
SafetySetting.builder()
236-
.category(HarmCategory.Known.HARM_CATEGORY_DANGEROUS_CONTENT)
237-
.threshold(HarmBlockThreshold.Known.BLOCK_LOW_AND_ABOVE)
234+
.category("HARM_CATEGORY_DANGEROUS_CONTENT")
235+
.threshold("BLOCK_LOW_AND_ABOVE")
238236
.build());
239237

240238
// Sets the system instruction in the config.
@@ -272,7 +270,6 @@ import com.google.genai.Client;
272270
import com.google.genai.types.GenerateContentConfig;
273271
import com.google.genai.types.GenerateContentResponse;
274272
import com.google.genai.types.Schema;
275-
import com.google.genai.types.Type;
276273

277274
public class GenerateContentWithSchema {
278275
public static void main(String[] args) {
@@ -283,7 +280,7 @@ public class GenerateContentWithSchema {
283280
.type("object")
284281
.properties(
285282
ImmutableMap.of(
286-
"name", Schema.builder().type(Type.Known.STRING).description("Your Name").build()))
283+
"name", Schema.builder().type("string").description("Your Name").build()))
287284
.build();
288285
GenerateContentConfig config =
289286
GenerateContentConfig.builder()

examples/src/main/java/com/google/genai/examples/EditImageAsync.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,11 @@
4040
import com.google.genai.Client;
4141
import com.google.genai.types.EditImageConfig;
4242
import com.google.genai.types.EditImageResponse;
43-
import com.google.genai.types.EditMode;
4443
import com.google.genai.types.GenerateImagesConfig;
4544
import com.google.genai.types.GenerateImagesResponse;
4645
import com.google.genai.types.Image;
4746
import com.google.genai.types.MaskReferenceConfig;
4847
import com.google.genai.types.MaskReferenceImage;
49-
import com.google.genai.types.MaskReferenceMode;
5048
import com.google.genai.types.RawReferenceImage;
5149
import com.google.genai.types.ReferenceImage;
5250
import java.io.IOException;
@@ -83,7 +81,7 @@ public static void main(String[] args) throws IOException, HttpException {
8381
// Edit image with a mask.
8482
EditImageConfig editImageConfig =
8583
EditImageConfig.builder()
86-
.editMode(EditMode.Known.EDIT_MODE_INPAINT_INSERTION)
84+
.editMode("EDIT_MODE_INPAINT_INSERTION")
8785
.numberOfImages(1)
8886
.outputMimeType("image/jpeg")
8987
.build();
@@ -98,7 +96,7 @@ public static void main(String[] args) throws IOException, HttpException {
9896
.referenceId(2)
9997
.config(
10098
MaskReferenceConfig.builder()
101-
.maskMode(MaskReferenceMode.Known.MASK_MODE_BACKGROUND)
99+
.maskMode("MASK_MODE_BACKGROUND")
102100
.maskDilation(0.0f)
103101
.build())
104102
.build();

examples/src/main/java/com/google/genai/examples/EditImageControlReference.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import com.google.genai.Client;
4242
import com.google.genai.types.ControlReferenceConfig;
4343
import com.google.genai.types.ControlReferenceImage;
44-
import com.google.genai.types.ControlReferenceType;
4544
import com.google.genai.types.EditImageConfig;
4645
import com.google.genai.types.EditImageResponse;
4746
import com.google.genai.types.GenerateImagesConfig;
@@ -84,7 +83,7 @@ public static void main(String[] args) {
8483
.referenceImage(generatedImage)
8584
.config(
8685
ControlReferenceConfig.builder()
87-
.controlType(ControlReferenceType.Known.CONTROL_TYPE_SCRIBBLE)
86+
.controlType("CONTROL_TYPE_SCRIBBLE")
8887
.enableControlImageComputation(true)
8988
.build())
9089
.build();

examples/src/main/java/com/google/genai/examples/EditImageMaskReference.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,11 @@
4040
import com.google.genai.Client;
4141
import com.google.genai.types.EditImageConfig;
4242
import com.google.genai.types.EditImageResponse;
43-
import com.google.genai.types.EditMode;
4443
import com.google.genai.types.GenerateImagesConfig;
4544
import com.google.genai.types.GenerateImagesResponse;
4645
import com.google.genai.types.Image;
4746
import com.google.genai.types.MaskReferenceConfig;
4847
import com.google.genai.types.MaskReferenceImage;
49-
import com.google.genai.types.MaskReferenceMode;
5048
import com.google.genai.types.RawReferenceImage;
5149
import com.google.genai.types.ReferenceImage;
5250
import java.util.ArrayList;
@@ -76,7 +74,7 @@ public static void main(String[] args) {
7674
// Edit image with a mask.
7775
EditImageConfig editImageConfig =
7876
EditImageConfig.builder()
79-
.editMode(EditMode.Known.EDIT_MODE_INPAINT_INSERTION)
77+
.editMode("EDIT_MODE_INPAINT_INSERTION")
8078
.numberOfImages(1)
8179
.outputMimeType("image/jpeg")
8280
.build();
@@ -91,7 +89,7 @@ public static void main(String[] args) {
9189
.referenceId(2)
9290
.config(
9391
MaskReferenceConfig.builder()
94-
.maskMode(MaskReferenceMode.Known.MASK_MODE_BACKGROUND)
92+
.maskMode("MASK_MODE_BACKGROUND")
9593
.maskDilation(0.0f)
9694
.build())
9795
.build();

examples/src/main/java/com/google/genai/examples/EditImageSubjectReference.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import com.google.genai.types.ReferenceImage;
4848
import com.google.genai.types.SubjectReferenceConfig;
4949
import com.google.genai.types.SubjectReferenceImage;
50-
import com.google.genai.types.SubjectReferenceType;
5150
import java.util.ArrayList;
5251

5352
/** An example of using the Unified Gen AI Java SDK to edit an image (Subject reference). */
@@ -83,7 +82,7 @@ public static void main(String[] args) {
8382
.referenceId(1)
8483
.config(
8584
SubjectReferenceConfig.builder()
86-
.subjectType(SubjectReferenceType.Known.SUBJECT_TYPE_PRODUCT)
85+
.subjectType("SUBJECT_TYPE_PRODUCT")
8786
.subjectDescription("Product logo")
8887
.build())
8988
.build();

examples/src/main/java/com/google/genai/examples/GenerateContentWithConfigs.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@
4545
import com.google.genai.types.GenerateContentConfig;
4646
import com.google.genai.types.GenerateContentResponse;
4747
import com.google.genai.types.GoogleSearch;
48-
import com.google.genai.types.HarmBlockThreshold;
49-
import com.google.genai.types.HarmCategory;
5048
import com.google.genai.types.Part;
5149
import com.google.genai.types.SafetySetting;
5250
import com.google.genai.types.Tool;
@@ -61,12 +59,12 @@ public static void main(String[] args) {
6159
ImmutableList<SafetySetting> safetySettings =
6260
ImmutableList.of(
6361
SafetySetting.builder()
64-
.category(HarmCategory.Known.HARM_CATEGORY_HATE_SPEECH)
65-
.threshold(HarmBlockThreshold.Known.BLOCK_ONLY_HIGH)
62+
.category("HARM_CATEGORY_HATE_SPEECH")
63+
.threshold("BLOCK_ONLY_HIGH")
6664
.build(),
6765
SafetySetting.builder()
68-
.category(HarmCategory.Known.HARM_CATEGORY_DANGEROUS_CONTENT)
69-
.threshold(HarmBlockThreshold.Known.BLOCK_LOW_AND_ABOVE)
66+
.category("HARM_CATEGORY_DANGEROUS_CONTENT")
67+
.threshold("BLOCK_LOW_AND_ABOVE")
7068
.build());
7169

7270
// Sets the system instruction in the config.

examples/src/main/java/com/google/genai/examples/GenerateContentWithFunctionCall.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import com.google.genai.types.GenerateContentConfig;
4747
import com.google.genai.types.GenerateContentResponse;
4848
import com.google.genai.types.Schema;
49-
import com.google.genai.types.Type;
5049

5150
/** An example of using the Unified Gen AI Java SDK to generate content with function calling. */
5251
public class GenerateContentWithFunctionCall {
@@ -59,17 +58,17 @@ public static void main(String[] args) {
5958
.name("get_current_weather")
6059
.parameters(
6160
Schema.builder()
62-
.type(Type.Known.OBJECT)
61+
.type("object")
6362
.properties(
6463
ImmutableMap.of(
6564
"location",
6665
Schema.builder()
67-
.type(Type.Known.STRING)
66+
.type("string")
6867
.description("The location to get the weather for.")
6968
.build(),
7069
"unit",
7170
Schema.builder()
72-
.type(Type.Known.STRING)
71+
.type("string")
7372
.description("The unit to return the weather in, e.g. 'celsius'.")
7473
.build()))
7574
.required(ImmutableList.of("location", "unit"))

examples/src/main/java/com/google/genai/examples/GenerateContentWithResponseSchema.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,12 @@
3939
*/
4040
package com.google.genai.examples;
4141

42-
import com.google.common.collect.ImmutableList;
4342
import com.google.common.collect.ImmutableMap;
43+
import com.google.common.collect.ImmutableList;
4444
import com.google.genai.Client;
4545
import com.google.genai.types.GenerateContentConfig;
4646
import com.google.genai.types.GenerateContentResponse;
4747
import com.google.genai.types.Schema;
48-
import com.google.genai.types.Type;
4948

5049
/**
5150
* GenerateContentWithResponseSchema generates a content and returns a json object by passing a
@@ -55,21 +54,21 @@ public class GenerateContentWithResponseSchema {
5554
public static void main(String[] args) {
5655
Client client = new Client();
5756

58-
Schema schema =
59-
Schema.builder()
60-
.type(Type.Known.ARRAY)
57+
Schema schema = Schema.builder()
58+
.type("ARRAY")
6159
.items(
6260
Schema.builder()
63-
.type(Type.Known.OBJECT)
61+
.type("OBJECT")
6462
.properties(
6563
ImmutableMap.of(
6664
"recipe_name",
67-
Schema.builder().type(Type.Known.STRING).build(),
65+
Schema.builder().type("STRING").build(),
6866
"ingredients",
6967
Schema.builder()
70-
.type(Type.Known.ARRAY)
71-
.items(Schema.builder().type(Type.Known.STRING).build())
72-
.build()))
68+
.type("ARRAY")
69+
.items(Schema.builder().type("STRING").build())
70+
.build()
71+
))
7372
.required(ImmutableList.of("recipe_name", "ingredients"))
7473
.build())
7574
.build();
@@ -81,8 +80,7 @@ public static void main(String[] args) {
8180
.build();
8281

8382
GenerateContentResponse response =
84-
client.models.generateContent(
85-
"gemini-2.0-flash-001", "List a few popular cookie recipes.", config);
83+
client.models.generateContent("gemini-2.0-flash-001", "List a few popular cookie recipes.", config);
8684

8785
System.out.println("Response: " + response.text());
8886
}

examples/src/main/java/com/google/genai/examples/LiveAudioConfigurableSpeechDetectionAsync.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import javax.sound.sampled.LineUnavailableException;
6666
import javax.sound.sampled.SourceDataLine;
6767
import javax.sound.sampled.TargetDataLine;
68-
import com.google.genai.types.Modality;
6968

7069
/**
7170
* Example of using the live module for a streaming audio conversation with configurable speech
@@ -150,7 +149,7 @@ public static void main(String[] args) throws LineUnavailableException {
150149
// --- Live API Config for Audio ---
151150
LiveConnectConfig config =
152151
LiveConnectConfig.builder()
153-
.responseModalitiesFromKnown(ImmutableList.of(Modality.Known.AUDIO))
152+
.responseModalities(ImmutableList.of("AUDIO"))
154153
.realtimeInputConfig(
155154
RealtimeInputConfig.builder()
156155
.activityHandling("NO_INTERRUPTION")

examples/src/main/java/com/google/genai/examples/LiveAudioConversationAsync.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import com.google.genai.types.LiveConnectConfig;
5252
import com.google.genai.types.LiveSendRealtimeInputParameters;
5353
import com.google.genai.types.LiveServerMessage;
54-
import com.google.genai.types.Modality;
5554
import com.google.genai.types.PrebuiltVoiceConfig;
5655
import com.google.genai.types.SpeechConfig;
5756
import com.google.genai.types.VoiceConfig;
@@ -147,7 +146,7 @@ public static void main(String[] args) throws LineUnavailableException {
147146
String voiceName = "Aoede";
148147
LiveConnectConfig config =
149148
LiveConnectConfig.builder()
150-
.responseModalitiesFromKnown(ImmutableList.of(Modality.Known.AUDIO))
149+
.responseModalities(ImmutableList.of("AUDIO"))
151150
.speechConfig(
152151
SpeechConfig.builder()
153152
.voiceConfig(

0 commit comments

Comments
 (0)