<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="dataflow_v1b3.html">Dataflow API</a> . <a href="dataflow_v1b3.projects.html">projects</a> . <a href="dataflow_v1b3.projects.jobs.html">jobs</a> . <a href="dataflow_v1b3.projects.jobs.messages.html">messages</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(projectId, jobId, pageSize=None, pageToken=None, location=None, startTime=None, minimumImportance=None, endTime=None, x__xgafv=None)</a></code></p>
<p class="firstline">Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectId, jobId, pageSize=None, pageToken=None, location=None, startTime=None, minimumImportance=None, endTime=None, x__xgafv=None)</code>
  <pre>Request the job status. To request the status of a job, we recommend using `projects.locations.jobs.messages.list` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.messages.list` is not recommended, as you can only request the status of jobs that are running in `us-central1`.

Args:
  projectId: string, A project id. (required)
  jobId: string, The job to get messages about. (required)
  pageSize: integer, If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.
  pageToken: string, If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.
  location: string, The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.
  startTime: string, If specified, return only messages with timestamps &gt;= start_time. The default is the job creation time (i.e. beginning of messages).
  minimumImportance: string, Filter to only get messages with importance &gt;= level
    Allowed values
      JOB_MESSAGE_IMPORTANCE_UNKNOWN - The message importance isn&#x27;t specified, or is unknown.
      JOB_MESSAGE_DEBUG - The message is at the &#x27;debug&#x27; level: typically only useful for software engineers working on the code the job is running. Typically, Dataflow pipeline runners do not display log messages at this level by default.
      JOB_MESSAGE_DETAILED - The message is at the &#x27;detailed&#x27; level: somewhat verbose, but potentially useful to users. Typically, Dataflow pipeline runners do not display log messages at this level by default. These messages are displayed by default in the Dataflow monitoring UI.
      JOB_MESSAGE_BASIC - The message is at the &#x27;basic&#x27; level: useful for keeping track of the execution of a Dataflow pipeline. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.
      JOB_MESSAGE_WARNING - The message is at the &#x27;warning&#x27; level: indicating a condition pertaining to a job which may require human intervention. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.
      JOB_MESSAGE_ERROR - The message is at the &#x27;error&#x27; level: indicating a condition preventing a job from succeeding. Typically, Dataflow pipeline runners display log messages at this level by default, and these messages are displayed by default in the Dataflow monitoring UI.
  endTime: string, Return only messages with timestamps &lt; end_time. The default is now (i.e. return up to the latest messages available).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response to a request to list job messages.
    &quot;autoscalingEvents&quot;: [ # Autoscaling events in ascending timestamp order.
      { # A structured message reporting an autoscaling decision made by the Dataflow service.
        &quot;workerPool&quot;: &quot;A String&quot;, # A short and friendly name for the worker pool this event refers to, populated from the value of PoolStageRelation::user_pool_name.
        &quot;targetNumWorkers&quot;: &quot;A String&quot;, # The target number of workers the worker pool wants to resize to use.
        &quot;description&quot;: { # A rich message format, including a human readable string, a key for identifying the message, and structured data associated with the message for programmatic consumption. # A message describing why the system decided to adjust the current number of workers, why it failed, or why the system decided to not make any changes to the number of workers.
          &quot;parameters&quot;: [ # The structured data associated with this message.
            { # Structured data associated with this message.
              &quot;key&quot;: &quot;A String&quot;, # Key or name for this parameter.
              &quot;value&quot;: &quot;&quot;, # Value for this parameter.
            },
          ],
          &quot;messageKey&quot;: &quot;A String&quot;, # Identifier for this message type. Used by external systems to internationalize or personalize message.
          &quot;messageText&quot;: &quot;A String&quot;, # Human-readable version of message.
        },
        &quot;time&quot;: &quot;A String&quot;, # The time this event was emitted to indicate a new target or current num_workers value.
        &quot;currentNumWorkers&quot;: &quot;A String&quot;, # The current number of workers the job has.
        &quot;eventType&quot;: &quot;A String&quot;, # The type of autoscaling event to report.
      },
    ],
    &quot;jobMessages&quot;: [ # Messages in ascending timestamp order.
      { # A particular message pertaining to a Dataflow job.
        &quot;id&quot;: &quot;A String&quot;, # Deprecated.
        &quot;messageText&quot;: &quot;A String&quot;, # The text of the message.
        &quot;messageImportance&quot;: &quot;A String&quot;, # Importance level of the message.
        &quot;time&quot;: &quot;A String&quot;, # The timestamp of the message.
      },
    ],
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The token to obtain the next page of results if there are more.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>