<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">Google Dataflow API</a> . <a href="dataflow_v1b3.projects.html">projects</a> . <a href="dataflow_v1b3.projects.locations.html">locations</a> . <a href="dataflow_v1b3.projects.locations.jobs.html">jobs</a> . <a href="dataflow_v1b3.projects.locations.jobs.messages.html">messages</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(projectId, location, jobId, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, minimumImportance=None, endTime=None)</a></code></p>
<p class="firstline">Request the job status.</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="list">list(projectId, location, jobId, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, minimumImportance=None, endTime=None)</code>
  <pre>Request the job status.

Args:
  projectId: string, A project id. (required)
  location: string, The location which contains the job specified by job_id. (required)
  jobId: string, The job to get messages about. (required)
  startTime: string, If specified, return only messages with timestamps >= start_time.
The default is the job creation time (i.e. beginning of messages).
  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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  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.
  minimumImportance: string, Filter to only get messages with importance >= level
  endTime: string, Return only messages with timestamps < end_time. The default is now
(i.e. return up to the latest messages available).

Returns:
  An object of the form:

    { # Response to a request to list job messages.
    "nextPageToken": "A String", # The token to obtain the next page of results if there are more.
    "autoscalingEvents": [ # Autoscaling events in ascending timestamp order.
      { # A structured message reporting an autoscaling decision made by the Dataflow
          # service.
        "eventType": "A String", # The type of autoscaling event to report.
        "currentNumWorkers": "A String", # The current number of workers the job has.
        "description": { # A rich message format, including a human readable string, a key for # 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.
            # identifying the message, and structured data associated with the message for
            # programmatic consumption.
          "messageKey": "A String", # Idenfier for this message type.  Used by external systems to
              # internationalize or personalize message.
          "messageText": "A String", # Human-readable version of message.
          "parameters": [ # The structured data associated with this message.
            { # Structured data associated with this message.
              "value": "", # Value for this parameter.
              "key": "A String", # Key or name for this parameter.
            },
          ],
        },
        "targetNumWorkers": "A String", # The target number of workers the worker pool wants to resize to use.
        "time": "A String", # The time this event was emitted to indicate a new target or current
            # num_workers value.
      },
    ],
    "jobMessages": [ # Messages in ascending timestamp order.
      { # A particular message pertaining to a Dataflow job.
        "messageImportance": "A String", # Importance level of the message.
        "messageText": "A String", # The text of the message.
        "id": "A String", # Deprecated.
        "time": "A String", # The timestamp of the message.
      },
    ],
  }</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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>