<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="genomics_v1.html">Genomics API</a> . <a href="genomics_v1.annotationsets.html">annotationsets</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
<p class="firstline">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).</p>
<p class="toc_element">
  <code><a href="#delete">delete(annotationSetId, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.</p>
<p class="toc_element">
  <code><a href="#get">get(annotationSetId, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an annotation set. Caller must have READ permission for the associated dataset.</p>
<p class="toc_element">
  <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
<p class="firstline">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.</p>
<p class="toc_element">
  <code><a href="#update">update(annotationSetId, body, x__xgafv=None, updateMask=None)</a></code></p>
<p class="firstline">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.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="create">create(body, x__xgafv=None)</code>
  <pre>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).

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # 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'.
  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
    "a_key": [
      "",
    ],
  },
  "name": "A String", # The display name for this annotation set.
  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
  "type": "A String", # The type of annotations contained within this set.
  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
  "datasetId": "A String", # The dataset to which this annotation set belongs.
}

  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # 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'.
    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
      "a_key": [
        "",
      ],
    },
    "name": "A String", # The display name for this annotation set.
    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
    "type": "A String", # The type of annotations contained within this set.
    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
    "datasetId": "A String", # The dataset to which this annotation set belongs.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(annotationSetId, x__xgafv=None)</code>
  <pre>Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.

Args:
  annotationSetId: string, The ID of the annotation set to be deleted. (required)
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # 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 `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(annotationSetId, x__xgafv=None)</code>
  <pre>Gets an annotation set. Caller must have READ permission for the associated dataset.

Args:
  annotationSetId: string, The ID of the annotation set to be retrieved. (required)
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # 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'.
    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
      "a_key": [
        "",
      ],
    },
    "name": "A String", # The display name for this annotation set.
    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
    "type": "A String", # The type of annotations contained within this set.
    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
    "datasetId": "A String", # The dataset to which this annotation set belongs.
  }</pre>
</div>

<div class="method">
    <code class="details" id="search">search(body, x__xgafv=None)</code>
  <pre>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.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{
    "name": "A String", # Only return annotations sets for which a substring of the name matches this string (case insensitive).
    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 128. The maximum value is 1024.
    "datasetIds": [ # Required. The dataset IDs to search within. Caller must have `READ` access to these datasets.
      "A String",
    ],
    "pageToken": "A String", # 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.
    "referenceSetId": "A String", # If specified, only annotation sets associated with the given reference set are returned.
    "types": [ # If specified, only annotation sets that have any of these types are returned.
      "A String",
    ],
  }

  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # 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.
    "annotationSets": [ # The matching annotation sets.
      { # 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'.
        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
          "a_key": [
            "",
          ],
        },
        "name": "A String", # The display name for this annotation set.
        "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
        "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
        "type": "A String", # The type of annotations contained within this set.
        "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
        "datasetId": "A String", # The dataset to which this annotation set belongs.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(annotationSetId, body, x__xgafv=None, updateMask=None)</code>
  <pre>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.

Args:
  annotationSetId: string, The ID of the annotation set to be updated. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # 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'.
  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
    "a_key": [
      "",
    ],
  },
  "name": "A String", # The display name for this annotation set.
  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
  "type": "A String", # The type of annotations contained within this set.
  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
  "datasetId": "A String", # The dataset to which this annotation set belongs.
}

  x__xgafv: string, V1 error format.
  updateMask: string, An optional mask specifying which fields to update. Mutable fields are name, source_uri, and info. If unspecified, all mutable fields will be updated.

Returns:
  An object of the form:

    { # 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'.
    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
      "a_key": [
        "",
      ],
    },
    "name": "A String", # The display name for this annotation set.
    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
    "type": "A String", # The type of annotations contained within this set.
    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
    "datasetId": "A String", # The dataset to which this annotation set belongs.
  }</pre>
</div>

</body></html>