@@ -225,12 +225,14 @@ message JobNotification {
225225message AllocationPolicy {
226226 message LocationPolicy {
227227 // A list of allowed location names represented by internal URLs.
228+ //
228229 // Each location can be a region or a zone.
229230 // Only one region or multiple zones in one region is supported now.
230231 // For example,
231232 // ["regions/us-central1"] allow VMs in any zones in region us-central1.
232233 // ["zones/us-central1-a", "zones/us-central1-c"] only allow VMs
233234 // in zones us-central1-a and us-central1-c.
235+ //
234236 // All locations end up in different regions would cause errors.
235237 // For example,
236238 // ["regions/us-central1", "zones/us-central1-a", "zones/us-central1-b",
@@ -241,25 +243,29 @@ message AllocationPolicy {
241243
242244 // A new persistent disk or a local ssd.
243245 // A VM can only have one local SSD setting but multiple local SSD partitions.
244- // https://cloud.google.com/compute/docs/disks#pdspecs.
246+ // See https://cloud.google.com/compute/docs/disks#pdspecs and
245247 // https://cloud.google.com/compute/docs/disks#localssds.
246248 message Disk {
247249 // A data source from which a PD will be created.
248250 oneof data_source {
249251 // Name of a public or custom image used as the data source.
250252 // For example, the following are all valid URLs:
251- // (1) Specify the image by its family name:
253+ //
254+ // * Specify the image by its family name:
252255 // projects/{project}/global/images/family/{image_family}
253- // (2) Specify the image version:
256+ // * Specify the image version:
254257 // projects/{project}/global/images/{image_version}
258+ //
255259 // You can also use Batch customized image in short names.
256260 // The following image values are supported for a boot disk:
257- // "batch-debian": use Batch Debian images.
258- // "batch-centos": use Batch CentOS images.
259- // "batch-cos": use Batch Container-Optimized images.
261+ //
262+ // * "batch-debian": use Batch Debian images.
263+ // * "batch-centos": use Batch CentOS images.
264+ // * "batch-cos": use Batch Container-Optimized images.
260265 string image = 4 ;
261266
262267 // Name of a snapshot used as the data source.
268+ // Snapshot is not supported as boot disk now.
263269 string snapshot = 5 ;
264270 }
265271
@@ -270,6 +276,7 @@ message AllocationPolicy {
270276 string type = 1 ;
271277
272278 // Disk size in GB.
279+ //
273280 // For persistent disk, this field is ignored if `data_source` is `image` or
274281 // `snapshot`.
275282 // For local SSD, size_gb should be a multiple of 375GB,
@@ -324,7 +331,7 @@ message AllocationPolicy {
324331
325332 // The minimum CPU platform.
326333 // See
327- // ` https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform` .
334+ // https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
328335 // Not yet implemented.
329336 string min_cpu_platform = 3 ;
330337
@@ -334,8 +341,9 @@ message AllocationPolicy {
334341 // The accelerators attached to each VM instance.
335342 repeated Accelerator accelerators = 5 ;
336343
337- // Book disk to be created and attached to each VM by this InstancePolicy.
344+ // Boot disk to be created and attached to each VM by this InstancePolicy.
338345 // Boot disk will be deleted when the VM is deleted.
346+ // Batch API now only supports booting from image.
339347 Disk boot_disk = 8 ;
340348
341349 // Non-boot disks to be attached for each VM created by this InstancePolicy.
@@ -366,18 +374,22 @@ message AllocationPolicy {
366374 message NetworkInterface {
367375 // The URL of an existing network resource.
368376 // You can specify the network as a full or partial URL.
377+ //
369378 // For example, the following are all valid URLs:
370- // https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
371- // projects/{project}/global/networks/{network}
372- // global/networks/{network}
379+ //
380+ // * https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
381+ // * projects/{project}/global/networks/{network}
382+ // * global/networks/{network}
373383 string network = 1 ;
374384
375385 // The URL of an existing subnetwork resource in the network.
376386 // You can specify the subnetwork as a full or partial URL.
387+ //
377388 // For example, the following are all valid URLs:
378- // https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}
379- // projects/{project}/regions/{region}/subnetworks/{subnetwork}
380- // regions/{region}/subnetworks/{subnetwork}
389+ //
390+ // * https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetwork}
391+ // * projects/{project}/regions/{region}/subnetworks/{subnetwork}
392+ // * regions/{region}/subnetworks/{subnetwork}
381393 string subnetwork = 2 ;
382394
383395 // Default is false (with an external IP address). Required if
@@ -396,6 +408,23 @@ message AllocationPolicy {
396408 repeated NetworkInterface network_interfaces = 1 ;
397409 }
398410
411+ // PlacementPolicy describes a group placement policy for the VMs controlled
412+ // by this AllocationPolicy.
413+ message PlacementPolicy {
414+ // UNSPECIFIED vs. COLLOCATED (default UNSPECIFIED). Use COLLOCATED when you
415+ // want VMs to be located close to each other for low network latency
416+ // between the VMs. No placement policy will be generated when collocation
417+ // is UNSPECIFIED.
418+ string collocation = 1 ;
419+
420+ // When specified, causes the job to fail if more than max_distance logical
421+ // switches are required between VMs. Batch uses the most compact possible
422+ // placement of VMs even when max_distance is not specified. An explicit
423+ // max_distance makes that level of compactness a strict requirement.
424+ // Not yet implemented
425+ int64 max_distance = 2 ;
426+ }
427+
399428 // Compute Engine VM instance provisioning model.
400429 enum ProvisioningModel {
401430 // Unspecified.
@@ -437,6 +466,9 @@ message AllocationPolicy {
437466
438467 // The network policy.
439468 NetworkPolicy network = 7 ;
469+
470+ // The placement policy.
471+ PlacementPolicy placement = 10 ;
440472}
441473
442474// A TaskGroup contains one or multiple Tasks that share the same
@@ -457,11 +489,12 @@ message TaskGroup {
457489 TaskSpec task_spec = 3 [(google.api.field_behavior ) = REQUIRED ];
458490
459491 // Number of Tasks in the TaskGroup.
460- // default is 1
492+ // Default is 1.
461493 int64 task_count = 4 ;
462494
463495 // Max number of tasks that can run in parallel.
464496 // Default to min(task_count, 1000).
497+ // Field parallelism must be 1 if the scheduling_policy is IN_ORDER.
465498 int64 parallelism = 5 ;
466499
467500 // An array of environment variable mappings, which are passed to Tasks with
0 commit comments