xref: /aosp_15_r20/external/googleapis/google/genomics/v1alpha2/pipelines.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2016 Google Inc.
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.genomics.v1alpha2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/code.proto";
25*d5c09012SAndroid Build Coastguard Worker
26*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
27*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/genomics/v1alpha2;genomics";
28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "PipelinesProto";
30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.genomics.v1a";
31*d5c09012SAndroid Build Coastguard Worker
32*d5c09012SAndroid Build Coastguard Worker// A service for running genomics pipelines.
33*d5c09012SAndroid Build Coastguard Workerservice PipelinesV1Alpha2 {
34*d5c09012SAndroid Build Coastguard Worker  // Creates a pipeline that can be run later. Create takes a Pipeline that
35*d5c09012SAndroid Build Coastguard Worker  // has all fields other than `pipelineId` populated, and then returns
36*d5c09012SAndroid Build Coastguard Worker  // the same pipeline with `pipelineId` populated. This id can be used
37*d5c09012SAndroid Build Coastguard Worker  // to run the pipeline.
38*d5c09012SAndroid Build Coastguard Worker  //
39*d5c09012SAndroid Build Coastguard Worker  // Caller must have WRITE permission to the project.
40*d5c09012SAndroid Build Coastguard Worker  rpc CreatePipeline(CreatePipelineRequest) returns (Pipeline) {
41*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
42*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha2/pipelines"
43*d5c09012SAndroid Build Coastguard Worker      body: "pipeline"
44*d5c09012SAndroid Build Coastguard Worker    };
45*d5c09012SAndroid Build Coastguard Worker  }
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker  // Runs a pipeline. If `pipelineId` is specified in the request, then
48*d5c09012SAndroid Build Coastguard Worker  // run a saved pipeline. If `ephemeralPipeline` is specified, then run
49*d5c09012SAndroid Build Coastguard Worker  // that pipeline once without saving a copy.
50*d5c09012SAndroid Build Coastguard Worker  //
51*d5c09012SAndroid Build Coastguard Worker  // The caller must have READ permission to the project where the pipeline
52*d5c09012SAndroid Build Coastguard Worker  // is stored and WRITE permission to the project where the pipeline will be
53*d5c09012SAndroid Build Coastguard Worker  // run, as VMs will be created and storage will be used.
54*d5c09012SAndroid Build Coastguard Worker  rpc RunPipeline(RunPipelineRequest) returns (google.longrunning.Operation) {
55*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
56*d5c09012SAndroid Build Coastguard Worker      post: "/v1alpha2/pipelines:run"
57*d5c09012SAndroid Build Coastguard Worker      body: "*"
58*d5c09012SAndroid Build Coastguard Worker    };
59*d5c09012SAndroid Build Coastguard Worker  }
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker  // Retrieves a pipeline based on ID.
62*d5c09012SAndroid Build Coastguard Worker  //
63*d5c09012SAndroid Build Coastguard Worker  // Caller must have READ permission to the project.
64*d5c09012SAndroid Build Coastguard Worker  rpc GetPipeline(GetPipelineRequest) returns (Pipeline) {
65*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
66*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha2/pipelines/{pipeline_id}"
67*d5c09012SAndroid Build Coastguard Worker    };
68*d5c09012SAndroid Build Coastguard Worker  }
69*d5c09012SAndroid Build Coastguard Worker
70*d5c09012SAndroid Build Coastguard Worker  // Lists pipelines.
71*d5c09012SAndroid Build Coastguard Worker  //
72*d5c09012SAndroid Build Coastguard Worker  // Caller must have READ permission to the project.
73*d5c09012SAndroid Build Coastguard Worker  rpc ListPipelines(ListPipelinesRequest) returns (ListPipelinesResponse) {
74*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
75*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha2/pipelines"
76*d5c09012SAndroid Build Coastguard Worker    };
77*d5c09012SAndroid Build Coastguard Worker  }
78*d5c09012SAndroid Build Coastguard Worker
79*d5c09012SAndroid Build Coastguard Worker  // Deletes a pipeline based on ID.
80*d5c09012SAndroid Build Coastguard Worker  //
81*d5c09012SAndroid Build Coastguard Worker  // Caller must have WRITE permission to the project.
82*d5c09012SAndroid Build Coastguard Worker  rpc DeletePipeline(DeletePipelineRequest) returns (google.protobuf.Empty) {
83*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
84*d5c09012SAndroid Build Coastguard Worker      delete: "/v1alpha2/pipelines/{pipeline_id}"
85*d5c09012SAndroid Build Coastguard Worker    };
86*d5c09012SAndroid Build Coastguard Worker  }
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // Gets controller configuration information. Should only be called
89*d5c09012SAndroid Build Coastguard Worker  // by VMs created by the Pipelines Service and not by end users.
90*d5c09012SAndroid Build Coastguard Worker  rpc GetControllerConfig(GetControllerConfigRequest)
91*d5c09012SAndroid Build Coastguard Worker      returns (ControllerConfig) {
92*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
93*d5c09012SAndroid Build Coastguard Worker      get: "/v1alpha2/pipelines:getControllerConfig"
94*d5c09012SAndroid Build Coastguard Worker    };
95*d5c09012SAndroid Build Coastguard Worker  }
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // Sets status of a given operation. Any new timestamps (as determined by
98*d5c09012SAndroid Build Coastguard Worker  // description) are appended to TimestampEvents. Should only be called by VMs
99*d5c09012SAndroid Build Coastguard Worker  // created by the Pipelines Service and not by end users.
100*d5c09012SAndroid Build Coastguard Worker  rpc SetOperationStatus(SetOperationStatusRequest)
101*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
102*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
103*d5c09012SAndroid Build Coastguard Worker      put: "/v1alpha2/pipelines:setOperationStatus"
104*d5c09012SAndroid Build Coastguard Worker      body: "*"
105*d5c09012SAndroid Build Coastguard Worker    };
106*d5c09012SAndroid Build Coastguard Worker  }
107*d5c09012SAndroid Build Coastguard Worker}
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker// Describes a Compute Engine resource that is being managed by a running
110*d5c09012SAndroid Build Coastguard Worker// [pipeline][google.genomics.v1alpha2.Pipeline].
111*d5c09012SAndroid Build Coastguard Workermessage ComputeEngine {
112*d5c09012SAndroid Build Coastguard Worker  // The instance on which the operation is running.
113*d5c09012SAndroid Build Coastguard Worker  string instance_name = 1;
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // The availability zone in which the instance resides.
116*d5c09012SAndroid Build Coastguard Worker  string zone = 2;
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // The machine type of the instance.
119*d5c09012SAndroid Build Coastguard Worker  string machine_type = 3;
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker  // The names of the disks that were created for this pipeline.
122*d5c09012SAndroid Build Coastguard Worker  repeated string disk_names = 4;
123*d5c09012SAndroid Build Coastguard Worker}
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker// Runtime metadata that will be populated in the
126*d5c09012SAndroid Build Coastguard Worker// [runtimeMetadata][google.genomics.v1.OperationMetadata.runtime_metadata]
127*d5c09012SAndroid Build Coastguard Worker// field of the Operation associated with a RunPipeline execution.
128*d5c09012SAndroid Build Coastguard Workermessage RuntimeMetadata {
129*d5c09012SAndroid Build Coastguard Worker  // Execution information specific to Google Compute Engine.
130*d5c09012SAndroid Build Coastguard Worker  ComputeEngine compute_engine = 1;
131*d5c09012SAndroid Build Coastguard Worker}
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker// The pipeline object. Represents a transformation from a set of input
134*d5c09012SAndroid Build Coastguard Worker// parameters to a set of output parameters. The transformation is defined
135*d5c09012SAndroid Build Coastguard Worker// as a docker image and command to run within that image. Each pipeline
136*d5c09012SAndroid Build Coastguard Worker// is run on a Google Compute Engine VM. A pipeline can be created with the
137*d5c09012SAndroid Build Coastguard Worker// `create` method and then later run with the `run` method, or a pipeline can
138*d5c09012SAndroid Build Coastguard Worker// be defined and run all at once with the `run` method.
139*d5c09012SAndroid Build Coastguard Workermessage Pipeline {
140*d5c09012SAndroid Build Coastguard Worker  // Required. The project in which to create the pipeline. The caller must have
141*d5c09012SAndroid Build Coastguard Worker  // WRITE access.
142*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker  // Required. A user specified pipeline name that does not have to be unique.
145*d5c09012SAndroid Build Coastguard Worker  // This name can be used for filtering Pipelines in ListPipelines.
146*d5c09012SAndroid Build Coastguard Worker  string name = 2;
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker  // User-specified description.
149*d5c09012SAndroid Build Coastguard Worker  string description = 3;
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Input parameters of the pipeline.
152*d5c09012SAndroid Build Coastguard Worker  repeated PipelineParameter input_parameters = 8;
153*d5c09012SAndroid Build Coastguard Worker
154*d5c09012SAndroid Build Coastguard Worker  // Output parameters of the pipeline.
155*d5c09012SAndroid Build Coastguard Worker  repeated PipelineParameter output_parameters = 9;
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker  // Required. The executor indicates in which environment the pipeline runs.
158*d5c09012SAndroid Build Coastguard Worker  oneof executor {
159*d5c09012SAndroid Build Coastguard Worker    // Specifies the docker run information.
160*d5c09012SAndroid Build Coastguard Worker    DockerExecutor docker = 5;
161*d5c09012SAndroid Build Coastguard Worker  }
162*d5c09012SAndroid Build Coastguard Worker
163*d5c09012SAndroid Build Coastguard Worker  // Required. Specifies resource requirements for the pipeline run.
164*d5c09012SAndroid Build Coastguard Worker  // Required fields:
165*d5c09012SAndroid Build Coastguard Worker  //
166*d5c09012SAndroid Build Coastguard Worker  // *
167*d5c09012SAndroid Build Coastguard Worker  // [minimumCpuCores][google.genomics.v1alpha2.PipelineResources.minimum_cpu_cores]
168*d5c09012SAndroid Build Coastguard Worker  //
169*d5c09012SAndroid Build Coastguard Worker  // *
170*d5c09012SAndroid Build Coastguard Worker  // [minimumRamGb][google.genomics.v1alpha2.PipelineResources.minimum_ram_gb]
171*d5c09012SAndroid Build Coastguard Worker  PipelineResources resources = 6;
172*d5c09012SAndroid Build Coastguard Worker
173*d5c09012SAndroid Build Coastguard Worker  // Unique pipeline id that is generated by the service when CreatePipeline
174*d5c09012SAndroid Build Coastguard Worker  // is called. Cannot be specified in the Pipeline used in the
175*d5c09012SAndroid Build Coastguard Worker  // CreatePipelineRequest, and will be populated in the response to
176*d5c09012SAndroid Build Coastguard Worker  // CreatePipeline and all subsequent Get and List calls. Indicates that the
177*d5c09012SAndroid Build Coastguard Worker  // service has registered this pipeline.
178*d5c09012SAndroid Build Coastguard Worker  string pipeline_id = 7;
179*d5c09012SAndroid Build Coastguard Worker}
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker// The request to create a pipeline. The pipeline field here should not have
182*d5c09012SAndroid Build Coastguard Worker// `pipelineId` populated, as that will be populated by the server.
183*d5c09012SAndroid Build Coastguard Workermessage CreatePipelineRequest {
184*d5c09012SAndroid Build Coastguard Worker  // The pipeline to create. Should not have `pipelineId` populated.
185*d5c09012SAndroid Build Coastguard Worker  Pipeline pipeline = 1;
186*d5c09012SAndroid Build Coastguard Worker}
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker// The pipeline run arguments.
189*d5c09012SAndroid Build Coastguard Workermessage RunPipelineArgs {
190*d5c09012SAndroid Build Coastguard Worker  // Required. The project in which to run the pipeline. The caller must have
191*d5c09012SAndroid Build Coastguard Worker  // WRITER access to all Google Cloud services and resources (e.g. Google
192*d5c09012SAndroid Build Coastguard Worker  // Compute Engine) will be used.
193*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
194*d5c09012SAndroid Build Coastguard Worker
195*d5c09012SAndroid Build Coastguard Worker  // Pipeline input arguments; keys are defined in the pipeline documentation.
196*d5c09012SAndroid Build Coastguard Worker  // All input parameters that do not have default values  must be specified.
197*d5c09012SAndroid Build Coastguard Worker  // If parameters with defaults are specified here, the defaults will be
198*d5c09012SAndroid Build Coastguard Worker  // overridden.
199*d5c09012SAndroid Build Coastguard Worker  map<string, string> inputs = 2;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // Pipeline output arguments; keys are defined in the pipeline
202*d5c09012SAndroid Build Coastguard Worker  // documentation.  All output parameters of without default values
203*d5c09012SAndroid Build Coastguard Worker  // must be specified.  If parameters with defaults are specified
204*d5c09012SAndroid Build Coastguard Worker  // here, the defaults will be overridden.
205*d5c09012SAndroid Build Coastguard Worker  map<string, string> outputs = 3;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker  // The Google Cloud Service Account that will be used to access data and
208*d5c09012SAndroid Build Coastguard Worker  // services. By default, the compute service account associated with
209*d5c09012SAndroid Build Coastguard Worker  // `projectId` is used.
210*d5c09012SAndroid Build Coastguard Worker  ServiceAccount service_account = 4;
211*d5c09012SAndroid Build Coastguard Worker
212*d5c09012SAndroid Build Coastguard Worker  // This field is deprecated. Use `labels` instead. Client-specified pipeline
213*d5c09012SAndroid Build Coastguard Worker  // operation identifier.
214*d5c09012SAndroid Build Coastguard Worker  string client_id = 5;
215*d5c09012SAndroid Build Coastguard Worker
216*d5c09012SAndroid Build Coastguard Worker  // Specifies resource requirements/overrides for the pipeline run.
217*d5c09012SAndroid Build Coastguard Worker  PipelineResources resources = 6;
218*d5c09012SAndroid Build Coastguard Worker
219*d5c09012SAndroid Build Coastguard Worker  // Required. Logging options. Used by the service to communicate results
220*d5c09012SAndroid Build Coastguard Worker  // to the user.
221*d5c09012SAndroid Build Coastguard Worker  LoggingOptions logging = 7;
222*d5c09012SAndroid Build Coastguard Worker
223*d5c09012SAndroid Build Coastguard Worker  // How long to keep the VM up after a failure (for example docker command
224*d5c09012SAndroid Build Coastguard Worker  // failed, copying input or output files failed, etc). While the VM is up, one
225*d5c09012SAndroid Build Coastguard Worker  // can ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.
226*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration keep_vm_alive_on_failure_duration = 8;
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker  // Labels to apply to this pipeline run. Labels will also be applied to
229*d5c09012SAndroid Build Coastguard Worker  // compute resources (VM, disks) created by this pipeline run. When listing
230*d5c09012SAndroid Build Coastguard Worker  // operations, operations can [filtered by labels]
231*d5c09012SAndroid Build Coastguard Worker  // [google.longrunning.ListOperationsRequest.filter].
232*d5c09012SAndroid Build Coastguard Worker  // Label keys may not be empty; label values may be empty. Non-empty labels
233*d5c09012SAndroid Build Coastguard Worker  // must be 1-63 characters long, and comply with [RFC1035]
234*d5c09012SAndroid Build Coastguard Worker  // (https://www.ietf.org/rfc/rfc1035.txt).
235*d5c09012SAndroid Build Coastguard Worker  // Specifically, the name must be 1-63 characters long and match the regular
236*d5c09012SAndroid Build Coastguard Worker  // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
237*d5c09012SAndroid Build Coastguard Worker  // character must be a lowercase letter, and all following characters must be
238*d5c09012SAndroid Build Coastguard Worker  // a dash, lowercase letter, or digit, except the last character, which cannot
239*d5c09012SAndroid Build Coastguard Worker  // be a dash.
240*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 9;
241*d5c09012SAndroid Build Coastguard Worker}
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker// The request to run a pipeline. If `pipelineId` is specified, it
244*d5c09012SAndroid Build Coastguard Worker// refers to a saved pipeline created with CreatePipeline and set as
245*d5c09012SAndroid Build Coastguard Worker// the `pipelineId` of the returned Pipeline object. If
246*d5c09012SAndroid Build Coastguard Worker// `ephemeralPipeline` is specified, that pipeline is run once
247*d5c09012SAndroid Build Coastguard Worker// with the given args and not saved. It is an error to specify both
248*d5c09012SAndroid Build Coastguard Worker// `pipelineId` and `ephemeralPipeline`. `pipelineArgs`
249*d5c09012SAndroid Build Coastguard Worker// must be specified.
250*d5c09012SAndroid Build Coastguard Workermessage RunPipelineRequest {
251*d5c09012SAndroid Build Coastguard Worker  oneof pipeline {
252*d5c09012SAndroid Build Coastguard Worker    // The already created pipeline to run.
253*d5c09012SAndroid Build Coastguard Worker    string pipeline_id = 1;
254*d5c09012SAndroid Build Coastguard Worker
255*d5c09012SAndroid Build Coastguard Worker    // A new pipeline object to run once and then delete.
256*d5c09012SAndroid Build Coastguard Worker    Pipeline ephemeral_pipeline = 2;
257*d5c09012SAndroid Build Coastguard Worker  }
258*d5c09012SAndroid Build Coastguard Worker
259*d5c09012SAndroid Build Coastguard Worker  // The arguments to use when running this pipeline.
260*d5c09012SAndroid Build Coastguard Worker  RunPipelineArgs pipeline_args = 3;
261*d5c09012SAndroid Build Coastguard Worker}
262*d5c09012SAndroid Build Coastguard Worker
263*d5c09012SAndroid Build Coastguard Worker// A request to get a saved pipeline by id.
264*d5c09012SAndroid Build Coastguard Workermessage GetPipelineRequest {
265*d5c09012SAndroid Build Coastguard Worker  // Caller must have READ access to the project in which this pipeline
266*d5c09012SAndroid Build Coastguard Worker  // is defined.
267*d5c09012SAndroid Build Coastguard Worker  string pipeline_id = 1;
268*d5c09012SAndroid Build Coastguard Worker}
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker// A request to list pipelines in a given project. Pipelines can be
271*d5c09012SAndroid Build Coastguard Worker// filtered by name using `namePrefix`: all pipelines with names that
272*d5c09012SAndroid Build Coastguard Worker// begin with `namePrefix` will be returned. Uses standard pagination:
273*d5c09012SAndroid Build Coastguard Worker// `pageSize` indicates how many pipelines to return, and
274*d5c09012SAndroid Build Coastguard Worker// `pageToken` comes from a previous ListPipelinesResponse to
275*d5c09012SAndroid Build Coastguard Worker// indicate offset.
276*d5c09012SAndroid Build Coastguard Workermessage ListPipelinesRequest {
277*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project to search for pipelines. Caller
278*d5c09012SAndroid Build Coastguard Worker  // must have READ access to this project.
279*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
280*d5c09012SAndroid Build Coastguard Worker
281*d5c09012SAndroid Build Coastguard Worker  // Pipelines with names that match this prefix should be
282*d5c09012SAndroid Build Coastguard Worker  // returned.  If unspecified, all pipelines in the project, up to
283*d5c09012SAndroid Build Coastguard Worker  // `pageSize`, will be returned.
284*d5c09012SAndroid Build Coastguard Worker  string name_prefix = 2;
285*d5c09012SAndroid Build Coastguard Worker
286*d5c09012SAndroid Build Coastguard Worker  // Number of pipelines to return at once. Defaults to 256, and max
287*d5c09012SAndroid Build Coastguard Worker  // is 2048.
288*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
289*d5c09012SAndroid Build Coastguard Worker
290*d5c09012SAndroid Build Coastguard Worker  // Token to use to indicate where to start getting results.
291*d5c09012SAndroid Build Coastguard Worker  // If unspecified, returns the first page of results.
292*d5c09012SAndroid Build Coastguard Worker  string page_token = 4;
293*d5c09012SAndroid Build Coastguard Worker}
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker// The response of ListPipelines. Contains at most `pageSize`
296*d5c09012SAndroid Build Coastguard Worker// pipelines. If it contains `pageSize` pipelines, and more pipelines
297*d5c09012SAndroid Build Coastguard Worker// exist, then `nextPageToken` will be populated and should be
298*d5c09012SAndroid Build Coastguard Worker// used as the `pageToken` argument to a subsequent ListPipelines
299*d5c09012SAndroid Build Coastguard Worker// request.
300*d5c09012SAndroid Build Coastguard Workermessage ListPipelinesResponse {
301*d5c09012SAndroid Build Coastguard Worker  // The matched pipelines.
302*d5c09012SAndroid Build Coastguard Worker  repeated Pipeline pipelines = 1;
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker  // The token to use to get the next page of results.
305*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
306*d5c09012SAndroid Build Coastguard Worker}
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker// The request to delete a saved pipeline by ID.
309*d5c09012SAndroid Build Coastguard Workermessage DeletePipelineRequest {
310*d5c09012SAndroid Build Coastguard Worker  // Caller must have WRITE access to the project in which this pipeline
311*d5c09012SAndroid Build Coastguard Worker  // is defined.
312*d5c09012SAndroid Build Coastguard Worker  string pipeline_id = 1;
313*d5c09012SAndroid Build Coastguard Worker}
314*d5c09012SAndroid Build Coastguard Worker
315*d5c09012SAndroid Build Coastguard Worker// Request to get controller configuation.  Should only be used
316*d5c09012SAndroid Build Coastguard Worker// by VMs created by the Pipelines Service and not by end users.
317*d5c09012SAndroid Build Coastguard Workermessage GetControllerConfigRequest {
318*d5c09012SAndroid Build Coastguard Worker  // The operation to retrieve controller configuration for.
319*d5c09012SAndroid Build Coastguard Worker  string operation_id = 1;
320*d5c09012SAndroid Build Coastguard Worker
321*d5c09012SAndroid Build Coastguard Worker  uint64 validation_token = 2;
322*d5c09012SAndroid Build Coastguard Worker}
323*d5c09012SAndroid Build Coastguard Worker
324*d5c09012SAndroid Build Coastguard Worker// Stores the information that the controller will fetch from the
325*d5c09012SAndroid Build Coastguard Worker// server in order to run. Should only be used by VMs created by the
326*d5c09012SAndroid Build Coastguard Worker// Pipelines Service and not by end users.
327*d5c09012SAndroid Build Coastguard Workermessage ControllerConfig {
328*d5c09012SAndroid Build Coastguard Worker  message RepeatedString {
329*d5c09012SAndroid Build Coastguard Worker    repeated string values = 1;
330*d5c09012SAndroid Build Coastguard Worker  }
331*d5c09012SAndroid Build Coastguard Worker
332*d5c09012SAndroid Build Coastguard Worker  string image = 1;
333*d5c09012SAndroid Build Coastguard Worker
334*d5c09012SAndroid Build Coastguard Worker  string cmd = 2;
335*d5c09012SAndroid Build Coastguard Worker
336*d5c09012SAndroid Build Coastguard Worker  string gcs_log_path = 3;
337*d5c09012SAndroid Build Coastguard Worker
338*d5c09012SAndroid Build Coastguard Worker  string machine_type = 4;
339*d5c09012SAndroid Build Coastguard Worker
340*d5c09012SAndroid Build Coastguard Worker  map<string, string> vars = 5;
341*d5c09012SAndroid Build Coastguard Worker
342*d5c09012SAndroid Build Coastguard Worker  map<string, string> disks = 6;
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker  map<string, RepeatedString> gcs_sources = 7;
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker  map<string, RepeatedString> gcs_sinks = 8;
347*d5c09012SAndroid Build Coastguard Worker}
348*d5c09012SAndroid Build Coastguard Worker
349*d5c09012SAndroid Build Coastguard Worker// Stores the list of events and times they occured for major events in job
350*d5c09012SAndroid Build Coastguard Worker// execution.
351*d5c09012SAndroid Build Coastguard Workermessage TimestampEvent {
352*d5c09012SAndroid Build Coastguard Worker  // String indicating the type of event
353*d5c09012SAndroid Build Coastguard Worker  string description = 1;
354*d5c09012SAndroid Build Coastguard Worker
355*d5c09012SAndroid Build Coastguard Worker  // The time this event occured.
356*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp timestamp = 2;
357*d5c09012SAndroid Build Coastguard Worker}
358*d5c09012SAndroid Build Coastguard Worker
359*d5c09012SAndroid Build Coastguard Worker// Request to set operation status. Should only be used by VMs
360*d5c09012SAndroid Build Coastguard Worker// created by the Pipelines Service and not by end users.
361*d5c09012SAndroid Build Coastguard Workermessage SetOperationStatusRequest {
362*d5c09012SAndroid Build Coastguard Worker  string operation_id = 1;
363*d5c09012SAndroid Build Coastguard Worker
364*d5c09012SAndroid Build Coastguard Worker  repeated TimestampEvent timestamp_events = 2;
365*d5c09012SAndroid Build Coastguard Worker
366*d5c09012SAndroid Build Coastguard Worker  google.rpc.Code error_code = 3;
367*d5c09012SAndroid Build Coastguard Worker
368*d5c09012SAndroid Build Coastguard Worker  string error_message = 4;
369*d5c09012SAndroid Build Coastguard Worker
370*d5c09012SAndroid Build Coastguard Worker  uint64 validation_token = 5;
371*d5c09012SAndroid Build Coastguard Worker}
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker// A Google Cloud Service Account.
374*d5c09012SAndroid Build Coastguard Workermessage ServiceAccount {
375*d5c09012SAndroid Build Coastguard Worker  // Email address of the service account. Defaults to `default`,
376*d5c09012SAndroid Build Coastguard Worker  // which uses the compute service account associated with the project.
377*d5c09012SAndroid Build Coastguard Worker  string email = 1;
378*d5c09012SAndroid Build Coastguard Worker
379*d5c09012SAndroid Build Coastguard Worker  // List of scopes to be enabled for this service account on the VM.
380*d5c09012SAndroid Build Coastguard Worker  // The following scopes are automatically included:
381*d5c09012SAndroid Build Coastguard Worker  //
382*d5c09012SAndroid Build Coastguard Worker  // * https://www.googleapis.com/auth/compute
383*d5c09012SAndroid Build Coastguard Worker  // * https://www.googleapis.com/auth/devstorage.full_control
384*d5c09012SAndroid Build Coastguard Worker  // * https://www.googleapis.com/auth/genomics
385*d5c09012SAndroid Build Coastguard Worker  // * https://www.googleapis.com/auth/logging.write
386*d5c09012SAndroid Build Coastguard Worker  // * https://www.googleapis.com/auth/monitoring.write
387*d5c09012SAndroid Build Coastguard Worker  repeated string scopes = 2;
388*d5c09012SAndroid Build Coastguard Worker}
389*d5c09012SAndroid Build Coastguard Worker
390*d5c09012SAndroid Build Coastguard Worker// The logging options for the pipeline run.
391*d5c09012SAndroid Build Coastguard Workermessage LoggingOptions {
392*d5c09012SAndroid Build Coastguard Worker  // The location in Google Cloud Storage to which the pipeline logs
393*d5c09012SAndroid Build Coastguard Worker  // will be copied. Can be specified as a fully qualified directory
394*d5c09012SAndroid Build Coastguard Worker  // path, in which case logs will be output with a unique identifier
395*d5c09012SAndroid Build Coastguard Worker  // as the filename in that directory, or as a fully specified path,
396*d5c09012SAndroid Build Coastguard Worker  // which must end in `.log`, in which case that path will be
397*d5c09012SAndroid Build Coastguard Worker  // used, and the user must ensure that logs are not
398*d5c09012SAndroid Build Coastguard Worker  // overwritten. Stdout and stderr logs from the run are also
399*d5c09012SAndroid Build Coastguard Worker  // generated and output as `-stdout.log` and `-stderr.log`.
400*d5c09012SAndroid Build Coastguard Worker  string gcs_path = 1;
401*d5c09012SAndroid Build Coastguard Worker}
402*d5c09012SAndroid Build Coastguard Worker
403*d5c09012SAndroid Build Coastguard Worker// The system resources for the pipeline run.
404*d5c09012SAndroid Build Coastguard Workermessage PipelineResources {
405*d5c09012SAndroid Build Coastguard Worker  // A Google Compute Engine disk resource specification.
406*d5c09012SAndroid Build Coastguard Worker  message Disk {
407*d5c09012SAndroid Build Coastguard Worker    // The types of disks that may be attached to VMs.
408*d5c09012SAndroid Build Coastguard Worker    enum Type {
409*d5c09012SAndroid Build Coastguard Worker      // Default disk type. Use one of the other options below.
410*d5c09012SAndroid Build Coastguard Worker      TYPE_UNSPECIFIED = 0;
411*d5c09012SAndroid Build Coastguard Worker
412*d5c09012SAndroid Build Coastguard Worker      // Specifies a Google Compute Engine persistent hard disk. See
413*d5c09012SAndroid Build Coastguard Worker      // https://cloud.google.com/compute/docs/disks/#pdspecs for details.
414*d5c09012SAndroid Build Coastguard Worker      PERSISTENT_HDD = 1;
415*d5c09012SAndroid Build Coastguard Worker
416*d5c09012SAndroid Build Coastguard Worker      // Specifies a Google Compute Engine persistent solid-state disk. See
417*d5c09012SAndroid Build Coastguard Worker      // https://cloud.google.com/compute/docs/disks/#pdspecs for details.
418*d5c09012SAndroid Build Coastguard Worker      PERSISTENT_SSD = 2;
419*d5c09012SAndroid Build Coastguard Worker
420*d5c09012SAndroid Build Coastguard Worker      // Specifies a Google Compute Engine local SSD.
421*d5c09012SAndroid Build Coastguard Worker      // See https://cloud.google.com/compute/docs/disks/local-ssd for details.
422*d5c09012SAndroid Build Coastguard Worker      LOCAL_SSD = 3;
423*d5c09012SAndroid Build Coastguard Worker    }
424*d5c09012SAndroid Build Coastguard Worker
425*d5c09012SAndroid Build Coastguard Worker    // Required. The name of the disk that can be used in the pipeline
426*d5c09012SAndroid Build Coastguard Worker    // parameters. Must be 1 - 63 characters.
427*d5c09012SAndroid Build Coastguard Worker    // The name "boot" is reserved for system use.
428*d5c09012SAndroid Build Coastguard Worker    string name = 1;
429*d5c09012SAndroid Build Coastguard Worker
430*d5c09012SAndroid Build Coastguard Worker    // Required. The type of the disk to create.
431*d5c09012SAndroid Build Coastguard Worker    Type type = 2;
432*d5c09012SAndroid Build Coastguard Worker
433*d5c09012SAndroid Build Coastguard Worker    // The size of the disk. Defaults to 500 (GB).
434*d5c09012SAndroid Build Coastguard Worker    // This field is not applicable for local SSD.
435*d5c09012SAndroid Build Coastguard Worker    int32 size_gb = 3;
436*d5c09012SAndroid Build Coastguard Worker
437*d5c09012SAndroid Build Coastguard Worker    // The full or partial URL of the persistent disk to attach. See
438*d5c09012SAndroid Build Coastguard Worker    // https://cloud.google.com/compute/docs/reference/latest/instances#resource
439*d5c09012SAndroid Build Coastguard Worker    // and
440*d5c09012SAndroid Build Coastguard Worker    // https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
441*d5c09012SAndroid Build Coastguard Worker    // for more details.
442*d5c09012SAndroid Build Coastguard Worker    string source = 4;
443*d5c09012SAndroid Build Coastguard Worker
444*d5c09012SAndroid Build Coastguard Worker    // Deprecated. Disks created by the Pipelines API will be deleted at the end
445*d5c09012SAndroid Build Coastguard Worker    // of the pipeline run, regardless of what this field is set to.
446*d5c09012SAndroid Build Coastguard Worker    bool auto_delete = 6;
447*d5c09012SAndroid Build Coastguard Worker
448*d5c09012SAndroid Build Coastguard Worker    // Required at create time and cannot be overridden at run time.
449*d5c09012SAndroid Build Coastguard Worker    // Specifies the path in the docker container where files on
450*d5c09012SAndroid Build Coastguard Worker    // this disk should be located. For example, if `mountPoint`
451*d5c09012SAndroid Build Coastguard Worker    // is `/mnt/disk`, and the parameter has `localPath`
452*d5c09012SAndroid Build Coastguard Worker    // `inputs/file.txt`, the docker container can access the data at
453*d5c09012SAndroid Build Coastguard Worker    // `/mnt/disk/inputs/file.txt`.
454*d5c09012SAndroid Build Coastguard Worker    string mount_point = 8;
455*d5c09012SAndroid Build Coastguard Worker  }
456*d5c09012SAndroid Build Coastguard Worker
457*d5c09012SAndroid Build Coastguard Worker  // The minimum number of cores to use. Defaults to 1.
458*d5c09012SAndroid Build Coastguard Worker  int32 minimum_cpu_cores = 1;
459*d5c09012SAndroid Build Coastguard Worker
460*d5c09012SAndroid Build Coastguard Worker  // Whether to use preemptible VMs. Defaults to `false`. In order to use this,
461*d5c09012SAndroid Build Coastguard Worker  // must be true for both create time and run time. Cannot be true at run time
462*d5c09012SAndroid Build Coastguard Worker  // if false at create time.
463*d5c09012SAndroid Build Coastguard Worker  bool preemptible = 2;
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // The minimum amount of RAM to use. Defaults to 3.75 (GB)
466*d5c09012SAndroid Build Coastguard Worker  double minimum_ram_gb = 3;
467*d5c09012SAndroid Build Coastguard Worker
468*d5c09012SAndroid Build Coastguard Worker  // Disks to attach.
469*d5c09012SAndroid Build Coastguard Worker  repeated Disk disks = 4;
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker  // List of Google Compute Engine availability zones to which resource
472*d5c09012SAndroid Build Coastguard Worker  // creation will restricted. If empty, any zone may be chosen.
473*d5c09012SAndroid Build Coastguard Worker  repeated string zones = 5;
474*d5c09012SAndroid Build Coastguard Worker
475*d5c09012SAndroid Build Coastguard Worker  // The size of the boot disk. Defaults to 10 (GB).
476*d5c09012SAndroid Build Coastguard Worker  int32 boot_disk_size_gb = 6;
477*d5c09012SAndroid Build Coastguard Worker
478*d5c09012SAndroid Build Coastguard Worker  // Whether to assign an external IP to the instance. This is an experimental
479*d5c09012SAndroid Build Coastguard Worker  // feature that may go away. Defaults to false.
480*d5c09012SAndroid Build Coastguard Worker  // Corresponds to `--no_address` flag for [gcloud compute instances create]
481*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
482*d5c09012SAndroid Build Coastguard Worker  // In order to use this, must be true for both create time and run time.
483*d5c09012SAndroid Build Coastguard Worker  // Cannot be true at run time if false at create time. If you need to ssh into
484*d5c09012SAndroid Build Coastguard Worker  // a private IP VM for debugging, you can ssh to a public VM and then ssh into
485*d5c09012SAndroid Build Coastguard Worker  // the private VM's Internal IP.  If noAddress is set, this pipeline run may
486*d5c09012SAndroid Build Coastguard Worker  // only load docker images from Google Container Registry and not Docker Hub.
487*d5c09012SAndroid Build Coastguard Worker  // ** Note: To use this option, your project must be in Google Access for
488*d5c09012SAndroid Build Coastguard Worker  // Private IPs Early Access Program.**
489*d5c09012SAndroid Build Coastguard Worker  bool no_address = 7;
490*d5c09012SAndroid Build Coastguard Worker}
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker// Parameters facilitate setting and delivering data into the
493*d5c09012SAndroid Build Coastguard Worker// pipeline's execution environment. They are defined at create time,
494*d5c09012SAndroid Build Coastguard Worker// with optional defaults, and can be overridden at run time.
495*d5c09012SAndroid Build Coastguard Worker//
496*d5c09012SAndroid Build Coastguard Worker// If `localCopy` is unset, then the parameter specifies a string that
497*d5c09012SAndroid Build Coastguard Worker// is passed as-is into the pipeline, as the value of the environment
498*d5c09012SAndroid Build Coastguard Worker// variable with the given name.  A default value can be optionally
499*d5c09012SAndroid Build Coastguard Worker// specified at create time. The default can be overridden at run time
500*d5c09012SAndroid Build Coastguard Worker// using the inputs map. If no default is given, a value must be
501*d5c09012SAndroid Build Coastguard Worker// supplied at runtime.
502*d5c09012SAndroid Build Coastguard Worker//
503*d5c09012SAndroid Build Coastguard Worker// If `localCopy` is defined, then the parameter specifies a data
504*d5c09012SAndroid Build Coastguard Worker// source or sink, both in Google Cloud Storage and on the Docker container
505*d5c09012SAndroid Build Coastguard Worker// where the pipeline computation is run. The [service account associated with
506*d5c09012SAndroid Build Coastguard Worker// the Pipeline][google.genomics.v1alpha2.RunPipelineArgs.service_account] (by
507*d5c09012SAndroid Build Coastguard Worker// default the project's Compute Engine service account) must have access to the
508*d5c09012SAndroid Build Coastguard Worker// Google Cloud Storage paths.
509*d5c09012SAndroid Build Coastguard Worker//
510*d5c09012SAndroid Build Coastguard Worker// At run time, the Google Cloud Storage paths can be overridden if a default
511*d5c09012SAndroid Build Coastguard Worker// was provided at create time, or must be set otherwise. The pipeline runner
512*d5c09012SAndroid Build Coastguard Worker// should add a key/value pair to either the inputs or outputs map. The
513*d5c09012SAndroid Build Coastguard Worker// indicated data copies will be carried out before/after pipeline execution,
514*d5c09012SAndroid Build Coastguard Worker// just as if the corresponding arguments were provided to `gsutil cp`.
515*d5c09012SAndroid Build Coastguard Worker//
516*d5c09012SAndroid Build Coastguard Worker// For example: Given the following `PipelineParameter`, specified
517*d5c09012SAndroid Build Coastguard Worker// in the `inputParameters` list:
518*d5c09012SAndroid Build Coastguard Worker//
519*d5c09012SAndroid Build Coastguard Worker// ```
520*d5c09012SAndroid Build Coastguard Worker// {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
521*d5c09012SAndroid Build Coastguard Worker// ```
522*d5c09012SAndroid Build Coastguard Worker//
523*d5c09012SAndroid Build Coastguard Worker// where `disk` is defined in the `PipelineResources` object as:
524*d5c09012SAndroid Build Coastguard Worker//
525*d5c09012SAndroid Build Coastguard Worker// ```
526*d5c09012SAndroid Build Coastguard Worker// {name: "pd1", mountPoint: "/mnt/disk/"}
527*d5c09012SAndroid Build Coastguard Worker// ```
528*d5c09012SAndroid Build Coastguard Worker//
529*d5c09012SAndroid Build Coastguard Worker// We create a disk named `pd1`, mount it on the host VM, and map
530*d5c09012SAndroid Build Coastguard Worker// `/mnt/pd1` to `/mnt/disk` in the docker container.  At
531*d5c09012SAndroid Build Coastguard Worker// runtime, an entry for `input_file` would be required in the inputs
532*d5c09012SAndroid Build Coastguard Worker// map, such as:
533*d5c09012SAndroid Build Coastguard Worker//
534*d5c09012SAndroid Build Coastguard Worker// ```
535*d5c09012SAndroid Build Coastguard Worker//   inputs["input_file"] = "gs://my-bucket/bar.txt"
536*d5c09012SAndroid Build Coastguard Worker// ```
537*d5c09012SAndroid Build Coastguard Worker//
538*d5c09012SAndroid Build Coastguard Worker// This would generate the following gsutil call:
539*d5c09012SAndroid Build Coastguard Worker//
540*d5c09012SAndroid Build Coastguard Worker// ```
541*d5c09012SAndroid Build Coastguard Worker//   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
542*d5c09012SAndroid Build Coastguard Worker// ```
543*d5c09012SAndroid Build Coastguard Worker//
544*d5c09012SAndroid Build Coastguard Worker// The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
545*d5c09012SAndroid Build Coastguard Worker// Docker container. Acceptable paths are:
546*d5c09012SAndroid Build Coastguard Worker//
547*d5c09012SAndroid Build Coastguard Worker// <table>
548*d5c09012SAndroid Build Coastguard Worker//   <thead>
549*d5c09012SAndroid Build Coastguard Worker//     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
550*d5c09012SAndroid Build Coastguard Worker//   </thead>
551*d5c09012SAndroid Build Coastguard Worker//   <tbody>
552*d5c09012SAndroid Build Coastguard Worker//     <tr><td>file</td><td>file</td></tr>
553*d5c09012SAndroid Build Coastguard Worker//     <tr><td>glob</td><td>directory</td></tr>
554*d5c09012SAndroid Build Coastguard Worker//   </tbody>
555*d5c09012SAndroid Build Coastguard Worker// </table>
556*d5c09012SAndroid Build Coastguard Worker//
557*d5c09012SAndroid Build Coastguard Worker// For outputs, the direction of the copy is reversed:
558*d5c09012SAndroid Build Coastguard Worker//
559*d5c09012SAndroid Build Coastguard Worker// ```
560*d5c09012SAndroid Build Coastguard Worker//   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
561*d5c09012SAndroid Build Coastguard Worker// ```
562*d5c09012SAndroid Build Coastguard Worker//
563*d5c09012SAndroid Build Coastguard Worker// Acceptable paths are:
564*d5c09012SAndroid Build Coastguard Worker//
565*d5c09012SAndroid Build Coastguard Worker// <table>
566*d5c09012SAndroid Build Coastguard Worker//   <thead>
567*d5c09012SAndroid Build Coastguard Worker//     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
568*d5c09012SAndroid Build Coastguard Worker//   </thead>
569*d5c09012SAndroid Build Coastguard Worker//   <tbody>
570*d5c09012SAndroid Build Coastguard Worker//     <tr><td>file</td><td>file</td></tr>
571*d5c09012SAndroid Build Coastguard Worker//     <tr>
572*d5c09012SAndroid Build Coastguard Worker//       <td>file</td>
573*d5c09012SAndroid Build Coastguard Worker//       <td>directory - directory must already exist</td>
574*d5c09012SAndroid Build Coastguard Worker//     </tr>
575*d5c09012SAndroid Build Coastguard Worker//     <tr>
576*d5c09012SAndroid Build Coastguard Worker//       <td>glob</td>
577*d5c09012SAndroid Build Coastguard Worker//       <td>directory - directory will be created if it doesn't exist</td></tr>
578*d5c09012SAndroid Build Coastguard Worker//   </tbody>
579*d5c09012SAndroid Build Coastguard Worker// </table>
580*d5c09012SAndroid Build Coastguard Worker//
581*d5c09012SAndroid Build Coastguard Worker// One restriction due to docker limitations, is that for outputs that are found
582*d5c09012SAndroid Build Coastguard Worker// on the boot disk, the local path cannot be a glob and must be a file.
583*d5c09012SAndroid Build Coastguard Workermessage PipelineParameter {
584*d5c09012SAndroid Build Coastguard Worker  // LocalCopy defines how a remote file should be copied to and from the VM.
585*d5c09012SAndroid Build Coastguard Worker  message LocalCopy {
586*d5c09012SAndroid Build Coastguard Worker    // Required. The path within the user's docker container where
587*d5c09012SAndroid Build Coastguard Worker    // this input should be localized to and from, relative to the specified
588*d5c09012SAndroid Build Coastguard Worker    // disk's mount point. For example: file.txt,
589*d5c09012SAndroid Build Coastguard Worker    string path = 1;
590*d5c09012SAndroid Build Coastguard Worker
591*d5c09012SAndroid Build Coastguard Worker    // Required. The name of the disk where this parameter is
592*d5c09012SAndroid Build Coastguard Worker    // located. Can be the name of one of the disks specified in the
593*d5c09012SAndroid Build Coastguard Worker    // Resources field, or "boot", which represents the Docker
594*d5c09012SAndroid Build Coastguard Worker    // instance's boot disk and has a mount point of `/`.
595*d5c09012SAndroid Build Coastguard Worker    string disk = 2;
596*d5c09012SAndroid Build Coastguard Worker  }
597*d5c09012SAndroid Build Coastguard Worker
598*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the parameter - the pipeline runner uses this string
599*d5c09012SAndroid Build Coastguard Worker  // as the key to the input and output maps in RunPipeline.
600*d5c09012SAndroid Build Coastguard Worker  string name = 1;
601*d5c09012SAndroid Build Coastguard Worker
602*d5c09012SAndroid Build Coastguard Worker  // Human-readable description.
603*d5c09012SAndroid Build Coastguard Worker  string description = 2;
604*d5c09012SAndroid Build Coastguard Worker
605*d5c09012SAndroid Build Coastguard Worker  // The default value for this parameter. Can be overridden at runtime.
606*d5c09012SAndroid Build Coastguard Worker  // If `localCopy` is present, then this must be a Google Cloud Storage path
607*d5c09012SAndroid Build Coastguard Worker  // beginning with `gs://`.
608*d5c09012SAndroid Build Coastguard Worker  string default_value = 5;
609*d5c09012SAndroid Build Coastguard Worker
610*d5c09012SAndroid Build Coastguard Worker  // If present, this parameter is marked for copying to and from the VM.
611*d5c09012SAndroid Build Coastguard Worker  // `LocalCopy` indicates where on the VM the file should be. The value
612*d5c09012SAndroid Build Coastguard Worker  // given to this parameter (either at runtime or using `defaultValue`)
613*d5c09012SAndroid Build Coastguard Worker  // must be the remote path where the file should be.
614*d5c09012SAndroid Build Coastguard Worker  LocalCopy local_copy = 6;
615*d5c09012SAndroid Build Coastguard Worker}
616*d5c09012SAndroid Build Coastguard Worker
617*d5c09012SAndroid Build Coastguard Worker// The Docker execuctor specification.
618*d5c09012SAndroid Build Coastguard Workermessage DockerExecutor {
619*d5c09012SAndroid Build Coastguard Worker  // Required. Image name from either Docker Hub or Google Container Registry.
620*d5c09012SAndroid Build Coastguard Worker  // Users that run pipelines must have READ access to the image.
621*d5c09012SAndroid Build Coastguard Worker  string image_name = 1;
622*d5c09012SAndroid Build Coastguard Worker
623*d5c09012SAndroid Build Coastguard Worker  // Required. The command or newline delimited script to run. The command
624*d5c09012SAndroid Build Coastguard Worker  // string will be executed within a bash shell.
625*d5c09012SAndroid Build Coastguard Worker  //
626*d5c09012SAndroid Build Coastguard Worker  // If the command exits with a non-zero exit code, output parameter
627*d5c09012SAndroid Build Coastguard Worker  // de-localization will be skipped and the pipeline operation's
628*d5c09012SAndroid Build Coastguard Worker  // [`error`][google.longrunning.Operation.error] field will be populated.
629*d5c09012SAndroid Build Coastguard Worker  //
630*d5c09012SAndroid Build Coastguard Worker  // Maximum command string length is 16384.
631*d5c09012SAndroid Build Coastguard Worker  string cmd = 2;
632*d5c09012SAndroid Build Coastguard Worker}
633