Skip to content

Commit 245e585

Browse files
matthew29tangcopybara-github
authored andcommitted
feat: Add labels field to Veo configs
FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/google-gemini/private-dotnet-genai/pull/56 from google-gemini:integration 95fde92a3f597a59389fc8259d69398a685b7b91 PiperOrigin-RevId: 882816343
1 parent 8e5dc09 commit 245e585

File tree

6 files changed

+111
-49
lines changed

6 files changed

+111
-49
lines changed

Google.GenAI.E2E.Tests/GenerateVideos/GenerateVideosTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ public async Task GenerateVideosSourceTextVertexTest() {
154154
NegativePrompt = "ugly, low quality",
155155
EnhancePrompt = true,
156156
CompressionQuality = VideoCompressionQuality.Lossless,
157+
Labels = new Dictionary<string, string> { ["veo_label_key"] = "generate_videos" },
157158
};
158159

159160
var operation = await vertexClient.Models.GenerateVideosAsync(

Google.GenAI.E2E.Tests/Recordings/GenerateVideosTest.GenerateVideosSourceTextVertexTest.json

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "/v1beta1/projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview:predictLongRunning",
88
"request": "POST /v1beta1/projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview:predictLongRunning HTTP/1.1",
99
"headers": {
10-
"Content-Length": "325",
10+
"Content-Length": "370",
1111
"Content-Type": "application/json; charset=utf-8",
1212
"Test-Name": "GenerateVideosTest.GenerateVideosSourceTextVertexTest"
1313
},
@@ -18,6 +18,9 @@
1818
"prompt": "Man with a dog"
1919
}
2020
],
21+
"labels": {
22+
"veo_label_key": "generate_videos"
23+
},
2124
"parameters": {
2225
"aspectRatio": "16:9",
2326
"compressionQuality": "LOSSLESS",
@@ -38,12 +41,12 @@
3841
"port": 443,
3942
"protocol": "https"
4043
},
41-
"shaSum": "b2a53f2619ef680858e7c01b7e724b21367942ce9a54771955a3f2603cf9ef2f",
44+
"shaSum": "4bf28c5be06ff116d750a2bcf3ebf0ce8c1fbe81dd4d6662eb2db8fcb064a18a",
4245
"response": {
4346
"statusCode": 200,
4447
"headers": {
4548
"Content-Type": "application/json; charset=UTF-8",
46-
"Date": "Tue, 02 Dec 2025 00:19:20 GMT",
49+
"Date": "Mon, 23 Mar 2026 23:34:37 GMT",
4750
"Server": "scaffolding on HTTPServer2",
4851
"Vary": "Origin, X-Origin, Referer",
4952
"X-Content-Type-Options": "nosniff",
@@ -52,7 +55,7 @@
5255
},
5356
"bodySegments": [
5457
{
55-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
58+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
5659
}
5760
]
5861
}
@@ -69,20 +72,20 @@
6972
},
7073
"bodySegments": [
7174
{
72-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
75+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
7376
}
7477
],
75-
"previousRequest": "b2a53f2619ef680858e7c01b7e724b21367942ce9a54771955a3f2603cf9ef2f",
78+
"previousRequest": "4bf28c5be06ff116d750a2bcf3ebf0ce8c1fbe81dd4d6662eb2db8fcb064a18a",
7679
"serverAddress": "us-central1-aiplatform.googleapis.com",
7780
"port": 443,
7881
"protocol": "https"
7982
},
80-
"shaSum": "80da516c38b028e4bfad8aee14ffca7fec8c83f6acab94cfde1a4e1c390b0822",
83+
"shaSum": "6d266f1eafed7f27244055d53dba9a211d47b2db3febff46e8ff17849e8310a8",
8184
"response": {
8285
"statusCode": 200,
8386
"headers": {
8487
"Content-Type": "application/json; charset=UTF-8",
85-
"Date": "Tue, 02 Dec 2025 00:19:30 GMT",
88+
"Date": "Mon, 23 Mar 2026 23:34:47 GMT",
8689
"Server": "scaffolding on HTTPServer2",
8790
"Vary": "Origin, X-Origin, Referer",
8891
"X-Content-Type-Options": "nosniff",
@@ -91,7 +94,7 @@
9194
},
9295
"bodySegments": [
9396
{
94-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
97+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
9598
}
9699
]
97100
}
@@ -108,20 +111,20 @@
108111
},
109112
"bodySegments": [
110113
{
111-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
114+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
112115
}
113116
],
114-
"previousRequest": "80da516c38b028e4bfad8aee14ffca7fec8c83f6acab94cfde1a4e1c390b0822",
117+
"previousRequest": "6d266f1eafed7f27244055d53dba9a211d47b2db3febff46e8ff17849e8310a8",
115118
"serverAddress": "us-central1-aiplatform.googleapis.com",
116119
"port": 443,
117120
"protocol": "https"
118121
},
119-
"shaSum": "13f31aa3f96e01b269f32caac652aef5f78d0381628731e83eace2579552ae33",
122+
"shaSum": "bf84dc0ce5ac62c0a1d53784f6784e2e27e1c2f1e7afb40469d2c9cadd4a0c40",
120123
"response": {
121124
"statusCode": 200,
122125
"headers": {
123126
"Content-Type": "application/json; charset=UTF-8",
124-
"Date": "Tue, 02 Dec 2025 00:19:40 GMT",
127+
"Date": "Mon, 23 Mar 2026 23:34:58 GMT",
125128
"Server": "scaffolding on HTTPServer2",
126129
"Vary": "Origin, X-Origin, Referer",
127130
"X-Content-Type-Options": "nosniff",
@@ -130,7 +133,7 @@
130133
},
131134
"bodySegments": [
132135
{
133-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
136+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
134137
}
135138
]
136139
}
@@ -147,20 +150,20 @@
147150
},
148151
"bodySegments": [
149152
{
150-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
153+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
151154
}
152155
],
153-
"previousRequest": "13f31aa3f96e01b269f32caac652aef5f78d0381628731e83eace2579552ae33",
156+
"previousRequest": "bf84dc0ce5ac62c0a1d53784f6784e2e27e1c2f1e7afb40469d2c9cadd4a0c40",
154157
"serverAddress": "us-central1-aiplatform.googleapis.com",
155158
"port": 443,
156159
"protocol": "https"
157160
},
158-
"shaSum": "005cd08a1b606d2fb9906e2b0075bbe2ba81690a5f90f201347271e62f57e568",
161+
"shaSum": "84e6cece47330516d40cb646e71468d6acf7305d168dc4c62ea877a4acd830eb",
159162
"response": {
160163
"statusCode": 200,
161164
"headers": {
162165
"Content-Type": "application/json; charset=UTF-8",
163-
"Date": "Tue, 02 Dec 2025 00:19:51 GMT",
166+
"Date": "Mon, 23 Mar 2026 23:35:08 GMT",
164167
"Server": "scaffolding on HTTPServer2",
165168
"Vary": "Origin, X-Origin, Referer",
166169
"X-Content-Type-Options": "nosniff",
@@ -169,7 +172,7 @@
169172
},
170173
"bodySegments": [
171174
{
172-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
175+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
173176
}
174177
]
175178
}
@@ -186,20 +189,20 @@
186189
},
187190
"bodySegments": [
188191
{
189-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
192+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
190193
}
191194
],
192-
"previousRequest": "005cd08a1b606d2fb9906e2b0075bbe2ba81690a5f90f201347271e62f57e568",
195+
"previousRequest": "84e6cece47330516d40cb646e71468d6acf7305d168dc4c62ea877a4acd830eb",
193196
"serverAddress": "us-central1-aiplatform.googleapis.com",
194197
"port": 443,
195198
"protocol": "https"
196199
},
197-
"shaSum": "dbde31e1ec7ce7e68847ee531d561c4e31647f1f0c2a01b7ece878a6e4912f13",
200+
"shaSum": "590e4526fa5ef6235913d7ea5f8699effe46e149282321a032941ce6a3aa09cf",
198201
"response": {
199202
"statusCode": 200,
200203
"headers": {
201204
"Content-Type": "application/json; charset=UTF-8",
202-
"Date": "Tue, 02 Dec 2025 00:20:01 GMT",
205+
"Date": "Mon, 23 Mar 2026 23:35:18 GMT",
203206
"Server": "scaffolding on HTTPServer2",
204207
"Vary": "Origin, X-Origin, Referer",
205208
"X-Content-Type-Options": "nosniff",
@@ -208,7 +211,7 @@
208211
},
209212
"bodySegments": [
210213
{
211-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
214+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
212215
}
213216
]
214217
}
@@ -225,20 +228,20 @@
225228
},
226229
"bodySegments": [
227230
{
228-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
231+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
229232
}
230233
],
231-
"previousRequest": "dbde31e1ec7ce7e68847ee531d561c4e31647f1f0c2a01b7ece878a6e4912f13",
234+
"previousRequest": "590e4526fa5ef6235913d7ea5f8699effe46e149282321a032941ce6a3aa09cf",
232235
"serverAddress": "us-central1-aiplatform.googleapis.com",
233236
"port": 443,
234237
"protocol": "https"
235238
},
236-
"shaSum": "b3c3ba187e1b6eb41d263503c0185a6547d8b161e4da3b1436d26e068c6f6f60",
239+
"shaSum": "abeff042e63db5e09b354b72a793570b581b1a3943c90a67dce97c22edd9b9e6",
237240
"response": {
238241
"statusCode": 200,
239242
"headers": {
240243
"Content-Type": "application/json; charset=UTF-8",
241-
"Date": "Tue, 02 Dec 2025 00:20:11 GMT",
244+
"Date": "Mon, 23 Mar 2026 23:35:28 GMT",
242245
"Server": "scaffolding on HTTPServer2",
243246
"Vary": "Origin, X-Origin, Referer",
244247
"X-Content-Type-Options": "nosniff",
@@ -247,7 +250,7 @@
247250
},
248251
"bodySegments": [
249252
{
250-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
253+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
251254
}
252255
]
253256
}
@@ -264,20 +267,20 @@
264267
},
265268
"bodySegments": [
266269
{
267-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
270+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
268271
}
269272
],
270-
"previousRequest": "b3c3ba187e1b6eb41d263503c0185a6547d8b161e4da3b1436d26e068c6f6f60",
273+
"previousRequest": "abeff042e63db5e09b354b72a793570b581b1a3943c90a67dce97c22edd9b9e6",
271274
"serverAddress": "us-central1-aiplatform.googleapis.com",
272275
"port": 443,
273276
"protocol": "https"
274277
},
275-
"shaSum": "b2b4e54a92bc000a851b3b25d1e151ef2b60b78d459756c2c3b28a0096c21eae",
278+
"shaSum": "c1f69cc281e5f8f4b5e303e481d63d716a5a995afcd7834ee8f2d4d9b8101b09",
276279
"response": {
277280
"statusCode": 200,
278281
"headers": {
279282
"Content-Type": "application/json; charset=UTF-8",
280-
"Date": "Tue, 02 Dec 2025 00:20:21 GMT",
283+
"Date": "Mon, 23 Mar 2026 23:35:38 GMT",
281284
"Server": "scaffolding on HTTPServer2",
282285
"Vary": "Origin, X-Origin, Referer",
283286
"X-Content-Type-Options": "nosniff",
@@ -286,7 +289,7 @@
286289
},
287290
"bodySegments": [
288291
{
289-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
292+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
290293
}
291294
]
292295
}
@@ -303,20 +306,20 @@
303306
},
304307
"bodySegments": [
305308
{
306-
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943"
309+
"operationName": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4"
307310
}
308311
],
309-
"previousRequest": "b2b4e54a92bc000a851b3b25d1e151ef2b60b78d459756c2c3b28a0096c21eae",
312+
"previousRequest": "c1f69cc281e5f8f4b5e303e481d63d716a5a995afcd7834ee8f2d4d9b8101b09",
310313
"serverAddress": "us-central1-aiplatform.googleapis.com",
311314
"port": 443,
312315
"protocol": "https"
313316
},
314-
"shaSum": "10118fd802f6769bb515b49694a1d00e2a6a58d005f32e031214e6a90cad238e",
317+
"shaSum": "ea0e021fd70a4552cd3c604ffe9d8f20fa248e16eaa1a77bcf6fb69307023a1d",
315318
"response": {
316319
"statusCode": 200,
317320
"headers": {
318321
"Content-Type": "application/json; charset=UTF-8",
319-
"Date": "Tue, 02 Dec 2025 00:20:31 GMT",
322+
"Date": "Mon, 23 Mar 2026 23:35:48 GMT",
320323
"Server": "scaffolding on HTTPServer2",
321324
"Vary": "Origin, X-Origin, Referer",
322325
"X-Content-Type-Options": "nosniff",
@@ -326,13 +329,13 @@
326329
"bodySegments": [
327330
{
328331
"done": true,
329-
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/bb6f6116-15a0-4a92-8d8c-6a56e67da943",
332+
"name": "projects/REDACTED/locations/us-central1/publishers/google/models/veo-3.1-generate-preview/operations/fb676b50-23b7-4c80-b9f6-45f1a54fa2c4",
330333
"response": {
331334
"@type": "type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
332335
"raiMediaFilteredCount": 0,
333336
"videos": [
334337
{
335-
"gcsUri": "gs://genai-sdk-tests/temp/videos/16802657975300148523/sample_0.mp4",
338+
"gcsUri": "gs://genai-sdk-tests/temp/videos/5207771344965705426/sample_0.mp4",
336339
"mimeType": "video/mp4"
337340
}
338341
]

Google.GenAI.E2E.Tests/packages.lock.json

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,6 @@
214214
"resolved": "7.0.0",
215215
"contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A=="
216216
},
217-
"System.Collections.Immutable": {
218-
"type": "Transitive",
219-
"resolved": "6.0.0",
220-
"contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==",
221-
"dependencies": {
222-
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
223-
}
224-
},
225217
"System.Diagnostics.DiagnosticSource": {
226218
"type": "Transitive",
227219
"resolved": "5.0.0",
@@ -278,7 +270,9 @@
278270
"dependencies": {
279271
"Google.Apis.Auth": "[1.69.0, )",
280272
"Microsoft.Extensions.AI.Abstractions": "[10.4.0, )",
281-
"MimeTypes": "[2.5.2, )"
273+
"MimeTypes": "[2.5.2, )",
274+
"System.Collections.Immutable": "[9.0.0, )",
275+
"System.Net.ServerSentEvents": "[9.0.0, )"
282276
}
283277
},
284278
"Google.Apis.Auth": {
@@ -306,6 +300,18 @@
306300
"requested": "[2.5.2, )",
307301
"resolved": "2.5.2",
308302
"contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw=="
303+
},
304+
"System.Collections.Immutable": {
305+
"type": "CentralTransitive",
306+
"requested": "[9.0.0, )",
307+
"resolved": "9.0.0",
308+
"contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w=="
309+
},
310+
"System.Net.ServerSentEvents": {
311+
"type": "CentralTransitive",
312+
"requested": "[9.0.0, )",
313+
"resolved": "9.0.0",
314+
"contentHash": "VTWjeyx9nPb4+hkjGcAaDw1nOckypMtvABmxSWm6PPYwrXoIiVG3jwtNlAGhaGVjDkBrERABox67wYTAcHxg7Q=="
309315
}
310316
}
311317
}

Google.GenAI/Models.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2054,6 +2054,10 @@ internal JsonNode GenerateVideosConfigToMldev(JsonNode fromObject, JsonObject pa
20542054
"compressionQuality parameter is not supported in Gemini API.");
20552055
}
20562056

2057+
if (!Common.IsZero(Common.GetValueByPath(fromObject, new string[] { "labels" }))) {
2058+
throw new NotSupportedException("labels parameter is not supported in Gemini API.");
2059+
}
2060+
20572061
return toObject;
20582062
}
20592063

@@ -2157,6 +2161,11 @@ internal JsonNode GenerateVideosConfigToVertex(JsonNode fromObject, JsonObject p
21572161
Common.GetValueByPath(fromObject, new string[] { "compressionQuality" }));
21582162
}
21592163

2164+
if (Common.GetValueByPath(fromObject, new string[] { "labels" }) != null) {
2165+
Common.SetValueByPath(parentObject, new string[] { "labels" },
2166+
Common.GetValueByPath(fromObject, new string[] { "labels" }));
2167+
}
2168+
21602169
return toObject;
21612170
}
21622171

0 commit comments

Comments
 (0)