data-plane-api 0.1.1

Envoy xDS protobuf and gRPC definitions
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.cloud.notebooks.v1;

import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/notebooks/v1/environment.proto";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "Google.Cloud.Notebooks.V1";
option go_package = "google.golang.org/genproto/googleapis/cloud/notebooks/v1;notebooks";
option java_multiple_files = true;
option java_outer_classname = "InstanceProto";
option java_package = "com.google.cloud.notebooks.v1";
option php_namespace = "Google\\Cloud\\Notebooks\\V1";
option ruby_package = "Google::Cloud::Notebooks::V1";

// Reservation Affinity for consuming Zonal reservation.
message ReservationAffinity {
  // Indicates whether to consume capacity from an reservation or not.
  enum Type {
    // Default type.
    TYPE_UNSPECIFIED = 0;

    // Do not consume from any allocated capacity.
    NO_RESERVATION = 1;

    // Consume any reservation available.
    ANY_RESERVATION = 2;

    // Must consume from a specific reservation. Must specify key value fields
    // for specifying the reservations.
    SPECIFIC_RESERVATION = 3;
  }

  // Optional. Type of reservation to consume
  Type consume_reservation_type = 1 [(google.api.field_behavior) = OPTIONAL];

  // Optional. Corresponds to the label key of reservation resource.
  string key = 2 [(google.api.field_behavior) = OPTIONAL];

  // Optional. Corresponds to the label values of reservation resource.
  repeated string values = 3 [(google.api.field_behavior) = OPTIONAL];
}

// The definition of a notebook instance.
message Instance {
  option (google.api.resource) = {
    type: "notebooks.googleapis.com/Instance"
    pattern: "projects/{project}/instances/{instance}"
  };

  // Definition of the types of hardware accelerators that can be used on this
  // instance.
  enum AcceleratorType {
    // Accelerator type is not specified.
    ACCELERATOR_TYPE_UNSPECIFIED = 0;

    // Accelerator type is Nvidia Tesla K80.
    NVIDIA_TESLA_K80 = 1;

    // Accelerator type is Nvidia Tesla P100.
    NVIDIA_TESLA_P100 = 2;

    // Accelerator type is Nvidia Tesla V100.
    NVIDIA_TESLA_V100 = 3;

    // Accelerator type is Nvidia Tesla P4.
    NVIDIA_TESLA_P4 = 4;

    // Accelerator type is Nvidia Tesla T4.
    NVIDIA_TESLA_T4 = 5;

    // Accelerator type is Nvidia Tesla A100.
    NVIDIA_TESLA_A100 = 11;

    // Accelerator type is NVIDIA Tesla T4 Virtual Workstations.
    NVIDIA_TESLA_T4_VWS = 8;

    // Accelerator type is NVIDIA Tesla P100 Virtual Workstations.
    NVIDIA_TESLA_P100_VWS = 9;

    // Accelerator type is NVIDIA Tesla P4 Virtual Workstations.
    NVIDIA_TESLA_P4_VWS = 10;

    // (Coming soon) Accelerator type is TPU V2.
    TPU_V2 = 6;

    // (Coming soon) Accelerator type is TPU V3.
    TPU_V3 = 7;
  }

  // Definition of a hardware accelerator. Note that not all combinations
  // of `type` and `core_count` are valid. Check [GPUs on
  // Compute Engine](/compute/docs/gpus/#gpus-list) to find a valid
  // combination. TPUs are not supported.
  message AcceleratorConfig {
    // Type of this accelerator.
    AcceleratorType type = 1;

    // Count of cores of this accelerator.
    int64 core_count = 2;
  }

  // The definition of the states of this instance.
  enum State {
    // State is not specified.
    STATE_UNSPECIFIED = 0;

    // The control logic is starting the instance.
    STARTING = 1;

    // The control logic is installing required frameworks and registering the
    // instance with notebook proxy
    PROVISIONING = 2;

    // The instance is running.
    ACTIVE = 3;

    // The control logic is stopping the instance.
    STOPPING = 4;

    // The instance is stopped.
    STOPPED = 5;

    // The instance is deleted.
    DELETED = 6;

    // The instance is upgrading.
    UPGRADING = 7;

    // The instance is being created.
    INITIALIZING = 8;

    // The instance is getting registered.
    REGISTERING = 9;

    // The instance is suspending.
    SUSPENDING = 10;

    // The instance is suspended.
    SUSPENDED = 11;
  }

  // Possible disk types for notebook instances.
  enum DiskType {
    // Disk type not set.
    DISK_TYPE_UNSPECIFIED = 0;

    // Standard persistent disk type.
    PD_STANDARD = 1;

    // SSD persistent disk type.
    PD_SSD = 2;

    // Balanced persistent disk type.
    PD_BALANCED = 3;

    // Extreme persistent disk type.
    PD_EXTREME = 4;
  }

  // Definition of the disk encryption options.
  enum DiskEncryption {
    // Disk encryption is not specified.
    DISK_ENCRYPTION_UNSPECIFIED = 0;

    // Use Google managed encryption keys to encrypt the boot disk.
    GMEK = 1;

    // Use customer managed encryption keys to encrypt the boot disk.
    CMEK = 2;
  }

  // An instance-attached disk resource.
  message Disk {
    // Guest OS features for boot disk.
    message GuestOsFeature {
      // The ID of a supported feature. Read  Enabling guest operating system
      // features to see a list of available options.
      // Valid values:
      //
      // * FEATURE_TYPE_UNSPECIFIED
      // * MULTI_IP_SUBNET
      // * SECURE_BOOT
      // * UEFI_COMPATIBLE
      // * VIRTIO_SCSI_MULTIQUEUE
      // * WINDOWS
      string type = 1;
    }

    // Indicates whether the disk will be auto-deleted when the instance is
    // deleted (but not when the disk is detached from the instance).
    bool auto_delete = 1;

    // Indicates that this is a boot disk. The virtual machine will use the
    // first partition of the disk for its root filesystem.
    bool boot = 2;

    // Indicates a unique device name of your choice that is reflected into the
    // /dev/disk/by-id/google-* tree of a Linux operating system running within
    // the instance. This name can be used to reference the device for mounting,
    // resizing, and so on, from within the instance.
    //
    // If not specified, the server chooses a default device name to apply to
    // this disk, in the form persistent-disk-x, where x is a number assigned by
    // Google Compute Engine.This field is only applicable for persistent disks.
    string device_name = 3;

    // Indicates the size of the disk in base-2 GB.
    int64 disk_size_gb = 4;

    // Indicates a list of features to enable on the guest operating system.
    // Applicable only for bootable images. Read  Enabling guest operating
    // system features to see a list of available options.
    repeated GuestOsFeature guest_os_features = 5;

    // A zero-based index to this disk, where 0 is reserved for the
    // boot disk. If you have many disks attached to an instance, each disk
    // would have a unique index number.
    int64 index = 6;

    // Indicates the disk interface to use for attaching this disk, which is
    // either SCSI or NVME. The default is SCSI. Persistent disks must always
    // use SCSI and the request will fail if you attempt to attach a persistent
    // disk in any other format than SCSI. Local SSDs can use either NVME or
    // SCSI. For performance characteristics of SCSI over NVMe, see Local SSD
    // performance.
    // Valid values:
    //
    // * NVME
    // * SCSI
    string interface = 7;

    // Type of the resource. Always compute#attachedDisk for attached
    // disks.
    string kind = 8;

    // A list of publicly visible licenses. Reserved for Google's use.
    // A License represents billing and aggregate usage data for public
    // and marketplace images.
    repeated string licenses = 9;

    // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If
    // not specified, the default is to attach the disk in READ_WRITE mode.
    // Valid values:
    //
    // * READ_ONLY
    // * READ_WRITE
    string mode = 10;

    // Indicates a valid partial or full URL to an existing Persistent Disk
    // resource.
    string source = 11;

    // Indicates the type of the disk, either SCRATCH or PERSISTENT.
    // Valid values:
    //
    // * PERSISTENT
    // * SCRATCH
    string type = 12;
  }

  // A set of Shielded Instance options.
  // Check [Images using supported Shielded VM features]
  // Not all combinations are valid.
  message ShieldedInstanceConfig {
    // Defines whether the instance has Secure Boot enabled.
    //
    // Secure Boot helps ensure that the system only runs authentic software by
    // verifying the digital signature of all boot components, and halting the
    // boot process if signature verification fails. Disabled by default.
    bool enable_secure_boot = 1;

    // Defines whether the instance has the vTPM enabled. Enabled by default.
    bool enable_vtpm = 2;

    // Defines whether the instance has integrity monitoring enabled.
    //
    // Enables monitoring and attestation of the boot integrity of the instance.
    // The attestation is performed against the integrity policy baseline. This
    // baseline is initially derived from the implicitly trusted boot image when
    // the instance is created. Enabled by default.
    bool enable_integrity_monitoring = 3;
  }

  // The entry of VM image upgrade history.
  message UpgradeHistoryEntry {
    // The definition of the states of this upgrade history entry.
    enum State {
      // State is not specified.
      STATE_UNSPECIFIED = 0;

      // The instance upgrade is started.
      STARTED = 1;

      // The instance upgrade is succeeded.
      SUCCEEDED = 2;

      // The instance upgrade is failed.
      FAILED = 3;
    }

    // The definition of operations of this upgrade history entry.
    enum Action {
      // Operation is not specified.
      ACTION_UNSPECIFIED = 0;

      // Upgrade.
      UPGRADE = 1;

      // Rollback.
      ROLLBACK = 2;
    }

    // The snapshot of the boot disk of this notebook instance before upgrade.
    string snapshot = 1;

    // The VM image before this instance upgrade.
    string vm_image = 2;

    // The container image before this instance upgrade.
    string container_image = 3;

    // The framework of this notebook instance.
    string framework = 4;

    // The version of the notebook instance before this upgrade.
    string version = 5;

    // The state of this instance upgrade history entry.
    State state = 6;

    // The time that this instance upgrade history entry is created.
    google.protobuf.Timestamp create_time = 7;

    // Target VM Image. Format: ainotebooks-vm/project/image-name/name.
    string target_image = 8 [deprecated = true];

    // Action. Rolloback or Upgrade.
    Action action = 9;

    // Target VM Version, like m63.
    string target_version = 10;
  }

  // The type of vNIC driver.
  // Default should be UNSPECIFIED_NIC_TYPE.
  enum NicType {
    // No type specified.
    UNSPECIFIED_NIC_TYPE = 0;

    // VIRTIO
    VIRTIO_NET = 1;

    // GVNIC
    GVNIC = 2;
  }

  // Output only. The name of this notebook instance. Format:
  // `projects/{project_id}/locations/{location}/instances/{instance_id}`
  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Type of the environment; can be one of VM image, or container image.
  oneof environment {
    // Use a Compute Engine VM image to start the notebook instance.
    VmImage vm_image = 2;

    // Use a container image to start the notebook instance.
    ContainerImage container_image = 3;
  }

  // Path to a Bash script that automatically runs after a notebook instance
  // fully boots up. The path must be a URL or
  // Cloud Storage path (`gs://path-to-file/file-name`).
  string post_startup_script = 4;

  // Output only. The proxy endpoint that is used to access the Jupyter notebook.
  string proxy_uri = 5 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Input only. The owner of this instance after creation. Format: `alias@example.com`
  //
  // Currently supports one owner only. If not specified, all of the service
  // account users of your VM instance's service account can use
  // the instance.
  repeated string instance_owners = 6 [(google.api.field_behavior) = INPUT_ONLY];

  // The service account on this instance, giving access to other Google
  // Cloud services.
  // You can use any service account within the same project, but you
  // must have the service account user permission to use the instance.
  //
  // If not specified, the [Compute Engine default service
  // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account)
  // is used.
  string service_account = 7;

  // Optional. The URIs of service account scopes to be included in
  // Compute Engine instances.
  //
  // If not specified, the following
  // [scopes](https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam)
  // are defined:
  //  - https://www.googleapis.com/auth/cloud-platform
  //  - https://www.googleapis.com/auth/userinfo.email
  // If not using default scopes, you need at least:
  //    https://www.googleapis.com/auth/compute
  repeated string service_account_scopes = 31 [(google.api.field_behavior) = OPTIONAL];

  // Required. The [Compute Engine machine type](/compute/docs/machine-types) of this
  // instance.
  string machine_type = 8 [(google.api.field_behavior) = REQUIRED];

  // The hardware accelerator used on this instance. If you use
  // accelerators, make sure that your configuration has
  // [enough vCPUs and memory to support the `machine_type` you
  // have selected](/compute/docs/gpus/#gpus-list).
  AcceleratorConfig accelerator_config = 9;

  // Output only. The state of this instance.
  State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Whether the end user authorizes Google Cloud to install GPU driver
  // on this instance.
  // If this field is empty or set to false, the GPU driver won't be installed.
  // Only applicable to instances with GPUs.
  bool install_gpu_driver = 11;

  // Specify a custom Cloud Storage path where the GPU driver is stored.
  // If not specified, we'll automatically choose from official GPU drivers.
  string custom_gpu_driver_path = 12;

  // Input only. The type of the boot disk attached to this instance, defaults to
  // standard persistent disk (`PD_STANDARD`).
  DiskType boot_disk_type = 13 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. The size of the boot disk in GB attached to this instance, up to a maximum
  // of 64000 GB (64 TB). The minimum recommended value is
  // 100 GB. If not specified, this defaults to 100.
  int64 boot_disk_size_gb = 14 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. The type of the data disk attached to this instance, defaults to
  // standard persistent disk (`PD_STANDARD`).
  DiskType data_disk_type = 25 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. The size of the data disk in GB attached to this instance, up to a maximum
  // of 64000 GB (64 TB). You can choose the size of the data disk
  // based on how big your notebooks and data are. If not specified, this
  // defaults to 100.
  int64 data_disk_size_gb = 26 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. If true, the data disk will not be auto deleted when deleting the instance.
  bool no_remove_data_disk = 27 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. Disk encryption method used on the boot and data disks, defaults to GMEK.
  DiskEncryption disk_encryption = 15 [(google.api.field_behavior) = INPUT_ONLY];

  // Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption
  // is CMEK.
  // Format:
  // `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}`
  //
  // Learn more about [using your own encryption keys](/kms/docs/quickstart).
  string kms_key = 16 [(google.api.field_behavior) = INPUT_ONLY];

  // Output only. Attached disks to notebook instance.
  repeated Disk disks = 28 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Optional. Shielded VM configuration.
  // [Images using supported Shielded VM
  // features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
  ShieldedInstanceConfig shielded_instance_config = 30 [(google.api.field_behavior) = OPTIONAL];

  // If true, no public IP will be assigned to this instance.
  bool no_public_ip = 17;

  // If true, the notebook instance will not register with the proxy.
  bool no_proxy_access = 18;

  // The name of the VPC that this instance is in.
  // Format:
  // `projects/{project_id}/global/networks/{network_id}`
  string network = 19;

  // The name of the subnet that this instance is in.
  // Format:
  // `projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}`
  string subnet = 20;

  // Labels to apply to this instance.
  // These can be later modified by the setLabels method.
  map<string, string> labels = 21;

  // Custom metadata to apply to this instance.
  map<string, string> metadata = 22;

  // Optional. The Compute Engine tags to add to runtime (see [Tagging
  // instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
  repeated string tags = 32 [(google.api.field_behavior) = OPTIONAL];

  // The upgrade history of this instance.
  repeated UpgradeHistoryEntry upgrade_history = 29;

  // Optional. The type of vNIC to be used on this interface. This may be gVNIC or
  // VirtioNet.
  NicType nic_type = 33 [(google.api.field_behavior) = OPTIONAL];

  // Optional. The optional reservation affinity. Setting this field will apply
  // the specified [Zonal Compute
  // Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
  // to this notebook instance.
  ReservationAffinity reservation_affinity = 34 [(google.api.field_behavior) = OPTIONAL];

  // Output only. Email address of entity that sent original CreateInstance request.
  string creator = 36 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Optional. Flag to enable ip forwarding or not, default false/off.
  // https://cloud.google.com/vpc/docs/using-routes#canipforward
  bool can_ip_forward = 39 [(google.api.field_behavior) = OPTIONAL];

  // Output only. Instance creation time.
  google.protobuf.Timestamp create_time = 23 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. Instance update time.
  google.protobuf.Timestamp update_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
}