{
  "title": "Genomics API",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "servicePath": "",
  "resources": {
    "pipelines": {
      "methods": {
        "delete": {
          "parameters": {
            "pipelineId": {
              "description": "Caller must have WRITE access to the project in which this pipeline is defined.",
              "required": true,
              "location": "path",
              "type": "string"
            }
          },
          "parameterOrder": [
            "pipelineId"
          ],
          "path": "v1alpha2/pipelines/{pipelineId}",
          "flatPath": "v1alpha2/pipelines/{pipelineId}",
          "description": "Deletes a pipeline based on ID. Caller must have WRITE permission to the project.",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "id": "genomics.pipelines.delete",
          "httpMethod": "DELETE"
        },
        "getControllerConfig": {
          "description": "Gets controller configuration information. Should only be called by VMs created by the Pipelines Service and not by end users.",
          "response": {
            "$ref": "ControllerConfig"
          },
          "flatPath": "v1alpha2/pipelines:getControllerConfig",
          "parameters": {
            "operationId": {
              "type": "string",
              "description": "The operation to retrieve controller configuration for.",
              "location": "query"
            },
            "validationToken": {
              "location": "query",
              "type": "string",
              "format": "uint64"
            }
          },
          "id": "genomics.pipelines.getControllerConfig",
          "parameterOrder": [],
          "path": "v1alpha2/pipelines:getControllerConfig",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "httpMethod": "GET"
        },
        "get": {
          "id": "genomics.pipelines.get",
          "response": {
            "$ref": "Pipeline"
          },
          "parameters": {
            "pipelineId": {
              "description": "Caller must have READ access to the project in which this pipeline is defined.",
              "type": "string",
              "required": true,
              "location": "path"
            }
          },
          "description": "Retrieves a pipeline based on ID. Caller must have READ permission to the project.",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "flatPath": "v1alpha2/pipelines/{pipelineId}",
          "parameterOrder": [
            "pipelineId"
          ],
          "path": "v1alpha2/pipelines/{pipelineId}"
        },
        "list": {
          "response": {
            "$ref": "ListPipelinesResponse"
          },
          "parameters": {
            "namePrefix": {
              "location": "query",
              "type": "string",
              "description": "Pipelines with names that match this prefix should be returned. If unspecified, all pipelines in the project, up to `pageSize`, will be returned."
            },
            "pageSize": {
              "location": "query",
              "description": "Number of pipelines to return at once. Defaults to 256, and max is 2048.",
              "type": "integer",
              "format": "int32"
            },
            "pageToken": {
              "location": "query",
              "description": "Token to use to indicate where to start getting results. If unspecified, returns the first page of results.",
              "type": "string"
            },
            "projectId": {
              "description": "Required. The name of the project to search for pipelines. Caller must have READ access to this project.",
              "type": "string",
              "location": "query"
            }
          },
          "description": "Lists pipelines. Caller must have READ permission to the project.",
          "path": "v1alpha2/pipelines",
          "id": "genomics.pipelines.list",
          "flatPath": "v1alpha2/pipelines",
          "parameterOrder": [],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "httpMethod": "GET"
        },
        "setOperationStatus": {
          "flatPath": "v1alpha2/pipelines:setOperationStatus",
          "request": {
            "$ref": "SetOperationStatusRequest"
          },
          "parameters": {},
          "response": {
            "$ref": "Empty"
          },
          "description": "Sets status of a given operation. Any new timestamps (as determined by description) are appended to TimestampEvents. Should only be called by VMs created by the Pipelines Service and not by end users.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "path": "v1alpha2/pipelines:setOperationStatus",
          "httpMethod": "PUT",
          "parameterOrder": [],
          "id": "genomics.pipelines.setOperationStatus"
        },
        "run": {
          "parameters": {},
          "httpMethod": "POST",
          "id": "genomics.pipelines.run",
          "path": "v1alpha2/pipelines:run",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/compute",
            "https://www.googleapis.com/auth/genomics"
          ],
          "flatPath": "v1alpha2/pipelines:run",
          "request": {
            "$ref": "RunPipelineRequest"
          },
          "parameterOrder": [],
          "description": "Runs a pipeline. If `pipelineId` is specified in the request, then run a saved pipeline. If `ephemeralPipeline` is specified, then run that pipeline once without saving a copy. The caller must have READ permission to the project where the pipeline is stored and WRITE permission to the project where the pipeline will be run, as VMs will be created and storage will be used. If a pipeline operation is still running after 6 days, it will be canceled.",
          "response": {
            "$ref": "Operation"
          }
        },
        "create": {
          "request": {
            "$ref": "Pipeline"
          },
          "response": {
            "$ref": "Pipeline"
          },
          "flatPath": "v1alpha2/pipelines",
          "id": "genomics.pipelines.create",
          "description": "Creates a pipeline that can be run later. Create takes a Pipeline that has all fields other than `pipelineId` populated, and then returns the same pipeline with `pipelineId` populated. This id can be used to run the pipeline. Caller must have WRITE permission to the project.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "path": "v1alpha2/pipelines",
          "httpMethod": "POST",
          "parameterOrder": [],
          "parameters": {}
        }
      }
    },
    "operations": {
      "methods": {
        "get": {
          "parameterOrder": [
            "name"
          ],
          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `genomics.operations.get`",
          "id": "genomics.operations.get",
          "parameters": {
            "name": {
              "location": "path",
              "description": "The name of the operation resource.",
              "required": true,
              "pattern": "^operations/.*$",
              "type": "string"
            }
          },
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "GET",
          "path": "v1alpha2/{+name}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "flatPath": "v1alpha2/operations/{operationsId}"
        },
        "cancel": {
          "request": {
            "$ref": "CancelOperationRequest"
          },
          "parameterOrder": [
            "name"
          ],
          "flatPath": "v1alpha2/operations/{operationsId}:cancel",
          "httpMethod": "POST",
          "id": "genomics.operations.cancel",
          "parameters": {
            "name": {
              "type": "string",
              "required": true,
              "location": "path",
              "description": "The name of the operation resource to be cancelled.",
              "pattern": "^operations/.*$"
            }
          },
          "response": {
            "$ref": "Empty"
          },
          "path": "v1alpha2/{+name}:cancel",
          "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `genomics.operations.cancel`",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ]
        },
        "list": {
          "response": {
            "$ref": "ListOperationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/genomics"
          ],
          "description": "Lists operations that match the specified filter in the request. Authorization requires the following [Google IAM](https://cloud.google.com/iam) permission: * `genomics.operations.list`",
          "path": "v1alpha2/{+name}",
          "parameters": {
            "name": {
              "pattern": "^operations$",
              "location": "path",
              "type": "string",
              "required": true,
              "description": "The name of the operation's parent resource."
            },
            "filter": {
              "location": "query",
              "type": "string",
              "description": "A string for filtering Operations. In v2alpha1, the following filter fields are supported: * createTime: The time this job was created * events: The set of event (names) that have occurred while running the pipeline. The : operator can be used to determine if a particular event has occurred. * error: If the pipeline is running, this value is NULL. Once the pipeline finishes, the value is the standard Google error code. * labels.key or labels.\"key with space\" where key is a label key. * done: If the pipeline is running, this value is false. Once the pipeline finishes, the value is true. In v1 and v1alpha2, the following filter fields are supported: * projectId: Required. Corresponds to OperationMetadata.projectId. * createTime: The time this job was created, in seconds from the [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `\u003e=` and/or `\u003c=` operators. * status: Can be `RUNNING`, `SUCCESS`, `FAILURE`, or `CANCELED`. Only one status may be specified. * labels.key where key is a label key. Examples: * `projectId = my-project AND createTime \u003e= 1432140000` * `projectId = my-project AND createTime \u003e= 1432140000 AND createTime \u003c= 1432150000 AND status = RUNNING` * `projectId = my-project AND labels.color = *` * `projectId = my-project AND labels.color = red`"
            },
            "pageSize": {
              "location": "query",
              "description": "The maximum number of results to return. The maximum value is 256.",
              "type": "integer",
              "format": "int32"
            },
            "pageToken": {
              "type": "string",
              "description": "The standard list page token.",
              "location": "query"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "flatPath": "v1alpha2/operations",
          "id": "genomics.operations.list",
          "httpMethod": "GET"
        }
      }
    }
  },
  "documentationLink": "https://cloud.google.com/genomics",
  "kind": "discovery#restDescription",
  "fullyEncodeReservedExpansion": true,
  "baseUrl": "https://genomics.googleapis.com/",
  "version": "v1alpha2",
  "rootUrl": "https://genomics.googleapis.com/",
  "name": "genomics",
  "protocol": "rest",
  "discoveryVersion": "v1",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "mtlsRootUrl": "https://genomics.mtls.googleapis.com/",
  "id": "genomics:v1alpha2",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/genomics": {
          "description": "View and manage Genomics data"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        },
        "https://www.googleapis.com/auth/compute": {
          "description": "View and manage your Google Compute Engine resources"
        }
      }
    }
  },
  "schemas": {
    "OperationEvent": {
      "description": "An event that occurred during an Operation.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Required description of event."
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Optional time of when event finished. An event can have a start time and no finish time. If an event has a finish time, there must be a start time."
        },
        "startTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Optional time of when event started."
        }
      },
      "type": "object",
      "id": "OperationEvent"
    },
    "RunPipelineRequest": {
      "description": "The request to run a pipeline. If `pipelineId` is specified, it refers to a saved pipeline created with CreatePipeline and set as the `pipelineId` of the returned Pipeline object. If `ephemeralPipeline` is specified, that pipeline is run once with the given args and not saved. It is an error to specify both `pipelineId` and `ephemeralPipeline`. `pipelineArgs` must be specified.",
      "type": "object",
      "id": "RunPipelineRequest",
      "properties": {
        "pipelineId": {
          "description": "The already created pipeline to run.",
          "type": "string"
        },
        "pipelineArgs": {
          "$ref": "RunPipelineArgs",
          "description": "The arguments to use when running this pipeline."
        },
        "ephemeralPipeline": {
          "description": "A new pipeline object to run once and then delete.",
          "$ref": "Pipeline"
        }
      }
    },
    "ContainerStoppedEvent": {
      "properties": {
        "actionId": {
          "type": "integer",
          "description": "The numeric ID of the action that started this container.",
          "format": "int32"
        },
        "stderr": {
          "description": "The tail end of any content written to standard error by the container. If the content emits large amounts of debugging noise or contains sensitive information, you can prevent the content from being printed by setting the `DISABLE_STANDARD_ERROR_CAPTURE` flag. Note that only a small amount of the end of the stream is captured here. The entire stream is stored in the `/google/logs` directory mounted into each action, and can be copied off the machine as described elsewhere.",
          "type": "string"
        },
        "exitStatus": {
          "description": "The exit status of the container.",
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object",
      "description": "An event generated when a container exits.",
      "id": "ContainerStoppedEvent"
    },
    "UnexpectedExitStatusEvent": {
      "type": "object",
      "properties": {
        "exitStatus": {
          "description": "The exit status of the container.",
          "format": "int32",
          "type": "integer"
        },
        "actionId": {
          "format": "int32",
          "description": "The numeric ID of the action that started the container.",
          "type": "integer"
        }
      },
      "id": "UnexpectedExitStatusEvent",
      "description": "An event generated when the execution of a container results in a non-zero exit status that was not otherwise ignored. Execution will continue, but only actions that are flagged as `ALWAYS_RUN` will be executed. Other actions will be skipped."
    },
    "Pipeline": {
      "type": "object",
      "id": "Pipeline",
      "description": "The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method.",
      "properties": {
        "projectId": {
          "type": "string",
          "description": "Required. The project in which to create the pipeline. The caller must have WRITE access."
        },
        "name": {
          "type": "string",
          "description": "Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines."
        },
        "inputParameters": {
          "type": "array",
          "items": {
            "$ref": "PipelineParameter"
          },
          "description": "Input parameters of the pipeline."
        },
        "outputParameters": {
          "type": "array",
          "description": "Output parameters of the pipeline.",
          "items": {
            "$ref": "PipelineParameter"
          }
        },
        "resources": {
          "description": "Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb",
          "$ref": "PipelineResources"
        },
        "description": {
          "description": "User-specified description.",
          "type": "string"
        },
        "pipelineId": {
          "description": "Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.",
          "type": "string"
        },
        "docker": {
          "$ref": "DockerExecutor",
          "description": "Specifies the docker run information."
        }
      }
    },
    "PipelineParameter": {
      "id": "PipelineParameter",
      "type": "object",
      "properties": {
        "defaultValue": {
          "type": "string",
          "description": "The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`."
        },
        "name": {
          "description": "Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.",
          "type": "string"
        },
        "description": {
          "description": "Human-readable description.",
          "type": "string"
        },
        "localCopy": {
          "$ref": "LocalCopy",
          "description": "If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be."
        }
      },
      "description": "Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: \"input_file\", localCopy: {path: \"file.txt\", disk: \"pd1\"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: \"pd1\", mountPoint: \"/mnt/disk/\"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs[\"input_file\"] = \"gs://my-bucket/bar.txt\" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are: Google Cloud storage pathLocal path file file glob directory For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are: Local pathGoogle Cloud Storage path file file file directory - directory must already exist glob directory - directory will be created if it doesn't exist One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file."
    },
    "Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "properties": {
        "details": {
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
        }
      },
      "type": "object",
      "id": "Status"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "id": "Operation",
      "properties": {
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "An OperationMetadata or Metadata object. This will always be returned with the Operation.",
          "type": "object"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "response": {
          "description": "An Empty object.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "done": {
          "type": "boolean",
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
        },
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`"
        }
      }
    },
    "CancelOperationRequest": {
      "type": "object",
      "id": "CancelOperationRequest",
      "properties": {},
      "description": "The request message for Operations.CancelOperation."
    },
    "PipelineResources": {
      "type": "object",
      "description": "The system resources for the pipeline run.",
      "properties": {
        "acceleratorType": {
          "type": "string",
          "description": "Optional. The Compute Engine defined accelerator type. By specifying this parameter, you will download and install the following third-party software onto your managed Compute Engine instances: NVIDIA® Tesla® drivers and NVIDIA® CUDA toolkit. Please see https://cloud.google.com/compute/docs/gpus/ for a list of available accelerator types."
        },
        "minimumCpuCores": {
          "format": "int32",
          "type": "integer",
          "description": "The minimum number of cores to use. Defaults to 1."
        },
        "bootDiskSizeGb": {
          "description": "The size of the boot disk. Defaults to 10 (GB).",
          "type": "integer",
          "format": "int32"
        },
        "noAddress": {
          "description": "Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. Before using this, you must [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).",
          "type": "boolean"
        },
        "acceleratorCount": {
          "format": "int64",
          "description": "Optional. The number of accelerators of the specified type to attach. By specifying this parameter, you will download and install the following third-party software onto your managed Compute Engine instances: NVIDIA® Tesla® drivers and NVIDIA® CUDA toolkit.",
          "type": "string"
        },
        "minimumRamGb": {
          "description": "The minimum amount of RAM to use. Defaults to 3.75 (GB)",
          "format": "double",
          "type": "number"
        },
        "preemptible": {
          "description": "Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.",
          "type": "boolean"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "Disk"
          },
          "description": "Disks to attach."
        },
        "zones": {
          "items": {
            "type": "string"
          },
          "description": "List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.",
          "type": "array"
        }
      },
      "id": "PipelineResources"
    },
    "SetOperationStatusRequest": {
      "properties": {
        "errorMessage": {
          "type": "string"
        },
        "timestampEvents": {
          "items": {
            "$ref": "TimestampEvent"
          },
          "type": "array"
        },
        "validationToken": {
          "type": "string",
          "format": "uint64"
        },
        "operationId": {
          "type": "string"
        },
        "errorCode": {
          "enum": [
            "OK",
            "CANCELLED",
            "UNKNOWN",
            "INVALID_ARGUMENT",
            "DEADLINE_EXCEEDED",
            "NOT_FOUND",
            "ALREADY_EXISTS",
            "PERMISSION_DENIED",
            "UNAUTHENTICATED",
            "RESOURCE_EXHAUSTED",
            "FAILED_PRECONDITION",
            "ABORTED",
            "OUT_OF_RANGE",
            "UNIMPLEMENTED",
            "INTERNAL",
            "UNAVAILABLE",
            "DATA_LOSS"
          ],
          "enumDescriptions": [
            "Not an error; returned on success HTTP Mapping: 200 OK",
            "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request",
            "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error",
            "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request",
            "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout",
            "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found",
            "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict",
            "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden",
            "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized",
            "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests",
            "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level (e.g., when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence). (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. E.g., if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request",
            "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict",
            "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request",
            "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented",
            "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error",
            "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable",
            "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error"
          ],
          "type": "string"
        }
      },
      "id": "SetOperationStatusRequest",
      "type": "object",
      "description": "Request to set operation status. Should only be used by VMs created by the Pipelines Service and not by end users."
    },
    "PullStoppedEvent": {
      "properties": {
        "imageUri": {
          "description": "The URI of the image that was pulled.",
          "type": "string"
        }
      },
      "description": "An event generated when the worker stops pulling an image.",
      "type": "object",
      "id": "PullStoppedEvent"
    },
    "Empty": {
      "type": "object",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "properties": {}
    },
    "RunPipelineResponse": {
      "id": "RunPipelineResponse",
      "properties": {},
      "description": "The response to the RunPipeline method, returned in the operation's result field on success.",
      "type": "object"
    },
    "LocalCopy": {
      "type": "object",
      "description": "LocalCopy defines how a remote file should be copied to and from the VM.",
      "properties": {
        "disk": {
          "type": "string",
          "description": "Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or \"boot\", which represents the Docker instance's boot disk and has a mount point of `/`."
        },
        "path": {
          "description": "Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,",
          "type": "string"
        }
      },
      "id": "LocalCopy"
    },
    "LoggingOptions": {
      "description": "The logging options for the pipeline run.",
      "type": "object",
      "id": "LoggingOptions",
      "properties": {
        "gcsPath": {
          "type": "string",
          "description": "The location in Google Cloud Storage to which the pipeline logs will be copied. Can be specified as a fully qualified directory path, in which case logs will be output with a unique identifier as the filename in that directory, or as a fully specified path, which must end in `.log`, in which case that path will be used, and the user must ensure that logs are not overwritten. Stdout and stderr logs from the run are also generated and output as `-stdout.log` and `-stderr.log`."
        }
      }
    },
    "PullStartedEvent": {
      "description": "An event generated when the worker starts pulling an image.",
      "properties": {
        "imageUri": {
          "type": "string",
          "description": "The URI of the image that was pulled."
        }
      },
      "type": "object",
      "id": "PullStartedEvent"
    },
    "FailedEvent": {
      "description": "An event generated when the execution of a pipeline has failed. Note that other events can continue to occur after this event.",
      "id": "FailedEvent",
      "type": "object",
      "properties": {
        "code": {
          "enum": [
            "OK",
            "CANCELLED",
            "UNKNOWN",
            "INVALID_ARGUMENT",
            "DEADLINE_EXCEEDED",
            "NOT_FOUND",
            "ALREADY_EXISTS",
            "PERMISSION_DENIED",
            "UNAUTHENTICATED",
            "RESOURCE_EXHAUSTED",
            "FAILED_PRECONDITION",
            "ABORTED",
            "OUT_OF_RANGE",
            "UNIMPLEMENTED",
            "INTERNAL",
            "UNAVAILABLE",
            "DATA_LOSS"
          ],
          "enumDescriptions": [
            "Not an error; returned on success HTTP Mapping: 200 OK",
            "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request",
            "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error",
            "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request",
            "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout",
            "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found",
            "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict",
            "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden",
            "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized",
            "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests",
            "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level (e.g., when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence). (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. E.g., if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request",
            "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict",
            "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request",
            "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented",
            "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error",
            "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable",
            "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error"
          ],
          "type": "string",
          "description": "The Google standard error code that best describes this failure."
        },
        "cause": {
          "description": "The human-readable description of the cause of the failure.",
          "type": "string"
        }
      }
    },
    "ComputeEngine": {
      "description": "Describes a Compute Engine resource that is being managed by a running pipeline.",
      "type": "object",
      "id": "ComputeEngine",
      "properties": {
        "zone": {
          "description": "The availability zone in which the instance resides.",
          "type": "string"
        },
        "instanceName": {
          "description": "The instance on which the operation is running.",
          "type": "string"
        },
        "diskNames": {
          "type": "array",
          "description": "The names of the disks that were created for this pipeline.",
          "items": {
            "type": "string"
          }
        },
        "machineType": {
          "description": "The machine type of the instance.",
          "type": "string"
        }
      }
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "ListOperationsResponse"
    },
    "RepeatedString": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "RepeatedString"
    },
    "OperationMetadata": {
      "description": "Metadata describing an Operation.",
      "type": "object",
      "id": "OperationMetadata",
      "properties": {
        "events": {
          "items": {
            "$ref": "OperationEvent"
          },
          "description": "Optional event messages that were generated during the job's execution. This also contains any warnings that were generated during import or export.",
          "type": "array"
        },
        "createTime": {
          "description": "The time at which the job was submitted to the Genomics service.",
          "format": "google-datetime",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "description": "Optionally provided by the caller when submitting the request that creates the operation.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "clientId": {
          "description": "This field is deprecated. Use `labels` instead. Optionally provided by the caller when submitting the request that creates the operation.",
          "type": "string"
        },
        "runtimeMetadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "Runtime metadata on this Operation."
        },
        "projectId": {
          "type": "string",
          "description": "The Google Cloud Project in which the job is scoped."
        },
        "request": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "The original request that started the operation. Note that this will be in current version of the API. If the operation was started with v1beta2 API and a GetOperation is performed on v1 API, a v1 request will be returned.",
          "type": "object"
        },
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "The time at which the job began to run."
        },
        "endTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "The time at which the job stopped running."
        }
      }
    },
    "ListPipelinesResponse": {
      "id": "ListPipelinesResponse",
      "type": "object",
      "description": "The response of ListPipelines. Contains at most `pageSize` pipelines. If it contains `pageSize` pipelines, and more pipelines exist, then `nextPageToken` will be populated and should be used as the `pageToken` argument to a subsequent ListPipelines request.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The token to use to get the next page of results."
        },
        "pipelines": {
          "items": {
            "$ref": "Pipeline"
          },
          "description": "The matched pipelines.",
          "type": "array"
        }
      }
    },
    "WorkerReleasedEvent": {
      "properties": {
        "zone": {
          "type": "string",
          "description": "The zone the worker was running in."
        },
        "instance": {
          "type": "string",
          "description": "The worker's instance name."
        }
      },
      "description": "An event generated when the worker VM that was assigned to the pipeline has been released (deleted).",
      "id": "WorkerReleasedEvent",
      "type": "object"
    },
    "ServiceAccount": {
      "description": "A Google Cloud Service Account.",
      "type": "object",
      "properties": {
        "email": {
          "description": "Email address of the service account. Defaults to `default`, which uses the compute service account associated with the project.",
          "type": "string"
        },
        "scopes": {
          "description": "List of scopes to be enabled for this service account on the VM. The following scopes are automatically included: * https://www.googleapis.com/auth/compute * https://www.googleapis.com/auth/devstorage.full_control * https://www.googleapis.com/auth/genomics * https://www.googleapis.com/auth/logging.write * https://www.googleapis.com/auth/monitoring.write",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "ServiceAccount"
    },
    "RuntimeMetadata": {
      "description": "Runtime metadata that will be populated in the runtimeMetadata field of the Operation associated with a RunPipeline execution.",
      "id": "RuntimeMetadata",
      "properties": {
        "computeEngine": {
          "description": "Execution information specific to Google Compute Engine.",
          "$ref": "ComputeEngine"
        }
      },
      "type": "object"
    },
    "Event": {
      "id": "Event",
      "type": "object",
      "description": "Carries information about events that occur during pipeline execution.",
      "properties": {
        "timestamp": {
          "format": "google-datetime",
          "description": "The time at which the event occurred.",
          "type": "string"
        },
        "description": {
          "description": "A human-readable description of the event. Note that these strings can change at any time without notice. Any application logic must use the information in the `details` field.",
          "type": "string"
        },
        "details": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "Machine-readable details about the event.",
          "type": "object"
        }
      }
    },
    "WorkerAssignedEvent": {
      "type": "object",
      "id": "WorkerAssignedEvent",
      "description": "An event generated after a worker VM has been assigned to run the pipeline.",
      "properties": {
        "machineType": {
          "description": "The machine type that was assigned for the worker.",
          "type": "string"
        },
        "instance": {
          "description": "The worker's instance name.",
          "type": "string"
        },
        "zone": {
          "description": "The zone the worker is running in.",
          "type": "string"
        }
      }
    },
    "ControllerConfig": {
      "description": "Stores the information that the controller will fetch from the server in order to run. Should only be used by VMs created by the Pipelines Service and not by end users.",
      "properties": {
        "vars": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "machineType": {
          "type": "string"
        },
        "gcsLogPath": {
          "type": "string"
        },
        "gcsSinks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "RepeatedString"
          }
        },
        "cmd": {
          "type": "string"
        },
        "gcsSources": {
          "type": "object",
          "additionalProperties": {
            "$ref": "RepeatedString"
          }
        },
        "image": {
          "type": "string"
        },
        "disks": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "ControllerConfig"
    },
    "ContainerKilledEvent": {
      "id": "ContainerKilledEvent",
      "properties": {
        "actionId": {
          "description": "The numeric ID of the action that started the container.",
          "format": "int32",
          "type": "integer"
        }
      },
      "description": "An event generated when a container is forcibly terminated by the worker. Currently, this only occurs when the container outlives the timeout specified by the user.",
      "type": "object"
    },
    "DelayedEvent": {
      "type": "object",
      "id": "DelayedEvent",
      "description": "An event generated whenever a resource limitation or transient error delays execution of a pipeline that was otherwise ready to run.",
      "properties": {
        "cause": {
          "description": "A textual description of the cause of the delay. The string can change without notice because it is often generated by another service (such as Compute Engine).",
          "type": "string"
        },
        "metrics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "If the delay was caused by a resource shortage, this field lists the Compute Engine metrics that are preventing this operation from running (for example, `CPUS` or `INSTANCES`). If the particular metric is not known, a single `UNKNOWN` metric will be present."
        }
      }
    },
    "DockerExecutor": {
      "type": "object",
      "id": "DockerExecutor",
      "properties": {
        "imageName": {
          "type": "string",
          "description": "Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image."
        },
        "cmd": {
          "description": "Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.",
          "type": "string"
        }
      },
      "description": "The Docker execuctor specification."
    },
    "TimestampEvent": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "String indicating the type of event"
        },
        "timestamp": {
          "description": "The time this event occured.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "description": "Stores the list of events and times they occured for major events in job execution.",
      "id": "TimestampEvent"
    },
    "ContainerStartedEvent": {
      "description": "An event generated when a container starts.",
      "type": "object",
      "id": "ContainerStartedEvent",
      "properties": {
        "portMappings": {
          "description": "The container-to-host port mappings installed for this container. This set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS` flag as well as any specified in the `Action` definition.",
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int32"
          }
        },
        "actionId": {
          "type": "integer",
          "description": "The numeric ID of the action that started this container.",
          "format": "int32"
        },
        "ipAddress": {
          "type": "string",
          "description": "The public IP address that can be used to connect to the container. This field is only populated when at least one port mapping is present. If the instance was created with a private address, this field will be empty even if port mappings exist."
        }
      }
    },
    "Disk": {
      "properties": {
        "sizeGb": {
          "description": "The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.",
          "format": "int32",
          "type": "integer"
        },
        "readOnly": {
          "description": "Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.",
          "type": "boolean"
        },
        "source": {
          "description": "The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.",
          "type": "string"
        },
        "autoDelete": {
          "description": "Deprecated. Disks created by the Pipelines API will be deleted at the end of the pipeline run, regardless of what this field is set to.",
          "type": "boolean"
        },
        "type": {
          "enumDescriptions": [
            "Default disk type. Use one of the other options below.",
            "Specifies a Google Compute Engine persistent hard disk. See https://cloud.google.com/compute/docs/disks/#pdspecs for details.",
            "Specifies a Google Compute Engine persistent solid-state disk. See https://cloud.google.com/compute/docs/disks/#pdspecs for details.",
            "Specifies a Google Compute Engine local SSD. See https://cloud.google.com/compute/docs/disks/local-ssd for details."
          ],
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "PERSISTENT_HDD",
            "PERSISTENT_SSD",
            "LOCAL_SSD"
          ],
          "description": "Required. The type of the disk to create."
        },
        "name": {
          "description": "Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name \"boot\" is reserved for system use.",
          "type": "string"
        },
        "mountPoint": {
          "type": "string",
          "description": "Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`."
        }
      },
      "description": "A Google Compute Engine disk resource specification.",
      "type": "object",
      "id": "Disk"
    },
    "RunPipelineArgs": {
      "properties": {
        "clientId": {
          "description": "This field is deprecated. Use `labels` instead. Client-specified pipeline operation identifier.",
          "type": "string"
        },
        "inputs": {
          "type": "object",
          "description": "Pipeline input arguments; keys are defined in the pipeline documentation. All input parameters that do not have default values must be specified. If parameters with defaults are specified here, the defaults will be overridden.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "resources": {
          "description": "Specifies resource requirements/overrides for the pipeline run.",
          "$ref": "PipelineResources"
        },
        "projectId": {
          "description": "Required. The project in which to run the pipeline. The caller must have WRITER access to all Google Cloud services and resources (e.g. Google Compute Engine) will be used.",
          "type": "string"
        },
        "outputs": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Pipeline output arguments; keys are defined in the pipeline documentation. All output parameters of without default values must be specified. If parameters with defaults are specified here, the defaults will be overridden."
        },
        "keepVmAliveOnFailureDuration": {
          "format": "google-duration",
          "description": "How long to keep the VM up after a failure (for example docker command failed, copying input or output files failed, etc). While the VM is up, one can ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.",
          "type": "string"
        },
        "logging": {
          "$ref": "LoggingOptions",
          "description": "Required. Logging options. Used by the service to communicate results to the user."
        },
        "serviceAccount": {
          "$ref": "ServiceAccount",
          "description": "The Google Cloud Service Account that will be used to access data and services. By default, the compute service account associated with `projectId` is used."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels to apply to this pipeline run. Labels will also be applied to compute resources (VM, disks) created by this pipeline run. When listing operations, operations can filtered by labels. Label keys may not be empty; label values may be empty. Non-empty labels must be 1-63 characters long, and comply with [RFC1035] (https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.",
          "type": "object"
        }
      },
      "type": "object",
      "id": "RunPipelineArgs",
      "description": "The pipeline run arguments."
    }
  },
  "basePath": "",
  "revision": "20200804",
  "batchPath": "batch",
  "description": "Uploads, processes, queries, and searches Genomics data in the cloud.",
  "parameters": {
    "key": {
      "type": "string",
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "type": "string",
      "location": "query"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "description": "Data format for response."
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query",
      "type": "boolean"
    },
    "oauth_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth 2.0 token for the current user."
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    }
  }
}
