1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.notebooks.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/notebooks/v1/environment.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Notebooks.V1"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/notebooks/apiv1/notebookspb;notebookspb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "InstanceProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.notebooks.v1"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Notebooks\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Notebooks::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// Reservation Affinity for consuming Zonal reservation. 33*d5c09012SAndroid Build Coastguard Workermessage ReservationAffinity { 34*d5c09012SAndroid Build Coastguard Worker // Indicates whether to consume capacity from an reservation or not. 35*d5c09012SAndroid Build Coastguard Worker enum Type { 36*d5c09012SAndroid Build Coastguard Worker // Default type. 37*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 38*d5c09012SAndroid Build Coastguard Worker 39*d5c09012SAndroid Build Coastguard Worker // Do not consume from any allocated capacity. 40*d5c09012SAndroid Build Coastguard Worker NO_RESERVATION = 1; 41*d5c09012SAndroid Build Coastguard Worker 42*d5c09012SAndroid Build Coastguard Worker // Consume any reservation available. 43*d5c09012SAndroid Build Coastguard Worker ANY_RESERVATION = 2; 44*d5c09012SAndroid Build Coastguard Worker 45*d5c09012SAndroid Build Coastguard Worker // Must consume from a specific reservation. Must specify key value fields 46*d5c09012SAndroid Build Coastguard Worker // for specifying the reservations. 47*d5c09012SAndroid Build Coastguard Worker SPECIFIC_RESERVATION = 3; 48*d5c09012SAndroid Build Coastguard Worker } 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // Optional. Type of reservation to consume 51*d5c09012SAndroid Build Coastguard Worker Type consume_reservation_type = 1 [(google.api.field_behavior) = OPTIONAL]; 52*d5c09012SAndroid Build Coastguard Worker 53*d5c09012SAndroid Build Coastguard Worker // Optional. Corresponds to the label key of reservation resource. 54*d5c09012SAndroid Build Coastguard Worker string key = 2 [(google.api.field_behavior) = OPTIONAL]; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // Optional. Corresponds to the label values of reservation resource. 57*d5c09012SAndroid Build Coastguard Worker repeated string values = 3 [(google.api.field_behavior) = OPTIONAL]; 58*d5c09012SAndroid Build Coastguard Worker} 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker// The definition of a notebook instance. 61*d5c09012SAndroid Build Coastguard Workermessage Instance { 62*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 63*d5c09012SAndroid Build Coastguard Worker type: "notebooks.googleapis.com/Instance" 64*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/instances/{instance}" 65*d5c09012SAndroid Build Coastguard Worker }; 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // Definition of the types of hardware accelerators that can be used on this 68*d5c09012SAndroid Build Coastguard Worker // instance. 69*d5c09012SAndroid Build Coastguard Worker enum AcceleratorType { 70*d5c09012SAndroid Build Coastguard Worker // Accelerator type is not specified. 71*d5c09012SAndroid Build Coastguard Worker ACCELERATOR_TYPE_UNSPECIFIED = 0; 72*d5c09012SAndroid Build Coastguard Worker 73*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla K80. 74*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_K80 = 1; 75*d5c09012SAndroid Build Coastguard Worker 76*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla P100. 77*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_P100 = 2; 78*d5c09012SAndroid Build Coastguard Worker 79*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla V100. 80*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_V100 = 3; 81*d5c09012SAndroid Build Coastguard Worker 82*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla P4. 83*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_P4 = 4; 84*d5c09012SAndroid Build Coastguard Worker 85*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla T4. 86*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_T4 = 5; 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Accelerator type is Nvidia Tesla A100. 89*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_A100 = 11; 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker // Accelerator type is NVIDIA Tesla T4 Virtual Workstations. 92*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_T4_VWS = 8; 93*d5c09012SAndroid Build Coastguard Worker 94*d5c09012SAndroid Build Coastguard Worker // Accelerator type is NVIDIA Tesla P100 Virtual Workstations. 95*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_P100_VWS = 9; 96*d5c09012SAndroid Build Coastguard Worker 97*d5c09012SAndroid Build Coastguard Worker // Accelerator type is NVIDIA Tesla P4 Virtual Workstations. 98*d5c09012SAndroid Build Coastguard Worker NVIDIA_TESLA_P4_VWS = 10; 99*d5c09012SAndroid Build Coastguard Worker 100*d5c09012SAndroid Build Coastguard Worker // (Coming soon) Accelerator type is TPU V2. 101*d5c09012SAndroid Build Coastguard Worker TPU_V2 = 6; 102*d5c09012SAndroid Build Coastguard Worker 103*d5c09012SAndroid Build Coastguard Worker // (Coming soon) Accelerator type is TPU V3. 104*d5c09012SAndroid Build Coastguard Worker TPU_V3 = 7; 105*d5c09012SAndroid Build Coastguard Worker } 106*d5c09012SAndroid Build Coastguard Worker 107*d5c09012SAndroid Build Coastguard Worker // Definition of a hardware accelerator. Note that not all combinations 108*d5c09012SAndroid Build Coastguard Worker // of `type` and `core_count` are valid. Check [GPUs on Compute 109*d5c09012SAndroid Build Coastguard Worker // Engine](https://cloud.google.com/compute/docs/gpus/#gpus-list) to find a 110*d5c09012SAndroid Build Coastguard Worker // valid combination. TPUs are not supported. 111*d5c09012SAndroid Build Coastguard Worker message AcceleratorConfig { 112*d5c09012SAndroid Build Coastguard Worker // Type of this accelerator. 113*d5c09012SAndroid Build Coastguard Worker AcceleratorType type = 1; 114*d5c09012SAndroid Build Coastguard Worker 115*d5c09012SAndroid Build Coastguard Worker // Count of cores of this accelerator. 116*d5c09012SAndroid Build Coastguard Worker int64 core_count = 2; 117*d5c09012SAndroid Build Coastguard Worker } 118*d5c09012SAndroid Build Coastguard Worker 119*d5c09012SAndroid Build Coastguard Worker // The definition of the states of this instance. 120*d5c09012SAndroid Build Coastguard Worker enum State { 121*d5c09012SAndroid Build Coastguard Worker // State is not specified. 122*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // The control logic is starting the instance. 125*d5c09012SAndroid Build Coastguard Worker STARTING = 1; 126*d5c09012SAndroid Build Coastguard Worker 127*d5c09012SAndroid Build Coastguard Worker // The control logic is installing required frameworks and registering the 128*d5c09012SAndroid Build Coastguard Worker // instance with notebook proxy 129*d5c09012SAndroid Build Coastguard Worker PROVISIONING = 2; 130*d5c09012SAndroid Build Coastguard Worker 131*d5c09012SAndroid Build Coastguard Worker // The instance is running. 132*d5c09012SAndroid Build Coastguard Worker ACTIVE = 3; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // The control logic is stopping the instance. 135*d5c09012SAndroid Build Coastguard Worker STOPPING = 4; 136*d5c09012SAndroid Build Coastguard Worker 137*d5c09012SAndroid Build Coastguard Worker // The instance is stopped. 138*d5c09012SAndroid Build Coastguard Worker STOPPED = 5; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // The instance is deleted. 141*d5c09012SAndroid Build Coastguard Worker DELETED = 6; 142*d5c09012SAndroid Build Coastguard Worker 143*d5c09012SAndroid Build Coastguard Worker // The instance is upgrading. 144*d5c09012SAndroid Build Coastguard Worker UPGRADING = 7; 145*d5c09012SAndroid Build Coastguard Worker 146*d5c09012SAndroid Build Coastguard Worker // The instance is being created. 147*d5c09012SAndroid Build Coastguard Worker INITIALIZING = 8; 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker // The instance is getting registered. 150*d5c09012SAndroid Build Coastguard Worker REGISTERING = 9; 151*d5c09012SAndroid Build Coastguard Worker 152*d5c09012SAndroid Build Coastguard Worker // The instance is suspending. 153*d5c09012SAndroid Build Coastguard Worker SUSPENDING = 10; 154*d5c09012SAndroid Build Coastguard Worker 155*d5c09012SAndroid Build Coastguard Worker // The instance is suspended. 156*d5c09012SAndroid Build Coastguard Worker SUSPENDED = 11; 157*d5c09012SAndroid Build Coastguard Worker } 158*d5c09012SAndroid Build Coastguard Worker 159*d5c09012SAndroid Build Coastguard Worker // Possible disk types for notebook instances. 160*d5c09012SAndroid Build Coastguard Worker enum DiskType { 161*d5c09012SAndroid Build Coastguard Worker // Disk type not set. 162*d5c09012SAndroid Build Coastguard Worker DISK_TYPE_UNSPECIFIED = 0; 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker // Standard persistent disk type. 165*d5c09012SAndroid Build Coastguard Worker PD_STANDARD = 1; 166*d5c09012SAndroid Build Coastguard Worker 167*d5c09012SAndroid Build Coastguard Worker // SSD persistent disk type. 168*d5c09012SAndroid Build Coastguard Worker PD_SSD = 2; 169*d5c09012SAndroid Build Coastguard Worker 170*d5c09012SAndroid Build Coastguard Worker // Balanced persistent disk type. 171*d5c09012SAndroid Build Coastguard Worker PD_BALANCED = 3; 172*d5c09012SAndroid Build Coastguard Worker 173*d5c09012SAndroid Build Coastguard Worker // Extreme persistent disk type. 174*d5c09012SAndroid Build Coastguard Worker PD_EXTREME = 4; 175*d5c09012SAndroid Build Coastguard Worker } 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // Definition of the disk encryption options. 178*d5c09012SAndroid Build Coastguard Worker enum DiskEncryption { 179*d5c09012SAndroid Build Coastguard Worker // Disk encryption is not specified. 180*d5c09012SAndroid Build Coastguard Worker DISK_ENCRYPTION_UNSPECIFIED = 0; 181*d5c09012SAndroid Build Coastguard Worker 182*d5c09012SAndroid Build Coastguard Worker // Use Google managed encryption keys to encrypt the boot disk. 183*d5c09012SAndroid Build Coastguard Worker GMEK = 1; 184*d5c09012SAndroid Build Coastguard Worker 185*d5c09012SAndroid Build Coastguard Worker // Use customer managed encryption keys to encrypt the boot disk. 186*d5c09012SAndroid Build Coastguard Worker CMEK = 2; 187*d5c09012SAndroid Build Coastguard Worker } 188*d5c09012SAndroid Build Coastguard Worker 189*d5c09012SAndroid Build Coastguard Worker // An instance-attached disk resource. 190*d5c09012SAndroid Build Coastguard Worker message Disk { 191*d5c09012SAndroid Build Coastguard Worker // Guest OS features for boot disk. 192*d5c09012SAndroid Build Coastguard Worker message GuestOsFeature { 193*d5c09012SAndroid Build Coastguard Worker // The ID of a supported feature. Read Enabling guest operating system 194*d5c09012SAndroid Build Coastguard Worker // features to see a list of available options. 195*d5c09012SAndroid Build Coastguard Worker // Valid values: 196*d5c09012SAndroid Build Coastguard Worker // 197*d5c09012SAndroid Build Coastguard Worker // * `FEATURE_TYPE_UNSPECIFIED` 198*d5c09012SAndroid Build Coastguard Worker // * `MULTI_IP_SUBNET` 199*d5c09012SAndroid Build Coastguard Worker // * `SECURE_BOOT` 200*d5c09012SAndroid Build Coastguard Worker // * `UEFI_COMPATIBLE` 201*d5c09012SAndroid Build Coastguard Worker // * `VIRTIO_SCSI_MULTIQUEUE` 202*d5c09012SAndroid Build Coastguard Worker // * `WINDOWS` 203*d5c09012SAndroid Build Coastguard Worker string type = 1; 204*d5c09012SAndroid Build Coastguard Worker } 205*d5c09012SAndroid Build Coastguard Worker 206*d5c09012SAndroid Build Coastguard Worker // Indicates whether the disk will be auto-deleted when the instance is 207*d5c09012SAndroid Build Coastguard Worker // deleted (but not when the disk is detached from the instance). 208*d5c09012SAndroid Build Coastguard Worker bool auto_delete = 1; 209*d5c09012SAndroid Build Coastguard Worker 210*d5c09012SAndroid Build Coastguard Worker // Indicates that this is a boot disk. The virtual machine will use the 211*d5c09012SAndroid Build Coastguard Worker // first partition of the disk for its root filesystem. 212*d5c09012SAndroid Build Coastguard Worker bool boot = 2; 213*d5c09012SAndroid Build Coastguard Worker 214*d5c09012SAndroid Build Coastguard Worker // Indicates a unique device name of your choice that is reflected into the 215*d5c09012SAndroid Build Coastguard Worker // `/dev/disk/by-id/google-*` tree of a Linux operating system running 216*d5c09012SAndroid Build Coastguard Worker // within the instance. This name can be used to reference the device for 217*d5c09012SAndroid Build Coastguard Worker // mounting, resizing, and so on, from within the instance. 218*d5c09012SAndroid Build Coastguard Worker // 219*d5c09012SAndroid Build Coastguard Worker // If not specified, the server chooses a default device name to apply to 220*d5c09012SAndroid Build Coastguard Worker // this disk, in the form persistent-disk-x, where x is a number assigned by 221*d5c09012SAndroid Build Coastguard Worker // Google Compute Engine.This field is only applicable for persistent disks. 222*d5c09012SAndroid Build Coastguard Worker string device_name = 3; 223*d5c09012SAndroid Build Coastguard Worker 224*d5c09012SAndroid Build Coastguard Worker // Indicates the size of the disk in base-2 GB. 225*d5c09012SAndroid Build Coastguard Worker int64 disk_size_gb = 4; 226*d5c09012SAndroid Build Coastguard Worker 227*d5c09012SAndroid Build Coastguard Worker // Indicates a list of features to enable on the guest operating system. 228*d5c09012SAndroid Build Coastguard Worker // Applicable only for bootable images. Read Enabling guest operating 229*d5c09012SAndroid Build Coastguard Worker // system features to see a list of available options. 230*d5c09012SAndroid Build Coastguard Worker repeated GuestOsFeature guest_os_features = 5; 231*d5c09012SAndroid Build Coastguard Worker 232*d5c09012SAndroid Build Coastguard Worker // A zero-based index to this disk, where 0 is reserved for the 233*d5c09012SAndroid Build Coastguard Worker // boot disk. If you have many disks attached to an instance, each disk 234*d5c09012SAndroid Build Coastguard Worker // would have a unique index number. 235*d5c09012SAndroid Build Coastguard Worker int64 index = 6; 236*d5c09012SAndroid Build Coastguard Worker 237*d5c09012SAndroid Build Coastguard Worker // Indicates the disk interface to use for attaching this disk, which is 238*d5c09012SAndroid Build Coastguard Worker // either SCSI or NVME. The default is SCSI. Persistent disks must always 239*d5c09012SAndroid Build Coastguard Worker // use SCSI and the request will fail if you attempt to attach a persistent 240*d5c09012SAndroid Build Coastguard Worker // disk in any other format than SCSI. Local SSDs can use either NVME or 241*d5c09012SAndroid Build Coastguard Worker // SCSI. For performance characteristics of SCSI over NVMe, see Local SSD 242*d5c09012SAndroid Build Coastguard Worker // performance. 243*d5c09012SAndroid Build Coastguard Worker // Valid values: 244*d5c09012SAndroid Build Coastguard Worker // 245*d5c09012SAndroid Build Coastguard Worker // * `NVME` 246*d5c09012SAndroid Build Coastguard Worker // * `SCSI` 247*d5c09012SAndroid Build Coastguard Worker string interface = 7; 248*d5c09012SAndroid Build Coastguard Worker 249*d5c09012SAndroid Build Coastguard Worker // Type of the resource. Always compute#attachedDisk for attached 250*d5c09012SAndroid Build Coastguard Worker // disks. 251*d5c09012SAndroid Build Coastguard Worker string kind = 8; 252*d5c09012SAndroid Build Coastguard Worker 253*d5c09012SAndroid Build Coastguard Worker // A list of publicly visible licenses. Reserved for Google's use. 254*d5c09012SAndroid Build Coastguard Worker // A License represents billing and aggregate usage data for public 255*d5c09012SAndroid Build Coastguard Worker // and marketplace images. 256*d5c09012SAndroid Build Coastguard Worker repeated string licenses = 9; 257*d5c09012SAndroid Build Coastguard Worker 258*d5c09012SAndroid Build Coastguard Worker // The mode in which to attach this disk, either `READ_WRITE` or 259*d5c09012SAndroid Build Coastguard Worker // `READ_ONLY`. If not specified, the default is to attach the disk in 260*d5c09012SAndroid Build Coastguard Worker // `READ_WRITE` mode. Valid values: 261*d5c09012SAndroid Build Coastguard Worker // 262*d5c09012SAndroid Build Coastguard Worker // * `READ_ONLY` 263*d5c09012SAndroid Build Coastguard Worker // * `READ_WRITE` 264*d5c09012SAndroid Build Coastguard Worker string mode = 10; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // Indicates a valid partial or full URL to an existing Persistent Disk 267*d5c09012SAndroid Build Coastguard Worker // resource. 268*d5c09012SAndroid Build Coastguard Worker string source = 11; 269*d5c09012SAndroid Build Coastguard Worker 270*d5c09012SAndroid Build Coastguard Worker // Indicates the type of the disk, either `SCRATCH` or `PERSISTENT`. 271*d5c09012SAndroid Build Coastguard Worker // Valid values: 272*d5c09012SAndroid Build Coastguard Worker // 273*d5c09012SAndroid Build Coastguard Worker // * `PERSISTENT` 274*d5c09012SAndroid Build Coastguard Worker // * `SCRATCH` 275*d5c09012SAndroid Build Coastguard Worker string type = 12; 276*d5c09012SAndroid Build Coastguard Worker } 277*d5c09012SAndroid Build Coastguard Worker 278*d5c09012SAndroid Build Coastguard Worker // A set of Shielded Instance options. 279*d5c09012SAndroid Build Coastguard Worker // Check [Images using supported Shielded VM 280*d5c09012SAndroid Build Coastguard Worker // features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). 281*d5c09012SAndroid Build Coastguard Worker // Not all combinations are valid. 282*d5c09012SAndroid Build Coastguard Worker message ShieldedInstanceConfig { 283*d5c09012SAndroid Build Coastguard Worker // Defines whether the instance has Secure Boot enabled. 284*d5c09012SAndroid Build Coastguard Worker // 285*d5c09012SAndroid Build Coastguard Worker // Secure Boot helps ensure that the system only runs authentic software by 286*d5c09012SAndroid Build Coastguard Worker // verifying the digital signature of all boot components, and halting the 287*d5c09012SAndroid Build Coastguard Worker // boot process if signature verification fails. Disabled by default. 288*d5c09012SAndroid Build Coastguard Worker bool enable_secure_boot = 1; 289*d5c09012SAndroid Build Coastguard Worker 290*d5c09012SAndroid Build Coastguard Worker // Defines whether the instance has the vTPM enabled. Enabled by default. 291*d5c09012SAndroid Build Coastguard Worker bool enable_vtpm = 2; 292*d5c09012SAndroid Build Coastguard Worker 293*d5c09012SAndroid Build Coastguard Worker // Defines whether the instance has integrity monitoring enabled. 294*d5c09012SAndroid Build Coastguard Worker // 295*d5c09012SAndroid Build Coastguard Worker // Enables monitoring and attestation of the boot integrity of the instance. 296*d5c09012SAndroid Build Coastguard Worker // The attestation is performed against the integrity policy baseline. This 297*d5c09012SAndroid Build Coastguard Worker // baseline is initially derived from the implicitly trusted boot image when 298*d5c09012SAndroid Build Coastguard Worker // the instance is created. Enabled by default. 299*d5c09012SAndroid Build Coastguard Worker bool enable_integrity_monitoring = 3; 300*d5c09012SAndroid Build Coastguard Worker } 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // The entry of VM image upgrade history. 303*d5c09012SAndroid Build Coastguard Worker message UpgradeHistoryEntry { 304*d5c09012SAndroid Build Coastguard Worker // The definition of the states of this upgrade history entry. 305*d5c09012SAndroid Build Coastguard Worker enum State { 306*d5c09012SAndroid Build Coastguard Worker // State is not specified. 307*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 308*d5c09012SAndroid Build Coastguard Worker 309*d5c09012SAndroid Build Coastguard Worker // The instance upgrade is started. 310*d5c09012SAndroid Build Coastguard Worker STARTED = 1; 311*d5c09012SAndroid Build Coastguard Worker 312*d5c09012SAndroid Build Coastguard Worker // The instance upgrade is succeeded. 313*d5c09012SAndroid Build Coastguard Worker SUCCEEDED = 2; 314*d5c09012SAndroid Build Coastguard Worker 315*d5c09012SAndroid Build Coastguard Worker // The instance upgrade is failed. 316*d5c09012SAndroid Build Coastguard Worker FAILED = 3; 317*d5c09012SAndroid Build Coastguard Worker } 318*d5c09012SAndroid Build Coastguard Worker 319*d5c09012SAndroid Build Coastguard Worker // The definition of operations of this upgrade history entry. 320*d5c09012SAndroid Build Coastguard Worker enum Action { 321*d5c09012SAndroid Build Coastguard Worker // Operation is not specified. 322*d5c09012SAndroid Build Coastguard Worker ACTION_UNSPECIFIED = 0; 323*d5c09012SAndroid Build Coastguard Worker 324*d5c09012SAndroid Build Coastguard Worker // Upgrade. 325*d5c09012SAndroid Build Coastguard Worker UPGRADE = 1; 326*d5c09012SAndroid Build Coastguard Worker 327*d5c09012SAndroid Build Coastguard Worker // Rollback. 328*d5c09012SAndroid Build Coastguard Worker ROLLBACK = 2; 329*d5c09012SAndroid Build Coastguard Worker } 330*d5c09012SAndroid Build Coastguard Worker 331*d5c09012SAndroid Build Coastguard Worker // The snapshot of the boot disk of this notebook instance before upgrade. 332*d5c09012SAndroid Build Coastguard Worker string snapshot = 1; 333*d5c09012SAndroid Build Coastguard Worker 334*d5c09012SAndroid Build Coastguard Worker // The VM image before this instance upgrade. 335*d5c09012SAndroid Build Coastguard Worker string vm_image = 2; 336*d5c09012SAndroid Build Coastguard Worker 337*d5c09012SAndroid Build Coastguard Worker // The container image before this instance upgrade. 338*d5c09012SAndroid Build Coastguard Worker string container_image = 3; 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // The framework of this notebook instance. 341*d5c09012SAndroid Build Coastguard Worker string framework = 4; 342*d5c09012SAndroid Build Coastguard Worker 343*d5c09012SAndroid Build Coastguard Worker // The version of the notebook instance before this upgrade. 344*d5c09012SAndroid Build Coastguard Worker string version = 5; 345*d5c09012SAndroid Build Coastguard Worker 346*d5c09012SAndroid Build Coastguard Worker // The state of this instance upgrade history entry. 347*d5c09012SAndroid Build Coastguard Worker State state = 6; 348*d5c09012SAndroid Build Coastguard Worker 349*d5c09012SAndroid Build Coastguard Worker // The time that this instance upgrade history entry is created. 350*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 7; 351*d5c09012SAndroid Build Coastguard Worker 352*d5c09012SAndroid Build Coastguard Worker // Target VM Image. Format: `ainotebooks-vm/project/image-name/name`. 353*d5c09012SAndroid Build Coastguard Worker string target_image = 8 [deprecated = true]; 354*d5c09012SAndroid Build Coastguard Worker 355*d5c09012SAndroid Build Coastguard Worker // Action. Rolloback or Upgrade. 356*d5c09012SAndroid Build Coastguard Worker Action action = 9; 357*d5c09012SAndroid Build Coastguard Worker 358*d5c09012SAndroid Build Coastguard Worker // Target VM Version, like m63. 359*d5c09012SAndroid Build Coastguard Worker string target_version = 10; 360*d5c09012SAndroid Build Coastguard Worker } 361*d5c09012SAndroid Build Coastguard Worker 362*d5c09012SAndroid Build Coastguard Worker // The type of vNIC driver. 363*d5c09012SAndroid Build Coastguard Worker // Default should be UNSPECIFIED_NIC_TYPE. 364*d5c09012SAndroid Build Coastguard Worker enum NicType { 365*d5c09012SAndroid Build Coastguard Worker // No type specified. 366*d5c09012SAndroid Build Coastguard Worker UNSPECIFIED_NIC_TYPE = 0; 367*d5c09012SAndroid Build Coastguard Worker 368*d5c09012SAndroid Build Coastguard Worker // VIRTIO 369*d5c09012SAndroid Build Coastguard Worker VIRTIO_NET = 1; 370*d5c09012SAndroid Build Coastguard Worker 371*d5c09012SAndroid Build Coastguard Worker // GVNIC 372*d5c09012SAndroid Build Coastguard Worker GVNIC = 2; 373*d5c09012SAndroid Build Coastguard Worker } 374*d5c09012SAndroid Build Coastguard Worker 375*d5c09012SAndroid Build Coastguard Worker // Output only. The name of this notebook instance. Format: 376*d5c09012SAndroid Build Coastguard Worker // `projects/{project_id}/locations/{location}/instances/{instance_id}` 377*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 378*d5c09012SAndroid Build Coastguard Worker 379*d5c09012SAndroid Build Coastguard Worker // Type of the environment; can be one of VM image, or container image. 380*d5c09012SAndroid Build Coastguard Worker oneof environment { 381*d5c09012SAndroid Build Coastguard Worker // Use a Compute Engine VM image to start the notebook instance. 382*d5c09012SAndroid Build Coastguard Worker VmImage vm_image = 2; 383*d5c09012SAndroid Build Coastguard Worker 384*d5c09012SAndroid Build Coastguard Worker // Use a container image to start the notebook instance. 385*d5c09012SAndroid Build Coastguard Worker ContainerImage container_image = 3; 386*d5c09012SAndroid Build Coastguard Worker } 387*d5c09012SAndroid Build Coastguard Worker 388*d5c09012SAndroid Build Coastguard Worker // Path to a Bash script that automatically runs after a notebook instance 389*d5c09012SAndroid Build Coastguard Worker // fully boots up. The path must be a URL or 390*d5c09012SAndroid Build Coastguard Worker // Cloud Storage path (`gs://path-to-file/file-name`). 391*d5c09012SAndroid Build Coastguard Worker string post_startup_script = 4; 392*d5c09012SAndroid Build Coastguard Worker 393*d5c09012SAndroid Build Coastguard Worker // Output only. The proxy endpoint that is used to access the Jupyter notebook. 394*d5c09012SAndroid Build Coastguard Worker string proxy_uri = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 395*d5c09012SAndroid Build Coastguard Worker 396*d5c09012SAndroid Build Coastguard Worker // Input only. The owner of this instance after creation. Format: `[email protected]` 397*d5c09012SAndroid Build Coastguard Worker // 398*d5c09012SAndroid Build Coastguard Worker // Currently supports one owner only. If not specified, all of the service 399*d5c09012SAndroid Build Coastguard Worker // account users of your VM instance's service account can use 400*d5c09012SAndroid Build Coastguard Worker // the instance. 401*d5c09012SAndroid Build Coastguard Worker repeated string instance_owners = 6 [(google.api.field_behavior) = INPUT_ONLY]; 402*d5c09012SAndroid Build Coastguard Worker 403*d5c09012SAndroid Build Coastguard Worker // The service account on this instance, giving access to other Google 404*d5c09012SAndroid Build Coastguard Worker // Cloud services. 405*d5c09012SAndroid Build Coastguard Worker // You can use any service account within the same project, but you 406*d5c09012SAndroid Build Coastguard Worker // must have the service account user permission to use the instance. 407*d5c09012SAndroid Build Coastguard Worker // 408*d5c09012SAndroid Build Coastguard Worker // If not specified, the [Compute Engine default service 409*d5c09012SAndroid Build Coastguard Worker // account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) 410*d5c09012SAndroid Build Coastguard Worker // is used. 411*d5c09012SAndroid Build Coastguard Worker string service_account = 7; 412*d5c09012SAndroid Build Coastguard Worker 413*d5c09012SAndroid Build Coastguard Worker // Optional. The URIs of service account scopes to be included in 414*d5c09012SAndroid Build Coastguard Worker // Compute Engine instances. 415*d5c09012SAndroid Build Coastguard Worker // 416*d5c09012SAndroid Build Coastguard Worker // If not specified, the following 417*d5c09012SAndroid Build Coastguard Worker // [scopes](https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam) 418*d5c09012SAndroid Build Coastguard Worker // are defined: 419*d5c09012SAndroid Build Coastguard Worker // - https://www.googleapis.com/auth/cloud-platform 420*d5c09012SAndroid Build Coastguard Worker // - https://www.googleapis.com/auth/userinfo.email 421*d5c09012SAndroid Build Coastguard Worker // If not using default scopes, you need at least: 422*d5c09012SAndroid Build Coastguard Worker // https://www.googleapis.com/auth/compute 423*d5c09012SAndroid Build Coastguard Worker repeated string service_account_scopes = 31 [(google.api.field_behavior) = OPTIONAL]; 424*d5c09012SAndroid Build Coastguard Worker 425*d5c09012SAndroid Build Coastguard Worker // Required. The [Compute Engine machine 426*d5c09012SAndroid Build Coastguard Worker // type](https://cloud.google.com/compute/docs/machine-types) of this 427*d5c09012SAndroid Build Coastguard Worker // instance. 428*d5c09012SAndroid Build Coastguard Worker string machine_type = 8 [(google.api.field_behavior) = REQUIRED]; 429*d5c09012SAndroid Build Coastguard Worker 430*d5c09012SAndroid Build Coastguard Worker // The hardware accelerator used on this instance. If you use 431*d5c09012SAndroid Build Coastguard Worker // accelerators, make sure that your configuration has 432*d5c09012SAndroid Build Coastguard Worker // [enough vCPUs and memory to support the `machine_type` you have 433*d5c09012SAndroid Build Coastguard Worker // selected](https://cloud.google.com/compute/docs/gpus/#gpus-list). 434*d5c09012SAndroid Build Coastguard Worker AcceleratorConfig accelerator_config = 9; 435*d5c09012SAndroid Build Coastguard Worker 436*d5c09012SAndroid Build Coastguard Worker // Output only. The state of this instance. 437*d5c09012SAndroid Build Coastguard Worker State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 438*d5c09012SAndroid Build Coastguard Worker 439*d5c09012SAndroid Build Coastguard Worker // Whether the end user authorizes Google Cloud to install GPU driver 440*d5c09012SAndroid Build Coastguard Worker // on this instance. 441*d5c09012SAndroid Build Coastguard Worker // If this field is empty or set to false, the GPU driver won't be installed. 442*d5c09012SAndroid Build Coastguard Worker // Only applicable to instances with GPUs. 443*d5c09012SAndroid Build Coastguard Worker bool install_gpu_driver = 11; 444*d5c09012SAndroid Build Coastguard Worker 445*d5c09012SAndroid Build Coastguard Worker // Specify a custom Cloud Storage path where the GPU driver is stored. 446*d5c09012SAndroid Build Coastguard Worker // If not specified, we'll automatically choose from official GPU drivers. 447*d5c09012SAndroid Build Coastguard Worker string custom_gpu_driver_path = 12; 448*d5c09012SAndroid Build Coastguard Worker 449*d5c09012SAndroid Build Coastguard Worker // Input only. The type of the boot disk attached to this instance, defaults to 450*d5c09012SAndroid Build Coastguard Worker // standard persistent disk (`PD_STANDARD`). 451*d5c09012SAndroid Build Coastguard Worker DiskType boot_disk_type = 13 [(google.api.field_behavior) = INPUT_ONLY]; 452*d5c09012SAndroid Build Coastguard Worker 453*d5c09012SAndroid Build Coastguard Worker // Input only. The size of the boot disk in GB attached to this instance, up to a maximum 454*d5c09012SAndroid Build Coastguard Worker // of 64000 GB (64 TB). The minimum recommended value is 100 GB. If not 455*d5c09012SAndroid Build Coastguard Worker // specified, this defaults to 100. 456*d5c09012SAndroid Build Coastguard Worker int64 boot_disk_size_gb = 14 [(google.api.field_behavior) = INPUT_ONLY]; 457*d5c09012SAndroid Build Coastguard Worker 458*d5c09012SAndroid Build Coastguard Worker // Input only. The type of the data disk attached to this instance, defaults to 459*d5c09012SAndroid Build Coastguard Worker // standard persistent disk (`PD_STANDARD`). 460*d5c09012SAndroid Build Coastguard Worker DiskType data_disk_type = 25 [(google.api.field_behavior) = INPUT_ONLY]; 461*d5c09012SAndroid Build Coastguard Worker 462*d5c09012SAndroid Build Coastguard Worker // Input only. The size of the data disk in GB attached to this instance, up to a maximum 463*d5c09012SAndroid Build Coastguard Worker // of 64000 GB (64 TB). You can choose the size of the data disk based on how 464*d5c09012SAndroid Build Coastguard Worker // big your notebooks and data are. If not specified, this defaults to 100. 465*d5c09012SAndroid Build Coastguard Worker int64 data_disk_size_gb = 26 [(google.api.field_behavior) = INPUT_ONLY]; 466*d5c09012SAndroid Build Coastguard Worker 467*d5c09012SAndroid Build Coastguard Worker // Input only. If true, the data disk will not be auto deleted when deleting the instance. 468*d5c09012SAndroid Build Coastguard Worker bool no_remove_data_disk = 27 [(google.api.field_behavior) = INPUT_ONLY]; 469*d5c09012SAndroid Build Coastguard Worker 470*d5c09012SAndroid Build Coastguard Worker // Input only. Disk encryption method used on the boot and data disks, defaults to GMEK. 471*d5c09012SAndroid Build Coastguard Worker DiskEncryption disk_encryption = 15 [(google.api.field_behavior) = INPUT_ONLY]; 472*d5c09012SAndroid Build Coastguard Worker 473*d5c09012SAndroid Build Coastguard Worker // Input only. The KMS key used to encrypt the disks, only applicable if disk_encryption 474*d5c09012SAndroid Build Coastguard Worker // is CMEK. 475*d5c09012SAndroid Build Coastguard Worker // Format: 476*d5c09012SAndroid Build Coastguard Worker // `projects/{project_id}/locations/{location}/keyRings/{key_ring_id}/cryptoKeys/{key_id}` 477*d5c09012SAndroid Build Coastguard Worker // 478*d5c09012SAndroid Build Coastguard Worker // Learn more about [using your own encryption keys](/kms/docs/quickstart). 479*d5c09012SAndroid Build Coastguard Worker string kms_key = 16 [(google.api.field_behavior) = INPUT_ONLY]; 480*d5c09012SAndroid Build Coastguard Worker 481*d5c09012SAndroid Build Coastguard Worker // Output only. Attached disks to notebook instance. 482*d5c09012SAndroid Build Coastguard Worker repeated Disk disks = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; 483*d5c09012SAndroid Build Coastguard Worker 484*d5c09012SAndroid Build Coastguard Worker // Optional. Shielded VM configuration. 485*d5c09012SAndroid Build Coastguard Worker // [Images using supported Shielded VM 486*d5c09012SAndroid Build Coastguard Worker // features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). 487*d5c09012SAndroid Build Coastguard Worker ShieldedInstanceConfig shielded_instance_config = 30 [(google.api.field_behavior) = OPTIONAL]; 488*d5c09012SAndroid Build Coastguard Worker 489*d5c09012SAndroid Build Coastguard Worker // If true, no public IP will be assigned to this instance. 490*d5c09012SAndroid Build Coastguard Worker bool no_public_ip = 17; 491*d5c09012SAndroid Build Coastguard Worker 492*d5c09012SAndroid Build Coastguard Worker // If true, the notebook instance will not register with the proxy. 493*d5c09012SAndroid Build Coastguard Worker bool no_proxy_access = 18; 494*d5c09012SAndroid Build Coastguard Worker 495*d5c09012SAndroid Build Coastguard Worker // The name of the VPC that this instance is in. 496*d5c09012SAndroid Build Coastguard Worker // Format: 497*d5c09012SAndroid Build Coastguard Worker // `projects/{project_id}/global/networks/{network_id}` 498*d5c09012SAndroid Build Coastguard Worker string network = 19; 499*d5c09012SAndroid Build Coastguard Worker 500*d5c09012SAndroid Build Coastguard Worker // The name of the subnet that this instance is in. 501*d5c09012SAndroid Build Coastguard Worker // Format: 502*d5c09012SAndroid Build Coastguard Worker // `projects/{project_id}/regions/{region}/subnetworks/{subnetwork_id}` 503*d5c09012SAndroid Build Coastguard Worker string subnet = 20; 504*d5c09012SAndroid Build Coastguard Worker 505*d5c09012SAndroid Build Coastguard Worker // Labels to apply to this instance. 506*d5c09012SAndroid Build Coastguard Worker // These can be later modified by the setLabels method. 507*d5c09012SAndroid Build Coastguard Worker map<string, string> labels = 21; 508*d5c09012SAndroid Build Coastguard Worker 509*d5c09012SAndroid Build Coastguard Worker // Custom metadata to apply to this instance. 510*d5c09012SAndroid Build Coastguard Worker map<string, string> metadata = 22; 511*d5c09012SAndroid Build Coastguard Worker 512*d5c09012SAndroid Build Coastguard Worker // Optional. The Compute Engine tags to add to runtime (see [Tagging 513*d5c09012SAndroid Build Coastguard Worker // instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). 514*d5c09012SAndroid Build Coastguard Worker repeated string tags = 32 [(google.api.field_behavior) = OPTIONAL]; 515*d5c09012SAndroid Build Coastguard Worker 516*d5c09012SAndroid Build Coastguard Worker // The upgrade history of this instance. 517*d5c09012SAndroid Build Coastguard Worker repeated UpgradeHistoryEntry upgrade_history = 29; 518*d5c09012SAndroid Build Coastguard Worker 519*d5c09012SAndroid Build Coastguard Worker // Optional. The type of vNIC to be used on this interface. This may be gVNIC or 520*d5c09012SAndroid Build Coastguard Worker // VirtioNet. 521*d5c09012SAndroid Build Coastguard Worker NicType nic_type = 33 [(google.api.field_behavior) = OPTIONAL]; 522*d5c09012SAndroid Build Coastguard Worker 523*d5c09012SAndroid Build Coastguard Worker // Optional. The optional reservation affinity. Setting this field will apply 524*d5c09012SAndroid Build Coastguard Worker // the specified [Zonal Compute 525*d5c09012SAndroid Build Coastguard Worker // Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) 526*d5c09012SAndroid Build Coastguard Worker // to this notebook instance. 527*d5c09012SAndroid Build Coastguard Worker ReservationAffinity reservation_affinity = 34 [(google.api.field_behavior) = OPTIONAL]; 528*d5c09012SAndroid Build Coastguard Worker 529*d5c09012SAndroid Build Coastguard Worker // Output only. Email address of entity that sent original CreateInstance request. 530*d5c09012SAndroid Build Coastguard Worker string creator = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; 531*d5c09012SAndroid Build Coastguard Worker 532*d5c09012SAndroid Build Coastguard Worker // Optional. Flag to enable ip forwarding or not, default false/off. 533*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/vpc/docs/using-routes#canipforward 534*d5c09012SAndroid Build Coastguard Worker bool can_ip_forward = 39 [(google.api.field_behavior) = OPTIONAL]; 535*d5c09012SAndroid Build Coastguard Worker 536*d5c09012SAndroid Build Coastguard Worker // Output only. Instance creation time. 537*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; 538*d5c09012SAndroid Build Coastguard Worker 539*d5c09012SAndroid Build Coastguard Worker // Output only. Instance update time. 540*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; 541*d5c09012SAndroid Build Coastguard Worker} 542