{
 "kind": "discovery#restDescription",
 "etag": "\"tbys6C40o18GZwyMen5GMkdK-3s/jo14IJ9oMjJmju16_ICU62ty30c\"",
 "discoveryVersion": "v1",
 "id": "genomics:v1",
 "name": "genomics",
 "version": "v1",
 "revision": "20160928",
 "title": "Genomics API",
 "description": "Stores, processes, explores and shares genomic data.",
 "ownerDomain": "google.com",
 "ownerName": "Google",
 "icons": {
  "x16": "http://www.google.com/images/icons/product/search-16.gif",
  "x32": "http://www.google.com/images/icons/product/search-32.gif"
 },
 "documentationLink": "https://cloud.google.com/genomics/",
 "protocol": "rest",
 "baseUrl": "https://genomics.googleapis.com/",
 "basePath": "",
 "rootUrl": "https://genomics.googleapis.com/",
 "servicePath": "",
 "batchPath": "batch",
 "parameters": {
  "access_token": {
   "type": "string",
   "description": "OAuth access token.",
   "location": "query"
  },
  "alt": {
   "type": "string",
   "description": "Data format for response.",
   "default": "json",
   "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"
  },
  "bearer_token": {
   "type": "string",
   "description": "OAuth bearer token.",
   "location": "query"
  },
  "callback": {
   "type": "string",
   "description": "JSONP",
   "location": "query"
  },
  "fields": {
   "type": "string",
   "description": "Selector specifying which fields to include in a partial response.",
   "location": "query"
  },
  "key": {
   "type": "string",
   "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.",
   "location": "query"
  },
  "oauth_token": {
   "type": "string",
   "description": "OAuth 2.0 token for the current user.",
   "location": "query"
  },
  "pp": {
   "type": "boolean",
   "description": "Pretty-print response.",
   "default": "true",
   "location": "query"
  },
  "prettyPrint": {
   "type": "boolean",
   "description": "Returns response with indentations and line breaks.",
   "default": "true",
   "location": "query"
  },
  "quotaUser": {
   "type": "string",
   "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.",
   "location": "query"
  },
  "upload_protocol": {
   "type": "string",
   "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
   "location": "query"
  },
  "uploadType": {
   "type": "string",
   "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
   "location": "query"
  },
  "$.xgafv": {
   "type": "string",
   "description": "V1 error format.",
   "enumDescriptions": [
    "v1 error format",
    "v2 error format"
   ],
   "location": "query"
  }
 },
 "auth": {
  "oauth2": {
   "scopes": {
    "https://www.googleapis.com/auth/bigquery": {
     "description": "View and manage your data in Google BigQuery"
    },
    "https://www.googleapis.com/auth/cloud-platform": {
     "description": "View and manage your data across Google Cloud Platform services"
    },
    "https://www.googleapis.com/auth/devstorage.read_write": {
     "description": "Manage your data in Google Cloud Storage"
    },
    "https://www.googleapis.com/auth/genomics": {
     "description": "View and manage Genomics data"
    },
    "https://www.googleapis.com/auth/genomics.readonly": {
     "description": "View Genomics data"
    }
   }
  }
 },
 "schemas": {
  "AnnotationSet": {
   "id": "AnnotationSet",
   "type": "object",
   "description": "An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated annotation set ID, unique across all annotation sets."
    },
    "datasetId": {
     "type": "string",
     "description": "The dataset to which this annotation set belongs."
    },
    "referenceSetId": {
     "type": "string",
     "description": "The ID of the reference set that defines the coordinate space for this set's annotations."
    },
    "name": {
     "type": "string",
     "description": "The display name for this annotation set."
    },
    "sourceUri": {
     "type": "string",
     "description": "The source URI describing the file from which this annotation set was generated, if any."
    },
    "type": {
     "type": "string",
     "description": "The type of annotations contained within this set.",
     "enum": [
      "ANNOTATION_TYPE_UNSPECIFIED",
      "GENERIC",
      "VARIANT",
      "GENE",
      "TRANSCRIPT"
     ]
    },
    "info": {
     "type": "object",
     "description": "A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "Empty": {
   "id": "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 `{}`."
  },
  "SearchAnnotationSetsRequest": {
   "id": "SearchAnnotationSetsRequest",
   "type": "object",
   "properties": {
    "datasetIds": {
     "type": "array",
     "description": "Required. The dataset IDs to search within. Caller must have `READ` access to these datasets.",
     "items": {
      "type": "string"
     }
    },
    "referenceSetId": {
     "type": "string",
     "description": "If specified, only annotation sets associated with the given reference set are returned."
    },
    "name": {
     "type": "string",
     "description": "Only return annotations sets for which a substring of the name matches this string (case insensitive)."
    },
    "types": {
     "type": "array",
     "description": "If specified, only annotation sets that have any of these types are returned.",
     "enumDescriptions": [
      "",
      "A `GENERIC` annotation type should be used when no other annotation type will suffice. This represents an untyped annotation of the reference genome.",
      "A `VARIANT` annotation type.",
      "A `GENE` annotation type represents the existence of a gene at the associated reference coordinates. The start coordinate is typically the gene's transcription start site and the end is typically the end of the gene's last exon.",
      "A `TRANSCRIPT` annotation type represents the assertion that a particular region of the reference genome may be transcribed as RNA."
     ],
     "items": {
      "type": "string",
      "enum": [
       "ANNOTATION_TYPE_UNSPECIFIED",
       "GENERIC",
       "VARIANT",
       "GENE",
       "TRANSCRIPT"
      ]
     }
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 128. The maximum value is 1024.",
     "format": "int32"
    }
   }
  },
  "SearchAnnotationSetsResponse": {
   "id": "SearchAnnotationSetsResponse",
   "type": "object",
   "properties": {
    "annotationSets": {
     "type": "array",
     "description": "The matching annotation sets.",
     "items": {
      "$ref": "AnnotationSet"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "Annotation": {
   "id": "Annotation",
   "type": "object",
   "description": "An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated annotation ID, unique across all annotations."
    },
    "annotationSetId": {
     "type": "string",
     "description": "The annotation set to which this annotation belongs."
    },
    "name": {
     "type": "string",
     "description": "The display name of this annotation."
    },
    "referenceId": {
     "type": "string",
     "description": "The ID of the Google Genomics reference associated with this range."
    },
    "referenceName": {
     "type": "string",
     "description": "The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`."
    },
    "start": {
     "type": "string",
     "description": "The start position of the range on the reference, 0-based inclusive.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the range on the reference, 0-based exclusive.",
     "format": "int64"
    },
    "reverseStrand": {
     "type": "boolean",
     "description": "Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand."
    },
    "type": {
     "type": "string",
     "description": "The data type for this annotation. Must match the containing annotation set's type.",
     "enum": [
      "ANNOTATION_TYPE_UNSPECIFIED",
      "GENERIC",
      "VARIANT",
      "GENE",
      "TRANSCRIPT"
     ]
    },
    "variant": {
     "$ref": "VariantAnnotation",
     "description": "A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`."
    },
    "transcript": {
     "$ref": "Transcript",
     "description": "A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`."
    },
    "info": {
     "type": "object",
     "description": "A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "VariantAnnotation": {
   "id": "VariantAnnotation",
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "description": "Type has been adapted from ClinVar's list of variant types.",
     "enum": [
      "TYPE_UNSPECIFIED",
      "TYPE_OTHER",
      "INSERTION",
      "DELETION",
      "SUBSTITUTION",
      "SNP",
      "STRUCTURAL",
      "CNV"
     ]
    },
    "effect": {
     "type": "string",
     "description": "Effect of the variant on the coding sequence.",
     "enum": [
      "EFFECT_UNSPECIFIED",
      "EFFECT_OTHER",
      "FRAMESHIFT",
      "FRAME_PRESERVING_INDEL",
      "SYNONYMOUS_SNP",
      "NONSYNONYMOUS_SNP",
      "STOP_GAIN",
      "STOP_LOSS",
      "SPLICE_SITE_DISRUPTION"
     ]
    },
    "alternateBases": {
     "type": "string",
     "description": "The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions."
    },
    "geneId": {
     "type": "string",
     "description": "Google annotation ID of the gene affected by this variant. This should be provided when the variant is created."
    },
    "transcriptIds": {
     "type": "array",
     "description": "Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.",
     "items": {
      "type": "string"
     }
    },
    "conditions": {
     "type": "array",
     "description": "The set of conditions associated with this variant. A condition describes the way a variant influences human health.",
     "items": {
      "$ref": "ClinicalCondition"
     }
    },
    "clinicalSignificance": {
     "type": "string",
     "description": "Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/",
     "enum": [
      "CLINICAL_SIGNIFICANCE_UNSPECIFIED",
      "CLINICAL_SIGNIFICANCE_OTHER",
      "UNCERTAIN",
      "BENIGN",
      "LIKELY_BENIGN",
      "LIKELY_PATHOGENIC",
      "PATHOGENIC",
      "DRUG_RESPONSE",
      "HISTOCOMPATIBILITY",
      "CONFERS_SENSITIVITY",
      "RISK_FACTOR",
      "ASSOCIATION",
      "PROTECTIVE",
      "MULTIPLE_REPORTED"
     ]
    }
   }
  },
  "ClinicalCondition": {
   "id": "ClinicalCondition",
   "type": "object",
   "properties": {
    "names": {
     "type": "array",
     "description": "A set of names for the condition.",
     "items": {
      "type": "string"
     }
    },
    "externalIds": {
     "type": "array",
     "description": "The set of external IDs for this condition.",
     "items": {
      "$ref": "ExternalId"
     }
    },
    "conceptId": {
     "type": "string",
     "description": "The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/"
    },
    "omimId": {
     "type": "string",
     "description": "The OMIM id for this condition. Search for these IDs at http://omim.org/"
    }
   }
  },
  "ExternalId": {
   "id": "ExternalId",
   "type": "object",
   "properties": {
    "sourceName": {
     "type": "string",
     "description": "The name of the source of this data."
    },
    "id": {
     "type": "string",
     "description": "The id used by the source of this data."
    }
   }
  },
  "Transcript": {
   "id": "Transcript",
   "type": "object",
   "description": "A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA.",
   "properties": {
    "geneId": {
     "type": "string",
     "description": "The annotation ID of the gene from which this transcript is transcribed."
    },
    "exons": {
     "type": "array",
     "description": "The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.",
     "items": {
      "$ref": "Exon"
     }
    },
    "codingSequence": {
     "$ref": "CodingSequence",
     "description": "The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA."
    }
   }
  },
  "Exon": {
   "id": "Exon",
   "type": "object",
   "properties": {
    "start": {
     "type": "string",
     "description": "The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.",
     "format": "int64"
    },
    "frame": {
     "type": "integer",
     "description": "The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.",
     "format": "int32"
    }
   }
  },
  "CodingSequence": {
   "id": "CodingSequence",
   "type": "object",
   "properties": {
    "start": {
     "type": "string",
     "description": "The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.",
     "format": "int64"
    }
   }
  },
  "BatchCreateAnnotationsRequest": {
   "id": "BatchCreateAnnotationsRequest",
   "type": "object",
   "properties": {
    "annotations": {
     "type": "array",
     "description": "The annotations to be created. At most 4096 can be specified in a single request.",
     "items": {
      "$ref": "Annotation"
     }
    },
    "requestId": {
     "type": "string",
     "description": "A unique request ID which enables the server to detect duplicated requests. If provided, duplicated requests will result in the same response; if not provided, duplicated requests may result in duplicated data. For a given annotation set, callers should not reuse `request_id`s when writing different batches of annotations - behavior in this case is undefined. A common approach is to use a UUID. For batch jobs where worker crashes are a possibility, consider using some unique variant of a worker or run ID."
    }
   }
  },
  "BatchCreateAnnotationsResponse": {
   "id": "BatchCreateAnnotationsResponse",
   "type": "object",
   "properties": {
    "entries": {
     "type": "array",
     "description": "The resulting per-annotation entries, ordered consistently with the original request.",
     "items": {
      "$ref": "Entry"
     }
    }
   }
  },
  "Entry": {
   "id": "Entry",
   "type": "object",
   "properties": {
    "status": {
     "$ref": "Status",
     "description": "The creation status."
    },
    "annotation": {
     "$ref": "Annotation",
     "description": "The created annotation, if creation was successful."
    }
   }
  },
  "Status": {
   "id": "Status",
   "type": "object",
   "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). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.",
   "properties": {
    "code": {
     "type": "integer",
     "description": "The status code, which should be an enum value of google.rpc.Code.",
     "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."
    },
    "details": {
     "type": "array",
     "description": "A list of messages that carry the error details. There will be 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."
      }
     }
    }
   }
  },
  "SearchAnnotationsRequest": {
   "id": "SearchAnnotationsRequest",
   "type": "object",
   "properties": {
    "annotationSetIds": {
     "type": "array",
     "description": "Required. The annotation sets to search within. The caller must have `READ` access to these annotation sets. All queried annotation sets must have the same type.",
     "items": {
      "type": "string"
     }
    },
    "referenceId": {
     "type": "string",
     "description": "The ID of the reference to query."
    },
    "referenceName": {
     "type": "string",
     "description": "The name of the reference to query, within the reference set associated with this query."
    },
    "start": {
     "type": "string",
     "description": "The start position of the range on the reference, 0-based inclusive. If specified, referenceId or referenceName must be specified. Defaults to 0.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the range on the reference, 0-based exclusive. If referenceId or referenceName must be specified, Defaults to the length of the reference.",
     "format": "int64"
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.",
     "format": "int32"
    }
   }
  },
  "SearchAnnotationsResponse": {
   "id": "SearchAnnotationsResponse",
   "type": "object",
   "properties": {
    "annotations": {
     "type": "array",
     "description": "The matching annotations.",
     "items": {
      "$ref": "Annotation"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "ListDatasetsResponse": {
   "id": "ListDatasetsResponse",
   "type": "object",
   "description": "The dataset list response.",
   "properties": {
    "datasets": {
     "type": "array",
     "description": "The list of matching Datasets.",
     "items": {
      "$ref": "Dataset"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "Dataset": {
   "id": "Dataset",
   "type": "object",
   "description": "A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated dataset ID, unique across all datasets."
    },
    "projectId": {
     "type": "string",
     "description": "The Google Cloud project ID that this dataset belongs to."
    },
    "name": {
     "type": "string",
     "description": "The dataset name."
    },
    "createTime": {
     "type": "string",
     "description": "The time this dataset was created, in seconds from the epoch."
    }
   }
  },
  "UndeleteDatasetRequest": {
   "id": "UndeleteDatasetRequest",
   "type": "object"
  },
  "SetIamPolicyRequest": {
   "id": "SetIamPolicyRequest",
   "type": "object",
   "description": "Request message for `SetIamPolicy` method.",
   "properties": {
    "policy": {
     "$ref": "Policy",
     "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them."
    }
   }
  },
  "Policy": {
   "id": "Policy",
   "type": "object",
   "description": "Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { \"bindings\": [ { \"role\": \"roles/owner\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-other-app@appspot.gserviceaccount.com\", ] }, { \"role\": \"roles/viewer\", \"members\": [\"user:sean@example.com\"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).",
   "properties": {
    "version": {
     "type": "integer",
     "description": "Version of the `Policy`. The default version is 0.",
     "format": "int32"
    },
    "bindings": {
     "type": "array",
     "description": "Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.",
     "items": {
      "$ref": "Binding"
     }
    },
    "etag": {
     "type": "string",
     "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.",
     "format": "byte"
    }
   }
  },
  "Binding": {
   "id": "Binding",
   "type": "object",
   "description": "Associates `members` with a `role`.",
   "properties": {
    "role": {
     "type": "string",
     "description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required"
    },
    "members": {
     "type": "array",
     "description": "Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "GetIamPolicyRequest": {
   "id": "GetIamPolicyRequest",
   "type": "object",
   "description": "Request message for `GetIamPolicy` method."
  },
  "TestIamPermissionsRequest": {
   "id": "TestIamPermissionsRequest",
   "type": "object",
   "description": "Request message for `TestIamPermissions` method.",
   "properties": {
    "permissions": {
     "type": "array",
     "description": "REQUIRED: The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. Allowed permissions are: * `genomics.datasets.create` * `genomics.datasets.delete` * `genomics.datasets.get` * `genomics.datasets.list` * `genomics.datasets.update` * `genomics.datasets.getIamPolicy` * `genomics.datasets.setIamPolicy`",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "TestIamPermissionsResponse": {
   "id": "TestIamPermissionsResponse",
   "type": "object",
   "description": "Response message for `TestIamPermissions` method.",
   "properties": {
    "permissions": {
     "type": "array",
     "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "ListOperationsResponse": {
   "id": "ListOperationsResponse",
   "type": "object",
   "description": "The response message for Operations.ListOperations.",
   "properties": {
    "operations": {
     "type": "array",
     "description": "A list of operations that matches the specified filter in the request.",
     "items": {
      "$ref": "Operation"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The standard List next-page token."
    }
   }
  },
  "Operation": {
   "id": "Operation",
   "type": "object",
   "description": "This resource represents a long-running operation that is the result of a network API call.",
   "properties": {
    "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`"
    },
    "metadata": {
     "type": "object",
     "description": "An OperationMetadata object. This will always be returned with the Operation.",
     "additionalProperties": {
      "type": "any",
      "description": "Properties of the object. Contains field @type with type URL."
     }
    },
    "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."
    },
    "error": {
     "$ref": "Status",
     "description": "The error result of the operation in case of failure or cancellation."
    },
    "response": {
     "type": "object",
     "description": "If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.",
     "additionalProperties": {
      "type": "any",
      "description": "Properties of the object. Contains field @type with type URL."
     }
    }
   }
  },
  "CancelOperationRequest": {
   "id": "CancelOperationRequest",
   "type": "object",
   "description": "The request message for Operations.CancelOperation."
  },
  "ImportReadGroupSetsRequest": {
   "id": "ImportReadGroupSetsRequest",
   "type": "object",
   "description": "The read group set import request.",
   "properties": {
    "datasetId": {
     "type": "string",
     "description": "Required. The ID of the dataset these read group sets will belong to. The caller must have WRITE permissions to this dataset."
    },
    "referenceSetId": {
     "type": "string",
     "description": "The reference set to which the imported read group sets are aligned to, if any. The reference names of this reference set must be a superset of those found in the imported file headers. If no reference set id is provided, a best effort is made to associate with a matching reference set."
    },
    "sourceUris": {
     "type": "array",
     "description": "A list of URIs pointing at [BAM files](https://samtools.github.io/hts-specs/SAMv1.pdf) in Google Cloud Storage.",
     "items": {
      "type": "string"
     }
    },
    "partitionStrategy": {
     "type": "string",
     "description": "The partition strategy describes how read groups are partitioned into read group sets.",
     "enum": [
      "PARTITION_STRATEGY_UNSPECIFIED",
      "PER_FILE_PER_SAMPLE",
      "MERGE_ALL"
     ]
    }
   }
  },
  "ExportReadGroupSetRequest": {
   "id": "ExportReadGroupSetRequest",
   "type": "object",
   "description": "The read group set export request.",
   "properties": {
    "projectId": {
     "type": "string",
     "description": "Required. The Google Cloud project ID that owns this export. The caller must have WRITE access to this project."
    },
    "exportUri": {
     "type": "string",
     "description": "Required. A Google Cloud Storage URI for the exported BAM file. The currently authenticated user must have write access to the new file. An error will be returned if the URI already contains data."
    },
    "referenceNames": {
     "type": "array",
     "description": "The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use `*` to export only unmapped reads.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "SearchReadGroupSetsRequest": {
   "id": "SearchReadGroupSetsRequest",
   "type": "object",
   "description": "The read group set search request.",
   "properties": {
    "datasetIds": {
     "type": "array",
     "description": "Restricts this query to read group sets within the given datasets. At least one ID must be provided.",
     "items": {
      "type": "string"
     }
    },
    "name": {
     "type": "string",
     "description": "Only return read group sets for which a substring of the name matches this string."
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 1024.",
     "format": "int32"
    }
   }
  },
  "SearchReadGroupSetsResponse": {
   "id": "SearchReadGroupSetsResponse",
   "type": "object",
   "description": "The read group set search response.",
   "properties": {
    "readGroupSets": {
     "type": "array",
     "description": "The list of matching read group sets.",
     "items": {
      "$ref": "ReadGroupSet"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "ReadGroupSet": {
   "id": "ReadGroupSet",
   "type": "object",
   "description": "A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. * A read group set belongs to one dataset. * A read group belongs to one read group set. * A read belongs to one read group. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated read group set ID, unique for all read group sets."
    },
    "datasetId": {
     "type": "string",
     "description": "The dataset to which this read group set belongs."
    },
    "referenceSetId": {
     "type": "string",
     "description": "The reference set to which the reads in this read group set are aligned."
    },
    "name": {
     "type": "string",
     "description": "The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set."
    },
    "filename": {
     "type": "string",
     "description": "The filename of the original source file for this read group set, if any."
    },
    "readGroups": {
     "type": "array",
     "description": "The read groups in this set. There are typically 1-10 read groups in a read group set.",
     "items": {
      "$ref": "ReadGroup"
     }
    },
    "info": {
     "type": "object",
     "description": "A map of additional read group set information.",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "ReadGroup": {
   "id": "ReadGroup",
   "type": "object",
   "description": "A read group is all the data that's processed the same way by the sequencer.",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated read group ID, unique for all read groups. Note: This is different than the @RG ID field in the SAM spec. For that value, see name."
    },
    "datasetId": {
     "type": "string",
     "description": "The dataset to which this read group belongs."
    },
    "name": {
     "type": "string",
     "description": "The read group name. This corresponds to the @RG ID field in the SAM spec."
    },
    "description": {
     "type": "string",
     "description": "A free-form text description of this read group."
    },
    "sampleId": {
     "type": "string",
     "description": "A client-supplied sample identifier for the reads in this read group."
    },
    "experiment": {
     "$ref": "Experiment",
     "description": "The experiment used to generate this read group."
    },
    "predictedInsertSize": {
     "type": "integer",
     "description": "The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.",
     "format": "int32"
    },
    "programs": {
     "type": "array",
     "description": "The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.",
     "items": {
      "$ref": "Program"
     }
    },
    "referenceSetId": {
     "type": "string",
     "description": "The reference set the reads in this read group are aligned to."
    },
    "info": {
     "type": "object",
     "description": "A map of additional read group information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "Experiment": {
   "id": "Experiment",
   "type": "object",
   "properties": {
    "libraryId": {
     "type": "string",
     "description": "A client-supplied library identifier; a library is a collection of DNA fragments which have been prepared for sequencing from a sample. This field is important for quality control as error or bias can be introduced during sample preparation."
    },
    "platformUnit": {
     "type": "string",
     "description": "The platform unit used as part of this experiment, for example flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the @RG PU field in the SAM spec."
    },
    "sequencingCenter": {
     "type": "string",
     "description": "The sequencing center used as part of this experiment."
    },
    "instrumentModel": {
     "type": "string",
     "description": "The instrument model used as part of this experiment. This maps to sequencing technology in the SAM spec."
    }
   }
  },
  "Program": {
   "id": "Program",
   "type": "object",
   "properties": {
    "commandLine": {
     "type": "string",
     "description": "The command line used to run this program."
    },
    "id": {
     "type": "string",
     "description": "The user specified locally unique ID of the program. Used along with `prevProgramId` to define an ordering between programs."
    },
    "name": {
     "type": "string",
     "description": "The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'."
    },
    "prevProgramId": {
     "type": "string",
     "description": "The ID of the program run before this one."
    },
    "version": {
     "type": "string",
     "description": "The version of the program run."
    }
   }
  },
  "ListCoverageBucketsResponse": {
   "id": "ListCoverageBucketsResponse",
   "type": "object",
   "properties": {
    "bucketWidth": {
     "type": "string",
     "description": "The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or `targetBucketWidth`).",
     "format": "int64"
    },
    "coverageBuckets": {
     "type": "array",
     "description": "The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width `bucketWidth`, unless its end is the end of the reference sequence.",
     "items": {
      "$ref": "CoverageBucket"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "CoverageBucket": {
   "id": "CoverageBucket",
   "type": "object",
   "description": "A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.",
   "properties": {
    "range": {
     "$ref": "Range",
     "description": "The genomic coordinate range spanned by this bucket."
    },
    "meanCoverage": {
     "type": "number",
     "description": "The average number of reads which are aligned to each individual reference base in this bucket.",
     "format": "float"
    }
   }
  },
  "Range": {
   "id": "Range",
   "type": "object",
   "description": "A 0-based half-open genomic coordinate range for search requests.",
   "properties": {
    "referenceName": {
     "type": "string",
     "description": "The reference sequence name, for example `chr1`, `1`, or `chrX`."
    },
    "start": {
     "type": "string",
     "description": "The start position of the range on the reference, 0-based inclusive.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the range on the reference, 0-based exclusive.",
     "format": "int64"
    }
   }
  },
  "SearchReadsRequest": {
   "id": "SearchReadsRequest",
   "type": "object",
   "description": "The read search request.",
   "properties": {
    "readGroupSetIds": {
     "type": "array",
     "description": "The IDs of the read groups sets within which to search for reads. All specified read group sets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query. Must specify one of `readGroupSetIds` or `readGroupIds`.",
     "items": {
      "type": "string"
     }
    },
    "readGroupIds": {
     "type": "array",
     "description": "The IDs of the read groups within which to search for reads. All specified read groups must belong to the same read group sets. Must specify one of `readGroupSetIds` or `readGroupIds`.",
     "items": {
      "type": "string"
     }
    },
    "referenceName": {
     "type": "string",
     "description": "The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to `*`, only unmapped reads are returned. If unspecified, all reads (mapped and unmapped) are returned."
    },
    "start": {
     "type": "string",
     "description": "The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified.",
     "format": "int64"
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.",
     "format": "int32"
    }
   }
  },
  "SearchReadsResponse": {
   "id": "SearchReadsResponse",
   "type": "object",
   "description": "The read search response.",
   "properties": {
    "alignments": {
     "type": "array",
     "description": "The list of matching alignments sorted by mapped genomic coordinate, if any, ascending in position within the same reference. Unmapped reads, which have no position, are returned contiguously and are sorted in ascending lexicographic order by fragment name.",
     "items": {
      "$ref": "Read"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "Read": {
   "id": "Read",
   "type": "object",
   "description": "A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) ### Reverse-stranded reads Mapped reads (reads having a non-null `alignment`) can be aligned to either the forward or the reverse strand of their associated reference. Strandedness of a mapped read is encoded by `alignment.position.reverseStrand`. If we consider the reference to be a forward-stranded coordinate space of `[0, reference.length)` with `0` as the left-most position and `reference.length` as the right-most position, reads are always aligned left to right. That is, `alignment.position.position` always refers to the left-most reference coordinate and `alignment.cigar` describes the alignment of this read to the reference from left to right. All per-base fields such as `alignedSequence` and `alignedQuality` share this same left-to-right orientation; this is true of reads which are aligned to either strand. For reverse-stranded reads, this means that `alignedSequence` is the reverse complement of the bases that were originally reported by the sequencing machine. ### Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this: out = \"\" offset = 0 for c in read.alignment.cigar { switch c.operation { case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case \"CLIP_SOFT\", \"INSERT\": offset += c.operationLength break case \"PAD\": out += repeat(\"*\", c.operationLength) break case \"DELETE\": out += repeat(\"-\", c.operationLength) break case \"SKIP\": out += repeat(\" \", c.operationLength) break case \"CLIP_HARD\": break } } return out ### Converting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the `cigar` field. Note that this is a lossy conversion (`cigar.referenceSequence` is lost). cigarMap = { \"ALIGNMENT_MATCH\": \"M\", \"INSERT\": \"I\", \"DELETE\": \"D\", \"SKIP\": \"N\", \"CLIP_SOFT\": \"S\", \"CLIP_HARD\": \"H\", \"PAD\": \"P\", \"SEQUENCE_MATCH\": \"=\", \"SEQUENCE_MISMATCH\": \"X\", } cigarStr = \"\" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated read ID, unique across all reads. This is different from the `fragmentName`."
    },
    "readGroupId": {
     "type": "string",
     "description": "The ID of the read group this read belongs to. A read belongs to exactly one read group. This is a server-generated ID which is distinct from SAM's RG tag (for that value, see ReadGroup.name)."
    },
    "readGroupSetId": {
     "type": "string",
     "description": "The ID of the read group set this read belongs to. A read belongs to exactly one read group set."
    },
    "fragmentName": {
     "type": "string",
     "description": "The fragment name. Equivalent to QNAME (query template name) in SAM."
    },
    "properPlacement": {
     "type": "boolean",
     "description": "The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2)."
    },
    "duplicateFragment": {
     "type": "boolean",
     "description": "The fragment is a PCR or optical duplicate (SAM flag 0x400)."
    },
    "fragmentLength": {
     "type": "integer",
     "description": "The observed length of the fragment, equivalent to TLEN in SAM.",
     "format": "int32"
    },
    "readNumber": {
     "type": "integer",
     "description": "The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.",
     "format": "int32"
    },
    "numberReads": {
     "type": "integer",
     "description": "The number of reads in the fragment (extension to SAM flag 0x1).",
     "format": "int32"
    },
    "failedVendorQualityChecks": {
     "type": "boolean",
     "description": "Whether this read did not pass filters, such as platform or vendor quality controls (SAM flag 0x200)."
    },
    "alignment": {
     "$ref": "LinearAlignment",
     "description": "The linear alignment for this alignment record. This field is null for unmapped reads."
    },
    "secondaryAlignment": {
     "type": "boolean",
     "description": "Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both `secondaryAlignment` and `supplementaryAlignment` are false."
    },
    "supplementaryAlignment": {
     "type": "boolean",
     "description": "Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The `alignedSequence` and `alignedQuality` fields in the alignment record will only represent the bases for its respective linear alignment."
    },
    "alignedSequence": {
     "type": "string",
     "description": "The bases of the read sequence contained in this alignment record, **without CIGAR operations applied** (equivalent to SEQ in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence."
    },
    "alignedQuality": {
     "type": "array",
     "description": "The quality of the read sequence contained in this alignment record (equivalent to QUAL in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.",
     "items": {
      "type": "integer",
      "format": "int32"
     }
    },
    "nextMatePosition": {
     "$ref": "Position",
     "description": "The mapping of the primary alignment of the `(readNumber+1)%numberReads` read in the fragment. It replaces mate position and mate strand in SAM."
    },
    "info": {
     "type": "object",
     "description": "A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "LinearAlignment": {
   "id": "LinearAlignment",
   "type": "object",
   "description": "A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference.",
   "properties": {
    "position": {
     "$ref": "Position",
     "description": "The position of this alignment."
    },
    "mappingQuality": {
     "type": "integer",
     "description": "The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations. Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to the nearest integer.",
     "format": "int32"
    },
    "cigar": {
     "type": "array",
     "description": "Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.",
     "items": {
      "$ref": "CigarUnit"
     }
    }
   }
  },
  "Position": {
   "id": "Position",
   "type": "object",
   "description": "An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand.",
   "properties": {
    "referenceName": {
     "type": "string",
     "description": "The name of the reference in whatever reference set is being used."
    },
    "position": {
     "type": "string",
     "description": "The 0-based offset from the start of the forward strand for that reference.",
     "format": "int64"
    },
    "reverseStrand": {
     "type": "boolean",
     "description": "Whether this position is on the reverse strand, as opposed to the forward strand."
    }
   }
  },
  "CigarUnit": {
   "id": "CigarUnit",
   "type": "object",
   "description": "A single CIGAR operation.",
   "properties": {
    "operation": {
     "type": "string",
     "enum": [
      "OPERATION_UNSPECIFIED",
      "ALIGNMENT_MATCH",
      "INSERT",
      "DELETE",
      "SKIP",
      "CLIP_SOFT",
      "CLIP_HARD",
      "PAD",
      "SEQUENCE_MATCH",
      "SEQUENCE_MISMATCH"
     ]
    },
    "operationLength": {
     "type": "string",
     "description": "The number of genomic bases that the operation runs for. Required.",
     "format": "int64"
    },
    "referenceSequence": {
     "type": "string",
     "description": "`referenceSequence` is only used at mismatches (`SEQUENCE_MISMATCH`) and deletions (`DELETE`). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset."
    }
   }
  },
  "StreamReadsRequest": {
   "id": "StreamReadsRequest",
   "type": "object",
   "description": "The stream reads request.",
   "properties": {
    "projectId": {
     "type": "string",
     "description": "The Google Cloud project ID which will be billed for this access. The caller must have WRITE access to this project. Required."
    },
    "readGroupSetId": {
     "type": "string",
     "description": "The ID of the read group set from which to stream reads."
    },
    "referenceName": {
     "type": "string",
     "description": "The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to *, only unmapped reads are returned."
    },
    "start": {
     "type": "string",
     "description": "The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified.",
     "format": "int64"
    },
    "shard": {
     "type": "integer",
     "description": "Restricts results to a shard containing approximately `1/totalShards` of the normal response payload for this query. Results from a sharded request are disjoint from those returned by all queries which differ only in their shard parameter. A shard may yield 0 results; this is especially likely for large values of `totalShards`. Valid values are `[0, totalShards)`.",
     "format": "int32"
    },
    "totalShards": {
     "type": "integer",
     "description": "Specifying `totalShards` causes a disjoint subset of the normal response payload to be returned for each query with a unique `shard` parameter specified. A best effort is made to yield equally sized shards. Sharding can be used to distribute processing amongst workers, where each worker is assigned a unique `shard` number and all workers specify the same `totalShards` number. The union of reads returned for all sharded queries `[0, totalShards)` is equal to those returned by a single unsharded query. Queries for different values of `totalShards` with common divisors will share shard boundaries. For example, streaming `shard` 2 of 5 `totalShards` yields the same results as streaming `shard`s 4 and 5 of 10 `totalShards`. This property can be leveraged for adaptive retries.",
     "format": "int32"
    }
   }
  },
  "StreamReadsResponse": {
   "id": "StreamReadsResponse",
   "type": "object",
   "properties": {
    "alignments": {
     "type": "array",
     "items": {
      "$ref": "Read"
     }
    }
   }
  },
  "SearchReferenceSetsRequest": {
   "id": "SearchReferenceSetsRequest",
   "type": "object",
   "properties": {
    "md5checksums": {
     "type": "array",
     "description": "If present, return reference sets for which the md5checksum matches exactly.",
     "items": {
      "type": "string"
     }
    },
    "accessions": {
     "type": "array",
     "description": "If present, return reference sets for which a prefix of any of sourceAccessions match any of these strings. Accession numbers typically have a main number and a version, for example `NC_000001.11`.",
     "items": {
      "type": "string"
     }
    },
    "assemblyId": {
     "type": "string",
     "description": "If present, return reference sets for which a substring of their `assemblyId` matches this string (case insensitive)."
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.",
     "format": "int32"
    }
   }
  },
  "SearchReferenceSetsResponse": {
   "id": "SearchReferenceSetsResponse",
   "type": "object",
   "properties": {
    "referenceSets": {
     "type": "array",
     "description": "The matching references sets.",
     "items": {
      "$ref": "ReferenceSet"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "ReferenceSet": {
   "id": "ReferenceSet",
   "type": "object",
   "description": "A reference set is a set of references which typically comprise a reference assembly for a species, such as `GRCh38` which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated reference set ID, unique across all reference sets."
    },
    "referenceIds": {
     "type": "array",
     "description": "The IDs of the reference objects that are part of this set. `Reference.md5checksum` must be unique within this set.",
     "items": {
      "type": "string"
     }
    },
    "md5checksum": {
     "type": "string",
     "description": "Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string `reference.md5checksum` (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format."
    },
    "ncbiTaxonId": {
     "type": "integer",
     "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human) indicating the species which this reference set is intended to model. Note that contained references may specify a different `ncbiTaxonId`, as assemblies may contain reference sequences which do not belong to the modeled species, for example EBV in a human reference genome.",
     "format": "int32"
    },
    "description": {
     "type": "string",
     "description": "Free text description of this reference set."
    },
    "assemblyId": {
     "type": "string",
     "description": "Public id of this reference set, such as `GRCh37`."
    },
    "sourceUri": {
     "type": "string",
     "description": "The URI from which the references were obtained."
    },
    "sourceAccessions": {
     "type": "array",
     "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `NC_000001.11`.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "SearchReferencesRequest": {
   "id": "SearchReferencesRequest",
   "type": "object",
   "properties": {
    "md5checksums": {
     "type": "array",
     "description": "If present, return references for which the md5checksum matches exactly.",
     "items": {
      "type": "string"
     }
    },
    "accessions": {
     "type": "array",
     "description": "If present, return references for which a prefix of any of sourceAccessions match any of these strings. Accession numbers typically have a main number and a version, for example `GCF_000001405.26`.",
     "items": {
      "type": "string"
     }
    },
    "referenceSetId": {
     "type": "string",
     "description": "If present, return only references which belong to this reference set."
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.",
     "format": "int32"
    }
   }
  },
  "SearchReferencesResponse": {
   "id": "SearchReferencesResponse",
   "type": "object",
   "properties": {
    "references": {
     "type": "array",
     "description": "The matching references.",
     "items": {
      "$ref": "Reference"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "Reference": {
   "id": "Reference",
   "type": "object",
   "description": "A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated reference ID, unique across all references."
    },
    "length": {
     "type": "string",
     "description": "The length of this reference's sequence.",
     "format": "int64"
    },
    "md5checksum": {
     "type": "string",
     "description": "MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format."
    },
    "name": {
     "type": "string",
     "description": "The name of this reference, for example `22`."
    },
    "sourceUri": {
     "type": "string",
     "description": "The URI from which the sequence was obtained. Typically specifies a FASTA format file."
    },
    "sourceAccessions": {
     "type": "array",
     "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `GCF_000001405.26`.",
     "items": {
      "type": "string"
     }
    },
    "ncbiTaxonId": {
     "type": "integer",
     "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.",
     "format": "int32"
    }
   }
  },
  "ListBasesResponse": {
   "id": "ListBasesResponse",
   "type": "object",
   "properties": {
    "offset": {
     "type": "string",
     "description": "The offset position (0-based) of the given `sequence` from the start of this `Reference`. This value will differ for each page in a paginated request.",
     "format": "int64"
    },
    "sequence": {
     "type": "string",
     "description": "A substring of the bases that make up this reference."
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "ImportVariantsRequest": {
   "id": "ImportVariantsRequest",
   "type": "object",
   "description": "The variant data import request.",
   "properties": {
    "variantSetId": {
     "type": "string",
     "description": "Required. The variant set to which variant data should be imported."
    },
    "sourceUris": {
     "type": "array",
     "description": "A list of URIs referencing variant files in Google Cloud Storage. URIs can include wildcards [as described here](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames). Note that recursive wildcards ('**') are not supported.",
     "items": {
      "type": "string"
     }
    },
    "format": {
     "type": "string",
     "description": "The format of the variant data being imported. If unspecified, defaults to to `VCF`.",
     "enum": [
      "FORMAT_UNSPECIFIED",
      "FORMAT_VCF",
      "FORMAT_COMPLETE_GENOMICS"
     ]
    },
    "normalizeReferenceNames": {
     "type": "boolean",
     "description": "Convert reference names to the canonical representation. hg19 haploytypes (those reference names containing \"_hap\") are not modified in any way. All other reference names are modified according to the following rules: The reference name is capitalized. The \"chr\" prefix is dropped for all autosomes and sex chromsomes. For example \"chr17\" becomes \"17\" and \"chrX\" becomes \"X\". All mitochondrial chromosomes (\"chrM\", \"chrMT\", etc) become \"MT\"."
    },
    "infoMergeConfig": {
     "type": "object",
     "description": "A mapping between info field keys and the InfoMergeOperations to be performed on them. This is plumbed down to the MergeVariantRequests generated by the resulting import job.",
     "additionalProperties": {
      "type": "string",
      "enum": [
       "INFO_MERGE_OPERATION_UNSPECIFIED",
       "IGNORE_NEW",
       "MOVE_TO_CALLS"
      ]
     }
    }
   }
  },
  "VariantSet": {
   "id": "VariantSet",
   "type": "object",
   "description": "A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "datasetId": {
     "type": "string",
     "description": "The dataset to which this variant set belongs."
    },
    "id": {
     "type": "string",
     "description": "The server-generated variant set ID, unique across all variant sets."
    },
    "referenceSetId": {
     "type": "string",
     "description": "The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc."
    },
    "referenceBounds": {
     "type": "array",
     "description": "A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.",
     "items": {
      "$ref": "ReferenceBound"
     }
    },
    "metadata": {
     "type": "array",
     "description": "The metadata associated with this variant set.",
     "items": {
      "$ref": "VariantSetMetadata"
     }
    },
    "name": {
     "type": "string",
     "description": "User-specified, mutable name."
    },
    "description": {
     "type": "string",
     "description": "A textual description of this variant set."
    }
   }
  },
  "ReferenceBound": {
   "id": "ReferenceBound",
   "type": "object",
   "description": "ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.",
   "properties": {
    "referenceName": {
     "type": "string",
     "description": "The name of the reference associated with this reference bound."
    },
    "upperBound": {
     "type": "string",
     "description": "An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.",
     "format": "int64"
    }
   }
  },
  "VariantSetMetadata": {
   "id": "VariantSetMetadata",
   "type": "object",
   "description": "Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.",
   "properties": {
    "key": {
     "type": "string",
     "description": "The top-level key."
    },
    "value": {
     "type": "string",
     "description": "The value field for simple metadata"
    },
    "id": {
     "type": "string",
     "description": "User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent."
    },
    "type": {
     "type": "string",
     "description": "The type of data. Possible types include: Integer, Float, Flag, Character, and String.",
     "enum": [
      "TYPE_UNSPECIFIED",
      "INTEGER",
      "FLOAT",
      "FLAG",
      "CHARACTER",
      "STRING"
     ]
    },
    "number": {
     "type": "string",
     "description": "The number of values that can be included in a field described by this metadata."
    },
    "description": {
     "type": "string",
     "description": "A textual description of this metadata."
    },
    "info": {
     "type": "object",
     "description": "Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "ExportVariantSetRequest": {
   "id": "ExportVariantSetRequest",
   "type": "object",
   "description": "The variant data export request.",
   "properties": {
    "callSetIds": {
     "type": "array",
     "description": "If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.",
     "items": {
      "type": "string"
     }
    },
    "projectId": {
     "type": "string",
     "description": "Required. The Google Cloud project ID that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job."
    },
    "format": {
     "type": "string",
     "description": "The format for the exported data.",
     "enum": [
      "FORMAT_UNSPECIFIED",
      "FORMAT_BIGQUERY"
     ]
    },
    "bigqueryDataset": {
     "type": "string",
     "description": "Required. The BigQuery dataset to export data to. This dataset must already exist. Note that this is distinct from the Genomics concept of \"dataset\"."
    },
    "bigqueryTable": {
     "type": "string",
     "description": "Required. The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten."
    }
   }
  },
  "SearchVariantSetsRequest": {
   "id": "SearchVariantSetsRequest",
   "type": "object",
   "description": "The search variant sets request.",
   "properties": {
    "datasetIds": {
     "type": "array",
     "description": "Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.",
     "items": {
      "type": "string"
     }
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024.",
     "format": "int32"
    }
   }
  },
  "SearchVariantSetsResponse": {
   "id": "SearchVariantSetsResponse",
   "type": "object",
   "description": "The search variant sets response.",
   "properties": {
    "variantSets": {
     "type": "array",
     "description": "The variant sets belonging to the requested dataset.",
     "items": {
      "$ref": "VariantSet"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "SearchVariantsRequest": {
   "id": "SearchVariantsRequest",
   "type": "object",
   "description": "The variant search request.",
   "properties": {
    "variantSetIds": {
     "type": "array",
     "description": "At most one variant set ID must be provided. Only variants from this variant set will be returned. If omitted, a call set id must be included in the request.",
     "items": {
      "type": "string"
     }
    },
    "variantName": {
     "type": "string",
     "description": "Only return variants which have exactly this name."
    },
    "callSetIds": {
     "type": "array",
     "description": "Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all.",
     "items": {
      "type": "string"
     }
    },
    "referenceName": {
     "type": "string",
     "description": "Required. Only return variants in this reference sequence."
    },
    "start": {
     "type": "string",
     "description": "The beginning of the window (0-based, inclusive) for which overlapping variants should be returned. If unspecified, defaults to 0.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end of the window, 0-based exclusive. If unspecified or 0, defaults to the length of the reference.",
     "format": "int64"
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of variants to return in a single page. If unspecified, defaults to 5000. The maximum value is 10000.",
     "format": "int32"
    },
    "maxCalls": {
     "type": "integer",
     "description": "The maximum number of calls to return in a single page. Note that this limit may be exceeded in the event that a matching variant contains more calls than the requested maximum. If unspecified, defaults to 5000. The maximum value is 10000.",
     "format": "int32"
    }
   }
  },
  "SearchVariantsResponse": {
   "id": "SearchVariantsResponse",
   "type": "object",
   "description": "The variant search response.",
   "properties": {
    "variants": {
     "type": "array",
     "description": "The list of matching Variants.",
     "items": {
      "$ref": "Variant"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "Variant": {
   "id": "Variant",
   "type": "object",
   "description": "A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.",
   "properties": {
    "variantSetId": {
     "type": "string",
     "description": "The ID of the variant set this variant belongs to."
    },
    "id": {
     "type": "string",
     "description": "The server-generated variant ID, unique across all variants."
    },
    "names": {
     "type": "array",
     "description": "Names for the variant, for example a RefSNP ID.",
     "items": {
      "type": "string"
     }
    },
    "created": {
     "type": "string",
     "description": "The date this variant was created, in milliseconds from the epoch.",
     "format": "int64"
    },
    "referenceName": {
     "type": "string",
     "description": "The reference on which this variant occurs. (such as `chr20` or `X`)"
    },
    "start": {
     "type": "string",
     "description": "The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.",
     "format": "int64"
    },
    "referenceBases": {
     "type": "string",
     "description": "The reference bases for this variant. They start at the given position."
    },
    "alternateBases": {
     "type": "array",
     "description": "The bases that appear instead of the reference bases.",
     "items": {
      "type": "string"
     }
    },
    "quality": {
     "type": "number",
     "description": "A measure of how likely this variant is to be real. A higher value is better.",
     "format": "double"
    },
    "filter": {
     "type": "array",
     "description": "A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.",
     "items": {
      "type": "string"
     }
    },
    "info": {
     "type": "object",
     "description": "A map of additional variant information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    },
    "calls": {
     "type": "array",
     "description": "The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.",
     "items": {
      "$ref": "VariantCall"
     }
    }
   }
  },
  "VariantCall": {
   "id": "VariantCall",
   "type": "object",
   "description": "A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.",
   "properties": {
    "callSetId": {
     "type": "string",
     "description": "The ID of the call set this variant call belongs to."
    },
    "callSetName": {
     "type": "string",
     "description": "The name of the call set this variant call belongs to."
    },
    "genotype": {
     "type": "array",
     "description": "The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `[\"A\", \"C\"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.",
     "items": {
      "type": "integer",
      "format": "int32"
     }
    },
    "phaseset": {
     "type": "string",
     "description": "If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`."
    },
    "genotypeLikelihood": {
     "type": "array",
     "description": "The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.",
     "items": {
      "type": "number",
      "format": "double"
     }
    },
    "info": {
     "type": "object",
     "description": "A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "MergeVariantsRequest": {
   "id": "MergeVariantsRequest",
   "type": "object",
   "properties": {
    "variantSetId": {
     "type": "string",
     "description": "The destination variant set."
    },
    "variants": {
     "type": "array",
     "description": "The variants to be merged with existing variants.",
     "items": {
      "$ref": "Variant"
     }
    },
    "infoMergeConfig": {
     "type": "object",
     "description": "A mapping between info field keys and the InfoMergeOperations to be performed on them.",
     "additionalProperties": {
      "type": "string",
      "enum": [
       "INFO_MERGE_OPERATION_UNSPECIFIED",
       "IGNORE_NEW",
       "MOVE_TO_CALLS"
      ]
     }
    }
   }
  },
  "SearchCallSetsRequest": {
   "id": "SearchCallSetsRequest",
   "type": "object",
   "description": "The call set search request.",
   "properties": {
    "variantSetIds": {
     "type": "array",
     "description": "Restrict the query to call sets within the given variant sets. At least one ID must be provided.",
     "items": {
      "type": "string"
     }
    },
    "name": {
     "type": "string",
     "description": "Only return call sets for which a substring of the name matches this string."
    },
    "pageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response."
    },
    "pageSize": {
     "type": "integer",
     "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024.",
     "format": "int32"
    }
   }
  },
  "SearchCallSetsResponse": {
   "id": "SearchCallSetsResponse",
   "type": "object",
   "description": "The call set search response.",
   "properties": {
    "callSets": {
     "type": "array",
     "description": "The list of matching call sets.",
     "items": {
      "$ref": "CallSet"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results."
    }
   }
  },
  "CallSet": {
   "id": "CallSet",
   "type": "object",
   "description": "A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
   "properties": {
    "id": {
     "type": "string",
     "description": "The server-generated call set ID, unique across all call sets."
    },
    "name": {
     "type": "string",
     "description": "The call set name."
    },
    "sampleId": {
     "type": "string",
     "description": "The sample ID this call set corresponds to."
    },
    "variantSetIds": {
     "type": "array",
     "description": "The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).",
     "items": {
      "type": "string"
     }
    },
    "created": {
     "type": "string",
     "description": "The date this call set was created in milliseconds from the epoch.",
     "format": "int64"
    },
    "info": {
     "type": "object",
     "description": "A map of additional call set information. This must be of the form map (string key mapping to a list of string values).",
     "additionalProperties": {
      "type": "array",
      "items": {
       "type": "any"
      }
     }
    }
   }
  },
  "StreamVariantsRequest": {
   "id": "StreamVariantsRequest",
   "type": "object",
   "description": "The stream variants request.",
   "properties": {
    "projectId": {
     "type": "string",
     "description": "The Google Cloud project ID which will be billed for this access. The caller must have WRITE access to this project. Required."
    },
    "variantSetId": {
     "type": "string",
     "description": "The variant set ID from which to stream variants."
    },
    "callSetIds": {
     "type": "array",
     "description": "Only return variant calls which belong to call sets with these IDs. Leaving this blank returns all variant calls.",
     "items": {
      "type": "string"
     }
    },
    "referenceName": {
     "type": "string",
     "description": "Required. Only return variants in this reference sequence."
    },
    "start": {
     "type": "string",
     "description": "The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.",
     "format": "int64"
    },
    "end": {
     "type": "string",
     "description": "The end of the window (0-based, exclusive) for which overlapping variants should be returned.",
     "format": "int64"
    }
   }
  },
  "StreamVariantsResponse": {
   "id": "StreamVariantsResponse",
   "type": "object",
   "properties": {
    "variants": {
     "type": "array",
     "items": {
      "$ref": "Variant"
     }
    }
   }
  },
  "ImportReadGroupSetsResponse": {
   "id": "ImportReadGroupSetsResponse",
   "type": "object",
   "description": "The read group set import response.",
   "properties": {
    "readGroupSetIds": {
     "type": "array",
     "description": "IDs of the read group sets that were created.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "ImportVariantsResponse": {
   "id": "ImportVariantsResponse",
   "type": "object",
   "description": "The variant data import response.",
   "properties": {
    "callSetIds": {
     "type": "array",
     "description": "IDs of the call sets created during the import.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "OperationMetadata": {
   "id": "OperationMetadata",
   "type": "object",
   "description": "Metadata describing an Operation.",
   "properties": {
    "projectId": {
     "type": "string",
     "description": "The Google Cloud Project in which the job is scoped."
    },
    "createTime": {
     "type": "string",
     "description": "The time at which the job was submitted to the Genomics service."
    },
    "startTime": {
     "type": "string",
     "description": "The time at which the job began to run."
    },
    "endTime": {
     "type": "string",
     "description": "The time at which the job stopped running."
    },
    "request": {
     "type": "object",
     "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.",
     "additionalProperties": {
      "type": "any",
      "description": "Properties of the object. Contains field @type with type URL."
     }
    },
    "events": {
     "type": "array",
     "description": "Optional event messages that were generated during the job's execution. This also contains any warnings that were generated during import or export.",
     "items": {
      "$ref": "OperationEvent"
     }
    },
    "clientId": {
     "type": "string",
     "description": "This field is deprecated. Use `labels` instead. Optionally provided by the caller when submitting the request that creates the operation."
    },
    "runtimeMetadata": {
     "type": "object",
     "description": "Runtime metadata on this Operation.",
     "additionalProperties": {
      "type": "any",
      "description": "Properties of the object. Contains field @type with type URL."
     }
    },
    "labels": {
     "type": "object",
     "description": "Optionally provided by the caller when submitting the request that creates the operation.",
     "additionalProperties": {
      "type": "string"
     }
    }
   }
  },
  "OperationEvent": {
   "id": "OperationEvent",
   "type": "object",
   "description": "An event that occurred during an Operation.",
   "properties": {
    "startTime": {
     "type": "string",
     "description": "Optional time of when event started."
    },
    "endTime": {
     "type": "string",
     "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."
    },
    "description": {
     "type": "string",
     "description": "Required description of event."
    }
   }
  },
  "RuntimeMetadata": {
   "id": "RuntimeMetadata",
   "type": "object",
   "description": "Runtime metadata that will be populated in the runtimeMetadata field of the Operation associated with a RunPipeline execution.",
   "properties": {
    "computeEngine": {
     "$ref": "ComputeEngine",
     "description": "Execution information specific to Google Compute Engine."
    }
   }
  },
  "ComputeEngine": {
   "id": "ComputeEngine",
   "type": "object",
   "description": "Describes a Compute Engine resource that is being managed by a running pipeline.",
   "properties": {
    "instanceName": {
     "type": "string",
     "description": "The instance on which the operation is running."
    },
    "zone": {
     "type": "string",
     "description": "The availability zone in which the instance resides."
    },
    "machineType": {
     "type": "string",
     "description": "The machine type of the instance."
    },
    "diskNames": {
     "type": "array",
     "description": "The names of the disks that were created for this pipeline.",
     "items": {
      "type": "string"
     }
    }
   }
  }
 },
 "resources": {
  "annotationsets": {
   "methods": {
    "create": {
     "id": "genomics.annotationsets.create",
     "path": "v1/annotationsets",
     "httpMethod": "POST",
     "description": "Creates a new annotation set. Caller must have WRITE permission for the associated dataset. The following fields are required: * datasetId * referenceSetId All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field).",
     "request": {
      "$ref": "AnnotationSet"
     },
     "response": {
      "$ref": "AnnotationSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.annotationsets.get",
     "path": "v1/annotationsets/{annotationSetId}",
     "httpMethod": "GET",
     "description": "Gets an annotation set. Caller must have READ permission for the associated dataset.",
     "parameters": {
      "annotationSetId": {
       "type": "string",
       "description": "The ID of the annotation set to be retrieved.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "annotationSetId"
     ],
     "response": {
      "$ref": "AnnotationSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "update": {
     "id": "genomics.annotationsets.update",
     "path": "v1/annotationsets/{annotationSetId}",
     "httpMethod": "PUT",
     "description": "Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.",
     "parameters": {
      "annotationSetId": {
       "type": "string",
       "description": "The ID of the annotation set to be updated.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. Mutable fields are name, source_uri, and info. If unspecified, all mutable fields will be updated.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "annotationSetId"
     ],
     "request": {
      "$ref": "AnnotationSet"
     },
     "response": {
      "$ref": "AnnotationSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.annotationsets.delete",
     "path": "v1/annotationsets/{annotationSetId}",
     "httpMethod": "DELETE",
     "description": "Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.",
     "parameters": {
      "annotationSetId": {
       "type": "string",
       "description": "The ID of the annotation set to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "annotationSetId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "search": {
     "id": "genomics.annotationsets.search",
     "path": "v1/annotationsets/search",
     "httpMethod": "POST",
     "description": "Searches for annotation sets that match the given criteria. Annotation sets are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotation sets in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried datasets.",
     "request": {
      "$ref": "SearchAnnotationSetsRequest"
     },
     "response": {
      "$ref": "SearchAnnotationSetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   }
  },
  "annotations": {
   "methods": {
    "create": {
     "id": "genomics.annotations.create",
     "path": "v1/annotations",
     "httpMethod": "POST",
     "description": "Creates a new annotation. Caller must have WRITE permission for the associated annotation set. The following fields are required: * annotationSetId * referenceName or referenceId ### Transcripts For annotations of type TRANSCRIPT, the following fields of transcript must be provided: * exons.start * exons.end All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field). The annotated range must be no longer than 100Mbp (mega base pairs). See the Annotation resource for additional restrictions on each field.",
     "request": {
      "$ref": "Annotation"
     },
     "response": {
      "$ref": "Annotation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "batchCreate": {
     "id": "genomics.annotations.batchCreate",
     "path": "v1/annotations:batchCreate",
     "httpMethod": "POST",
     "description": "Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together. If the request has a systemic issue, such as an attempt to write to an inaccessible annotation set, the entire RPC will fail accordingly. For lesser data issues, when possible an error will be isolated to the corresponding batch entry in the response; the remaining well formed annotations will be created normally. For details on the requirements for each individual annotation resource, see CreateAnnotation.",
     "request": {
      "$ref": "BatchCreateAnnotationsRequest"
     },
     "response": {
      "$ref": "BatchCreateAnnotationsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.annotations.get",
     "path": "v1/annotations/{annotationId}",
     "httpMethod": "GET",
     "description": "Gets an annotation. Caller must have READ permission for the associated annotation set.",
     "parameters": {
      "annotationId": {
       "type": "string",
       "description": "The ID of the annotation to be retrieved.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "annotationId"
     ],
     "response": {
      "$ref": "Annotation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "update": {
     "id": "genomics.annotations.update",
     "path": "v1/annotations/{annotationId}",
     "httpMethod": "PUT",
     "description": "Updates an annotation. Caller must have WRITE permission for the associated dataset.",
     "parameters": {
      "annotationId": {
       "type": "string",
       "description": "The ID of the annotation to be updated.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. Mutable fields are name, variant, transcript, and info. If unspecified, all mutable fields will be updated.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "annotationId"
     ],
     "request": {
      "$ref": "Annotation"
     },
     "response": {
      "$ref": "Annotation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.annotations.delete",
     "path": "v1/annotations/{annotationId}",
     "httpMethod": "DELETE",
     "description": "Deletes an annotation. Caller must have WRITE permission for the associated annotation set.",
     "parameters": {
      "annotationId": {
       "type": "string",
       "description": "The ID of the annotation to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "annotationId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "search": {
     "id": "genomics.annotations.search",
     "path": "v1/annotations/search",
     "httpMethod": "POST",
     "description": "Searches for annotations that match the given criteria. Results are ordered by genomic coordinate (by reference sequence, then position). Annotations with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotations in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried annotation sets.",
     "request": {
      "$ref": "SearchAnnotationsRequest"
     },
     "response": {
      "$ref": "SearchAnnotationsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   }
  },
  "datasets": {
   "methods": {
    "list": {
     "id": "genomics.datasets.list",
     "path": "v1/datasets",
     "httpMethod": "GET",
     "description": "Lists datasets within a project. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "projectId": {
       "type": "string",
       "description": "Required. The Google Cloud project ID to list datasets for.",
       "location": "query"
      },
      "pageSize": {
       "type": "integer",
       "description": "The maximum number of results to return in a single page. If unspecified, defaults to 50. The maximum value is 1024.",
       "format": "int32",
       "location": "query"
      },
      "pageToken": {
       "type": "string",
       "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.",
       "location": "query"
      }
     },
     "response": {
      "$ref": "ListDatasetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "create": {
     "id": "genomics.datasets.create",
     "path": "v1/datasets",
     "httpMethod": "POST",
     "description": "Creates a new dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "request": {
      "$ref": "Dataset"
     },
     "response": {
      "$ref": "Dataset"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.datasets.get",
     "path": "v1/datasets/{datasetId}",
     "httpMethod": "GET",
     "description": "Gets a dataset by ID. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "datasetId": {
       "type": "string",
       "description": "The ID of the dataset.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "datasetId"
     ],
     "response": {
      "$ref": "Dataset"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "patch": {
     "id": "genomics.datasets.patch",
     "path": "v1/datasets/{datasetId}",
     "httpMethod": "PATCH",
     "description": "Updates a dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.",
     "parameters": {
      "datasetId": {
       "type": "string",
       "description": "The ID of the dataset to be updated.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. At this time, the only mutable field is name. The only acceptable value is \"name\". If unspecified, all mutable fields will be updated.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "datasetId"
     ],
     "request": {
      "$ref": "Dataset"
     },
     "response": {
      "$ref": "Dataset"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.datasets.delete",
     "path": "v1/datasets/{datasetId}",
     "httpMethod": "DELETE",
     "description": "Deletes a dataset and all of its contents (all read group sets, reference sets, variant sets, call sets, annotation sets, etc.) This is reversible (up to one week after the deletion) via the datasets.undelete operation. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "datasetId": {
       "type": "string",
       "description": "The ID of the dataset to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "datasetId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "undelete": {
     "id": "genomics.datasets.undelete",
     "path": "v1/datasets/{datasetId}:undelete",
     "httpMethod": "POST",
     "description": "Undeletes a dataset by restoring a dataset which was deleted via this API. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This operation is only possible for a week after the deletion occurred.",
     "parameters": {
      "datasetId": {
       "type": "string",
       "description": "The ID of the dataset to be undeleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "datasetId"
     ],
     "request": {
      "$ref": "UndeleteDatasetRequest"
     },
     "response": {
      "$ref": "Dataset"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "setIamPolicy": {
     "id": "genomics.datasets.setIamPolicy",
     "path": "v1/{+resource}:setIamPolicy",
     "httpMethod": "POST",
     "description": "Sets the access control policy on the specified dataset. Replaces any existing policy. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) See Setting a Policy for more information.",
     "parameters": {
      "resource": {
       "type": "string",
       "description": "REQUIRED: The resource for which policy is being specified. Format is `datasets/`.",
       "required": true,
       "pattern": "^datasets/[^/]+$",
       "location": "path"
      }
     },
     "parameterOrder": [
      "resource"
     ],
     "request": {
      "$ref": "SetIamPolicyRequest"
     },
     "response": {
      "$ref": "Policy"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "getIamPolicy": {
     "id": "genomics.datasets.getIamPolicy",
     "path": "v1/{+resource}:getIamPolicy",
     "httpMethod": "POST",
     "description": "Gets the access control policy for the dataset. This is empty if the policy or resource does not exist. See Getting a Policy for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "resource": {
       "type": "string",
       "description": "REQUIRED: The resource for which policy is being specified. Format is `datasets/`.",
       "required": true,
       "pattern": "^datasets/[^/]+$",
       "location": "path"
      }
     },
     "parameterOrder": [
      "resource"
     ],
     "request": {
      "$ref": "GetIamPolicyRequest"
     },
     "response": {
      "$ref": "Policy"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "testIamPermissions": {
     "id": "genomics.datasets.testIamPermissions",
     "path": "v1/{+resource}:testIamPermissions",
     "httpMethod": "POST",
     "description": "Returns permissions that a caller has on the specified resource. See Testing Permissions for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "resource": {
       "type": "string",
       "description": "REQUIRED: The resource for which policy is being specified. Format is `datasets/`.",
       "required": true,
       "pattern": "^datasets/[^/]+$",
       "location": "path"
      }
     },
     "parameterOrder": [
      "resource"
     ],
     "request": {
      "$ref": "TestIamPermissionsRequest"
     },
     "response": {
      "$ref": "TestIamPermissionsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    }
   }
  },
  "operations": {
   "methods": {
    "list": {
     "id": "genomics.operations.list",
     "path": "v1/{+name}",
     "httpMethod": "GET",
     "description": "Lists operations that match the specified filter in the request.",
     "parameters": {
      "name": {
       "type": "string",
       "description": "The name of the operation collection.",
       "required": true,
       "pattern": "^operations$",
       "location": "path"
      },
      "filter": {
       "type": "string",
       "description": "A string for filtering Operations. 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 `= 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`",
       "location": "query"
      },
      "pageSize": {
       "type": "integer",
       "description": "The maximum number of results to return. If unspecified, defaults to 256. The maximum value is 2048.",
       "format": "int32",
       "location": "query"
      },
      "pageToken": {
       "type": "string",
       "description": "The standard list page token.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "name"
     ],
     "response": {
      "$ref": "ListOperationsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.operations.get",
     "path": "v1/{+name}",
     "httpMethod": "GET",
     "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.",
     "parameters": {
      "name": {
       "type": "string",
       "description": "The name of the operation resource.",
       "required": true,
       "pattern": "^operations/.+$",
       "location": "path"
      }
     },
     "parameterOrder": [
      "name"
     ],
     "response": {
      "$ref": "Operation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "cancel": {
     "id": "genomics.operations.cancel",
     "path": "v1/{+name}:cancel",
     "httpMethod": "POST",
     "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.",
     "parameters": {
      "name": {
       "type": "string",
       "description": "The name of the operation resource to be cancelled.",
       "required": true,
       "pattern": "^operations/.+$",
       "location": "path"
      }
     },
     "parameterOrder": [
      "name"
     ],
     "request": {
      "$ref": "CancelOperationRequest"
     },
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    }
   }
  },
  "readgroupsets": {
   "methods": {
    "import": {
     "id": "genomics.readgroupsets.import",
     "path": "v1/readgroupsets:import",
     "httpMethod": "POST",
     "description": "Creates read group sets by asynchronously importing the provided information. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The caller must have WRITE permissions to the dataset. ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import - Tags will be converted to strings - tag types are not preserved - Comments (`@CO`) in the input file header will not be preserved - Original header order of references (`@SQ`) will not be preserved - Any reverse stranded unmapped reads will be reverse complemented, and their qualities (also the \"BQ\" and \"OQ\" tags, if any) will be reversed - Unmapped reads will be stripped of positional information (reference name and position)",
     "request": {
      "$ref": "ImportReadGroupSetsRequest"
     },
     "response": {
      "$ref": "Operation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/devstorage.read_write",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "export": {
     "id": "genomics.readgroupsets.export",
     "path": "v1/readgroupsets/{readGroupSetId}:export",
     "httpMethod": "POST",
     "description": "Exports a read group set to a BAM file in Google Cloud Storage. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. See ImportReadGroupSets for caveats.",
     "parameters": {
      "readGroupSetId": {
       "type": "string",
       "description": "Required. The ID of the read group set to export. The caller must have READ access to this read group set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "readGroupSetId"
     ],
     "request": {
      "$ref": "ExportReadGroupSetRequest"
     },
     "response": {
      "$ref": "Operation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/devstorage.read_write",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "search": {
     "id": "genomics.readgroupsets.search",
     "path": "v1/readgroupsets/search",
     "httpMethod": "POST",
     "description": "Searches for read group sets matching the criteria. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).",
     "request": {
      "$ref": "SearchReadGroupSetsRequest"
     },
     "response": {
      "$ref": "SearchReadGroupSetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "patch": {
     "id": "genomics.readgroupsets.patch",
     "path": "v1/readgroupsets/{readGroupSetId}",
     "httpMethod": "PATCH",
     "description": "Updates a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.",
     "parameters": {
      "readGroupSetId": {
       "type": "string",
       "description": "The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. Supported fields: * name. * referenceSetId. Leaving `updateMask` unset is equivalent to specifying all mutable fields.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "readGroupSetId"
     ],
     "request": {
      "$ref": "ReadGroupSet"
     },
     "response": {
      "$ref": "ReadGroupSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.readgroupsets.delete",
     "path": "v1/readgroupsets/{readGroupSetId}",
     "httpMethod": "DELETE",
     "description": "Deletes a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "readGroupSetId": {
       "type": "string",
       "description": "The ID of the read group set to be deleted. The caller must have WRITE permissions to the dataset associated with this read group set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "readGroupSetId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.readgroupsets.get",
     "path": "v1/readgroupsets/{readGroupSetId}",
     "httpMethod": "GET",
     "description": "Gets a read group set by ID. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "readGroupSetId": {
       "type": "string",
       "description": "The ID of the read group set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "readGroupSetId"
     ],
     "response": {
      "$ref": "ReadGroupSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   },
   "resources": {
    "coveragebuckets": {
     "methods": {
      "list": {
       "id": "genomics.readgroupsets.coveragebuckets.list",
       "path": "v1/readgroupsets/{readGroupSetId}/coveragebuckets",
       "httpMethod": "GET",
       "description": "Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.",
       "parameters": {
        "readGroupSetId": {
         "type": "string",
         "description": "Required. The ID of the read group set over which coverage is requested.",
         "required": true,
         "location": "path"
        },
        "referenceName": {
         "type": "string",
         "description": "The name of the reference to query, within the reference set associated with this query. Optional.",
         "location": "query"
        },
        "start": {
         "type": "string",
         "description": "The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified. Defaults to 0.",
         "format": "int64",
         "location": "query"
        },
        "end": {
         "type": "string",
         "description": "The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified. If unset or 0, defaults to the length of the reference.",
         "format": "int64",
         "location": "query"
        },
        "targetBucketWidth": {
         "type": "string",
         "description": "The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as `bucketWidth` in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed `bucketWidth` is currently 2048 base pairs; this is subject to change.",
         "format": "int64",
         "location": "query"
        },
        "pageToken": {
         "type": "string",
         "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.",
         "location": "query"
        },
        "pageSize": {
         "type": "integer",
         "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.",
         "format": "int32",
         "location": "query"
        }
       },
       "parameterOrder": [
        "readGroupSetId"
       ],
       "response": {
        "$ref": "ListCoverageBucketsResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/genomics",
        "https://www.googleapis.com/auth/genomics.readonly"
       ]
      }
     }
    }
   }
  },
  "reads": {
   "methods": {
    "search": {
     "id": "genomics.reads.search",
     "path": "v1/reads/search",
     "httpMethod": "POST",
     "description": "Gets a list of reads for one or more read group sets. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned. If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads. All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (by reference sequence, then position). Reads with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield reads in the same order across their respective streams of paginated responses. Implements [GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).",
     "request": {
      "$ref": "SearchReadsRequest"
     },
     "response": {
      "$ref": "SearchReadsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "stream": {
     "id": "genomics.reads.stream",
     "path": "v1/reads:stream",
     "httpMethod": "POST",
     "description": "Returns a stream of all the reads matching the search request, ordered by reference name, position, and ID.",
     "request": {
      "$ref": "StreamReadsRequest"
     },
     "response": {
      "$ref": "StreamReadsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    }
   }
  },
  "referencesets": {
   "methods": {
    "search": {
     "id": "genomics.referencesets.search",
     "path": "v1/referencesets/search",
     "httpMethod": "POST",
     "description": "Searches for reference sets which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)",
     "request": {
      "$ref": "SearchReferenceSetsRequest"
     },
     "response": {
      "$ref": "SearchReferenceSetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "get": {
     "id": "genomics.referencesets.get",
     "path": "v1/referencesets/{referenceSetId}",
     "httpMethod": "GET",
     "description": "Gets a reference set. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).",
     "parameters": {
      "referenceSetId": {
       "type": "string",
       "description": "The ID of the reference set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "referenceSetId"
     ],
     "response": {
      "$ref": "ReferenceSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   }
  },
  "references": {
   "methods": {
    "search": {
     "id": "genomics.references.search",
     "path": "v1/references/search",
     "httpMethod": "POST",
     "description": "Searches for references which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).",
     "request": {
      "$ref": "SearchReferencesRequest"
     },
     "response": {
      "$ref": "SearchReferencesResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "get": {
     "id": "genomics.references.get",
     "path": "v1/references/{referenceId}",
     "httpMethod": "GET",
     "description": "Gets a reference. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).",
     "parameters": {
      "referenceId": {
       "type": "string",
       "description": "The ID of the reference.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "referenceId"
     ],
     "response": {
      "$ref": "Reference"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   },
   "resources": {
    "bases": {
     "methods": {
      "list": {
       "id": "genomics.references.bases.list",
       "path": "v1/references/{referenceId}/bases",
       "httpMethod": "GET",
       "description": "Lists the bases in a reference, optionally restricted to a range. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).",
       "parameters": {
        "referenceId": {
         "type": "string",
         "description": "The ID of the reference.",
         "required": true,
         "location": "path"
        },
        "start": {
         "type": "string",
         "description": "The start position (0-based) of this query. Defaults to 0.",
         "format": "int64",
         "location": "query"
        },
        "end": {
         "type": "string",
         "description": "The end position (0-based, exclusive) of this query. Defaults to the length of this reference.",
         "format": "int64",
         "location": "query"
        },
        "pageToken": {
         "type": "string",
         "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.",
         "location": "query"
        },
        "pageSize": {
         "type": "integer",
         "description": "The maximum number of bases to return in a single page. If unspecified, defaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base pairs).",
         "format": "int32",
         "location": "query"
        }
       },
       "parameterOrder": [
        "referenceId"
       ],
       "response": {
        "$ref": "ListBasesResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/genomics",
        "https://www.googleapis.com/auth/genomics.readonly"
       ]
      }
     }
    }
   }
  },
  "variants": {
   "methods": {
    "import": {
     "id": "genomics.variants.import",
     "path": "v1/variants:import",
     "httpMethod": "POST",
     "description": "Creates variant data by asynchronously importing the provided information. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The variants for import will be merged with any existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant, and Variant info fields are merged as specified in infoMergeConfig. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.",
     "request": {
      "$ref": "ImportVariantsRequest"
     },
     "response": {
      "$ref": "Operation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/devstorage.read_write",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "search": {
     "id": "genomics.variants.search",
     "path": "v1/variants/search",
     "httpMethod": "POST",
     "description": "Gets a list of variants matching the criteria. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).",
     "request": {
      "$ref": "SearchVariantsRequest"
     },
     "response": {
      "$ref": "SearchVariantsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "create": {
     "id": "genomics.variants.create",
     "path": "v1/variants",
     "httpMethod": "POST",
     "description": "Creates a new variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "request": {
      "$ref": "Variant"
     },
     "response": {
      "$ref": "Variant"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "patch": {
     "id": "genomics.variants.patch",
     "path": "v1/variants/{variantId}",
     "httpMethod": "PATCH",
     "description": "Updates a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics. Returns the modified variant without its calls.",
     "parameters": {
      "variantId": {
       "type": "string",
       "description": "The ID of the variant to be updated.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. At this time, mutable fields are names and info. Acceptable values are \"names\" and \"info\". If unspecified, all mutable fields will be updated.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "variantId"
     ],
     "request": {
      "$ref": "Variant"
     },
     "response": {
      "$ref": "Variant"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.variants.delete",
     "path": "v1/variants/{variantId}",
     "httpMethod": "DELETE",
     "description": "Deletes a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantId": {
       "type": "string",
       "description": "The ID of the variant to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "variantId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.variants.get",
     "path": "v1/variants/{variantId}",
     "httpMethod": "GET",
     "description": "Gets a variant by ID. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantId": {
       "type": "string",
       "description": "The ID of the variant.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "variantId"
     ],
     "response": {
      "$ref": "Variant"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "merge": {
     "id": "genomics.variants.merge",
     "path": "v1/variants:merge",
     "httpMethod": "POST",
     "description": "Merges the given variants with existing variants. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant. Variant info fields are merged as specified in the infoMergeConfig field of the MergeVariantsRequest. Please exercise caution when using this method! It is easy to introduce mistakes in existing variants and difficult to back out of them. For example, suppose you were trying to merge a new variant with an existing one and both variants contain calls that belong to callsets with the same callset ID. // Existing variant - irrelevant fields trimmed for clarity { \"variantSetId\": \"10473108253681171589\", \"referenceName\": \"1\", \"start\": \"10582\", \"referenceBases\": \"G\", \"alternateBases\": [ \"A\" ], \"calls\": [ { \"callSetId\": \"10473108253681171589-0\", \"callSetName\": \"CALLSET0\", \"genotype\": [ 0, 1 ], } ] } // New variant with conflicting call information { \"variantSetId\": \"10473108253681171589\", \"referenceName\": \"1\", \"start\": \"10582\", \"referenceBases\": \"G\", \"alternateBases\": [ \"A\" ], \"calls\": [ { \"callSetId\": \"10473108253681171589-0\", \"callSetName\": \"CALLSET0\", \"genotype\": [ 1, 1 ], } ] } The resulting merged variant would overwrite the existing calls with those from the new variant: { \"variantSetId\": \"10473108253681171589\", \"referenceName\": \"1\", \"start\": \"10582\", \"referenceBases\": \"G\", \"alternateBases\": [ \"A\" ], \"calls\": [ { \"callSetId\": \"10473108253681171589-0\", \"callSetName\": \"CALLSET0\", \"genotype\": [ 1, 1 ], } ] } This may be the desired outcome, but it is up to the user to determine if if that is indeed the case.",
     "request": {
      "$ref": "MergeVariantsRequest"
     },
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "stream": {
     "id": "genomics.variants.stream",
     "path": "v1/variants:stream",
     "httpMethod": "POST",
     "description": "Returns a stream of all the variants matching the search request, ordered by reference name, position, and ID.",
     "request": {
      "$ref": "StreamVariantsRequest"
     },
     "response": {
      "$ref": "StreamVariantsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    }
   }
  },
  "variantsets": {
   "methods": {
    "create": {
     "id": "genomics.variantsets.create",
     "path": "v1/variantsets",
     "httpMethod": "POST",
     "description": "Creates a new variant set. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The provided variant set must have a valid `datasetId` set - all other fields are optional. Note that the `id` field will be ignored, as this is assigned by the server.",
     "request": {
      "$ref": "VariantSet"
     },
     "response": {
      "$ref": "VariantSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "export": {
     "id": "genomics.variantsets.export",
     "path": "v1/variantsets/{variantSetId}:export",
     "httpMethod": "POST",
     "description": "Exports variant set data to an external destination. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantSetId": {
       "type": "string",
       "description": "Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "variantSetId"
     ],
     "request": {
      "$ref": "ExportVariantSetRequest"
     },
     "response": {
      "$ref": "Operation"
     },
     "scopes": [
      "https://www.googleapis.com/auth/bigquery",
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.variantsets.get",
     "path": "v1/variantsets/{variantSetId}",
     "httpMethod": "GET",
     "description": "Gets a variant set by ID. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantSetId": {
       "type": "string",
       "description": "Required. The ID of the variant set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "variantSetId"
     ],
     "response": {
      "$ref": "VariantSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "search": {
     "id": "genomics.variantsets.search",
     "path": "v1/variantsets/search",
     "httpMethod": "POST",
     "description": "Returns a list of all variant sets matching search criteria. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).",
     "request": {
      "$ref": "SearchVariantSetsRequest"
     },
     "response": {
      "$ref": "SearchVariantSetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "delete": {
     "id": "genomics.variantsets.delete",
     "path": "v1/variantsets/{variantSetId}",
     "httpMethod": "DELETE",
     "description": "Deletes a variant set including all variants, call sets, and calls within. This is not reversible. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantSetId": {
       "type": "string",
       "description": "The ID of the variant set to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "variantSetId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "patch": {
     "id": "genomics.variantsets.patch",
     "path": "v1/variantsets/{variantSetId}",
     "httpMethod": "PATCH",
     "description": "Updates a variant set using patch semantics. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "variantSetId": {
       "type": "string",
       "description": "The ID of the variant to be updated (must already exist).",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. Supported fields: * metadata. * name. * description. Leaving `updateMask` unset is equivalent to specifying all mutable fields.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "variantSetId"
     ],
     "request": {
      "$ref": "VariantSet"
     },
     "response": {
      "$ref": "VariantSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    }
   }
  },
  "callsets": {
   "methods": {
    "search": {
     "id": "genomics.callsets.search",
     "path": "v1/callsets/search",
     "httpMethod": "POST",
     "description": "Gets a list of call sets matching the criteria. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).",
     "request": {
      "$ref": "SearchCallSetsRequest"
     },
     "response": {
      "$ref": "SearchCallSetsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    },
    "create": {
     "id": "genomics.callsets.create",
     "path": "v1/callsets",
     "httpMethod": "POST",
     "description": "Creates a new call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "request": {
      "$ref": "CallSet"
     },
     "response": {
      "$ref": "CallSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "patch": {
     "id": "genomics.callsets.patch",
     "path": "v1/callsets/{callSetId}",
     "httpMethod": "PATCH",
     "description": "Updates a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.",
     "parameters": {
      "callSetId": {
       "type": "string",
       "description": "The ID of the call set to be updated.",
       "required": true,
       "location": "path"
      },
      "updateMask": {
       "type": "string",
       "description": "An optional mask specifying which fields to update. At this time, the only mutable field is name. The only acceptable value is \"name\". If unspecified, all mutable fields will be updated.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "callSetId"
     ],
     "request": {
      "$ref": "CallSet"
     },
     "response": {
      "$ref": "CallSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "delete": {
     "id": "genomics.callsets.delete",
     "path": "v1/callsets/{callSetId}",
     "httpMethod": "DELETE",
     "description": "Deletes a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "callSetId": {
       "type": "string",
       "description": "The ID of the call set to be deleted.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "callSetId"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics"
     ]
    },
    "get": {
     "id": "genomics.callsets.get",
     "path": "v1/callsets/{callSetId}",
     "httpMethod": "GET",
     "description": "Gets a call set by ID. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)",
     "parameters": {
      "callSetId": {
       "type": "string",
       "description": "The ID of the call set.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "callSetId"
     ],
     "response": {
      "$ref": "CallSet"
     },
     "scopes": [
      "https://www.googleapis.com/auth/cloud-platform",
      "https://www.googleapis.com/auth/genomics",
      "https://www.googleapis.com/auth/genomics.readonly"
     ]
    }
   }
  }
 }
}
