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