xref: /aosp_15_r20/external/googleapis/google/cloud/notebooks/v1/environment.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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/protobuf/timestamp.proto";
22*d5c09012SAndroid Build Coastguard Worker
23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Notebooks.V1";
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/notebooks/apiv1/notebookspb;notebookspb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "EnvironmentProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.notebooks.v1";
28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Notebooks\\V1";
29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Notebooks::V1";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// Definition of a software environment that is used to start a notebook
32*d5c09012SAndroid Build Coastguard Worker// instance.
33*d5c09012SAndroid Build Coastguard Workermessage Environment {
34*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
35*d5c09012SAndroid Build Coastguard Worker    type: "notebooks.googleapis.com/Environment"
36*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/environments/{environment}"
37*d5c09012SAndroid Build Coastguard Worker  };
38*d5c09012SAndroid Build Coastguard Worker
39*d5c09012SAndroid Build Coastguard Worker  // Output only. Name of this environment.
40*d5c09012SAndroid Build Coastguard Worker  // Format:
41*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_id}/locations/{location}/environments/{environment_id}`
42*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // Display name of this environment for the UI.
45*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker  // A brief description of this environment.
48*d5c09012SAndroid Build Coastguard Worker  string description = 3;
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker  // Type of the environment; can be one of VM image, or container image.
51*d5c09012SAndroid Build Coastguard Worker  oneof image_type {
52*d5c09012SAndroid Build Coastguard Worker    // Use a Compute Engine VM image to start the notebook instance.
53*d5c09012SAndroid Build Coastguard Worker    VmImage vm_image = 6;
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker    // Use a container image to start the notebook instance.
56*d5c09012SAndroid Build Coastguard Worker    ContainerImage container_image = 7;
57*d5c09012SAndroid Build Coastguard Worker  }
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // Path to a Bash script that automatically runs after a notebook instance
60*d5c09012SAndroid Build Coastguard Worker  // fully boots up. The path must be a URL or
61*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage path. Example: `"gs://path-to-file/file-name"`
62*d5c09012SAndroid Build Coastguard Worker  string post_startup_script = 8;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which this environment was created.
65*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
66*d5c09012SAndroid Build Coastguard Worker}
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker// Definition of a custom Compute Engine virtual machine image for starting a
69*d5c09012SAndroid Build Coastguard Worker// notebook instance with the environment installed directly on the VM.
70*d5c09012SAndroid Build Coastguard Workermessage VmImage {
71*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the Google Cloud project that this VM image belongs to.
72*d5c09012SAndroid Build Coastguard Worker  // Format: `{project_id}`
73*d5c09012SAndroid Build Coastguard Worker  string project = 1 [(google.api.field_behavior) = REQUIRED];
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // The reference to an external Compute Engine VM image.
76*d5c09012SAndroid Build Coastguard Worker  oneof image {
77*d5c09012SAndroid Build Coastguard Worker    // Use VM image name to find the image.
78*d5c09012SAndroid Build Coastguard Worker    string image_name = 2;
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker    // Use this VM image family to find the image; the newest image in this
81*d5c09012SAndroid Build Coastguard Worker    // family will be used.
82*d5c09012SAndroid Build Coastguard Worker    string image_family = 3;
83*d5c09012SAndroid Build Coastguard Worker  }
84*d5c09012SAndroid Build Coastguard Worker}
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker// Definition of a container image for starting a notebook instance with the
87*d5c09012SAndroid Build Coastguard Worker// environment installed in a container.
88*d5c09012SAndroid Build Coastguard Workermessage ContainerImage {
89*d5c09012SAndroid Build Coastguard Worker  // Required. The path to the container image repository. For example:
90*d5c09012SAndroid Build Coastguard Worker  // `gcr.io/{project_id}/{image_name}`
91*d5c09012SAndroid Build Coastguard Worker  string repository = 1 [(google.api.field_behavior) = REQUIRED];
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker  // The tag of the container image. If not specified, this defaults
94*d5c09012SAndroid Build Coastguard Worker  // to the latest tag.
95*d5c09012SAndroid Build Coastguard Worker  string tag = 2;
96*d5c09012SAndroid Build Coastguard Worker}
97