<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_v2alpha1.html">Genomics API</a> . <a href="genomics_v2alpha1.projects.html">projects</a> . <a href="genomics_v2alpha1.projects.workers.html">workers</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#checkIn">checkIn(id, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">The worker uses this method to retrieve the assigned operation and</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="checkIn">checkIn(id, body=None, x__xgafv=None)</code>
  <pre>The worker uses this method to retrieve the assigned operation and
provide periodic status updates.

Args:
  id: string, The VM identity token for authenticating the VM instance.
https://cloud.google.com/compute/docs/instances/verifying-instance-identity (required)
  body: object, The request body.
    The object takes the form of:

{ # The parameters to the CheckIn method.
    &quot;deadlineExpired&quot;: { # A generic empty message that you can re-use to avoid defining duplicated # The deadline has expired and the worker needs more time.
        # 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 `{}`.
    },
    &quot;workerStatus&quot;: { # The status of the worker VM. # Data about the status of the worker VM.
      &quot;uptimeSeconds&quot;: &quot;A String&quot;, # System uptime.
      &quot;totalRamBytes&quot;: &quot;A String&quot;, # Total RAM.
      &quot;bootDisk&quot;: { # The status of a disk on a VM. # Status of the boot disk.
        &quot;totalSpaceBytes&quot;: &quot;A String&quot;, # Total disk space.
        &quot;freeSpaceBytes&quot;: &quot;A String&quot;, # Free disk space.
      },
      &quot;freeRamBytes&quot;: &quot;A String&quot;, # Free RAM.
      &quot;attachedDisks&quot;: { # Status of attached disks.
        &quot;a_key&quot;: { # The status of a disk on a VM.
          &quot;totalSpaceBytes&quot;: &quot;A String&quot;, # Total disk space.
          &quot;freeSpaceBytes&quot;: &quot;A String&quot;, # Free disk space.
        },
      },
    },
    &quot;events&quot;: [ # A list of timestamped events.
      { # An event that occured in the operation assigned to the
          # worker and the time of occurance.
        &quot;data&quot;: { # The event data.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
        &quot;timestamp&quot;: &quot;A String&quot;, # The time when the event happened.
      },
    ],
    &quot;result&quot;: { # The `Status` type defines a logical error model that is suitable for # The operation has finished with the given result.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      &quot;message&quot;: &quot;A String&quot;, # 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.
      &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
      ],
      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    },
    &quot;event&quot;: { # A workflow specific event occurred.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response to the CheckIn method.
    &quot;deadline&quot;: &quot;A String&quot;, # The deadline by which the worker must request an extension.  The backend
        # will allow for network transmission time and other delays, but the worker
        # must attempt to transmit the extension request no later than the deadline.
    &quot;metadata&quot;: { # The metadata that describes the operation assigned to the worker.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
  }</pre>
</div>

</body></html>