<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_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a> . <a href="dataflow_v1beta3.v1b3.projects.html">projects</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.html">jobs</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="dataflow_v1beta3.v1b3.projects.jobs.messages.html">messages()</a></code>
</p>
<p class="firstline">Returns the messages Resource.</p>

<p class="toc_element">
  <code><a href="dataflow_v1beta3.v1b3.projects.jobs.workItems.html">workItems()</a></code>
</p>
<p class="firstline">Returns the workItems Resource.</p>

<p class="toc_element">
  <code><a href="#create">create(projectId, body, view=None)</a></code></p>
<p class="firstline">Creates a dataflow job.</p>
<p class="toc_element">
  <code><a href="#get">get(projectId, jobId, view=None)</a></code></p>
<p class="firstline">Gets the state of the specified dataflow job.</p>
<p class="toc_element">
  <code><a href="#getMetrics">getMetrics(projectId, jobId, startTime=None)</a></code></p>
<p class="firstline">Request the job status.</p>
<p class="toc_element">
  <code><a href="#list">list(projectId, pageToken=None, pageSize=None, view=None)</a></code></p>
<p class="firstline">List the jobs of a project</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>
<p class="toc_element">
  <code><a href="#patch">patch(projectId, jobId, body)</a></code></p>
<p class="firstline">Updates the state of an existing dataflow job. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(projectId, jobId, body)</a></code></p>
<p class="firstline">Updates the state of an existing dataflow job.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="create">create(projectId, body, view=None)</code>
  <pre>Creates a dataflow job.

Args:
  projectId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "requestedState": "A String",
  "name": "A String",
  "projectId": "A String",
  "createTime": "A String",
  "environment": {
    "version": {
      "a_key": "",
    },
    "workerPools": [
      {
        "diskSourceImage": "A String",
        "teardownPolicy": "A String",
        "kind": "A String",
        "packages": [
          {
            "location": "A String",
            "name": "A String",
          },
        ],
        "machineType": "A String",
        "zone": "A String",
        "onHostMaintenance": "A String",
        "taskrunnerSettings": {
          "workflowFileName": "A String",
          "logUploadLocation": "A String",
          "commandlinesFileName": "A String",
          "alsologtostderr": True or False,
          "vmId": "A String",
          "baseTaskDir": "A String",
          "continueOnException": True or False,
          "baseUrl": "A String",
          "parallelWorkerSettings": {
            "reportingEnabled": True or False,
            "shuffleServicePath": "A String",
            "workerId": "A String",
            "baseUrl": "A String",
            "servicePath": "A String",
            "tempStoragePrefix": "A String",
          },
          "oauthScopes": [
            "A String",
          ],
          "taskGroup": "A String",
          "languageHint": "A String",
          "logToSerialconsole": True or False,
          "streamingWorkerMainClass": "A String",
          "logDir": "A String",
          "dataflowApiVersion": "A String",
          "taskUser": "A String",
          "harnessCommand": "A String",
          "tempStoragePrefix": "A String",
        },
        "diskSizeGb": 42,
        "numWorkers": 42,
        "defaultPackageSet": "A String",
        "metadata": {
          "a_key": "A String",
        },
        "autoscalingSettings": {
          "maxNumWorkers": 42,
          "algorithm": "A String",
        },
        "dataDisks": [
          {
            "mountPoint": "A String",
            "sizeGb": 42,
            "diskType": "A String",
          },
        ],
      },
    ],
    "dataset": "A String",
    "experiments": [
      "A String",
    ],
    "sdkPipelineOptions": {
      "a_key": "",
    },
    "userAgent": {
      "a_key": "",
    },
    "clusterManagerApiService": "A String",
    "tempStoragePrefix": "A String",
  },
  "steps": [
    {
      "kind": "A String",
      "name": "A String",
      "properties": {
        "a_key": "",
      },
    },
  ],
  "currentStateTime": "A String",
  "type": "A String",
  "id": "A String",
  "currentState": "A String",
  "executionInfo": {
    "stages": {
      "a_key": {
        "stepName": [
          "A String",
        ],
      },
    },
  },
}

  view: string, A parameter
    Allowed values
      JOB_VIEW_ALL - 
      JOB_VIEW_SUMMARY - 
      JOB_VIEW_UNKNOWN - 

Returns:
  An object of the form:

    {
    "requestedState": "A String",
    "name": "A String",
    "projectId": "A String",
    "createTime": "A String",
    "environment": {
      "version": {
        "a_key": "",
      },
      "workerPools": [
        {
          "diskSourceImage": "A String",
          "teardownPolicy": "A String",
          "kind": "A String",
          "packages": [
            {
              "location": "A String",
              "name": "A String",
            },
          ],
          "machineType": "A String",
          "zone": "A String",
          "onHostMaintenance": "A String",
          "taskrunnerSettings": {
            "workflowFileName": "A String",
            "logUploadLocation": "A String",
            "commandlinesFileName": "A String",
            "alsologtostderr": True or False,
            "vmId": "A String",
            "baseTaskDir": "A String",
            "continueOnException": True or False,
            "baseUrl": "A String",
            "parallelWorkerSettings": {
              "reportingEnabled": True or False,
              "shuffleServicePath": "A String",
              "workerId": "A String",
              "baseUrl": "A String",
              "servicePath": "A String",
              "tempStoragePrefix": "A String",
            },
            "oauthScopes": [
              "A String",
            ],
            "taskGroup": "A String",
            "languageHint": "A String",
            "logToSerialconsole": True or False,
            "streamingWorkerMainClass": "A String",
            "logDir": "A String",
            "dataflowApiVersion": "A String",
            "taskUser": "A String",
            "harnessCommand": "A String",
            "tempStoragePrefix": "A String",
          },
          "diskSizeGb": 42,
          "numWorkers": 42,
          "defaultPackageSet": "A String",
          "metadata": {
            "a_key": "A String",
          },
          "autoscalingSettings": {
            "maxNumWorkers": 42,
            "algorithm": "A String",
          },
          "dataDisks": [
            {
              "mountPoint": "A String",
              "sizeGb": 42,
              "diskType": "A String",
            },
          ],
        },
      ],
      "dataset": "A String",
      "experiments": [
        "A String",
      ],
      "sdkPipelineOptions": {
        "a_key": "",
      },
      "userAgent": {
        "a_key": "",
      },
      "clusterManagerApiService": "A String",
      "tempStoragePrefix": "A String",
    },
    "steps": [
      {
        "kind": "A String",
        "name": "A String",
        "properties": {
          "a_key": "",
        },
      },
    ],
    "currentStateTime": "A String",
    "type": "A String",
    "id": "A String",
    "currentState": "A String",
    "executionInfo": {
      "stages": {
        "a_key": {
          "stepName": [
            "A String",
          ],
        },
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(projectId, jobId, view=None)</code>
  <pre>Gets the state of the specified dataflow job.

Args:
  projectId: string, A parameter (required)
  jobId: string, A parameter (required)
  view: string, A parameter
    Allowed values
      JOB_VIEW_ALL - 
      JOB_VIEW_SUMMARY - 
      JOB_VIEW_UNKNOWN - 

Returns:
  An object of the form:

    {
    "requestedState": "A String",
    "name": "A String",
    "projectId": "A String",
    "createTime": "A String",
    "environment": {
      "version": {
        "a_key": "",
      },
      "workerPools": [
        {
          "diskSourceImage": "A String",
          "teardownPolicy": "A String",
          "kind": "A String",
          "packages": [
            {
              "location": "A String",
              "name": "A String",
            },
          ],
          "machineType": "A String",
          "zone": "A String",
          "onHostMaintenance": "A String",
          "taskrunnerSettings": {
            "workflowFileName": "A String",
            "logUploadLocation": "A String",
            "commandlinesFileName": "A String",
            "alsologtostderr": True or False,
            "vmId": "A String",
            "baseTaskDir": "A String",
            "continueOnException": True or False,
            "baseUrl": "A String",
            "parallelWorkerSettings": {
              "reportingEnabled": True or False,
              "shuffleServicePath": "A String",
              "workerId": "A String",
              "baseUrl": "A String",
              "servicePath": "A String",
              "tempStoragePrefix": "A String",
            },
            "oauthScopes": [
              "A String",
            ],
            "taskGroup": "A String",
            "languageHint": "A String",
            "logToSerialconsole": True or False,
            "streamingWorkerMainClass": "A String",
            "logDir": "A String",
            "dataflowApiVersion": "A String",
            "taskUser": "A String",
            "harnessCommand": "A String",
            "tempStoragePrefix": "A String",
          },
          "diskSizeGb": 42,
          "numWorkers": 42,
          "defaultPackageSet": "A String",
          "metadata": {
            "a_key": "A String",
          },
          "autoscalingSettings": {
            "maxNumWorkers": 42,
            "algorithm": "A String",
          },
          "dataDisks": [
            {
              "mountPoint": "A String",
              "sizeGb": 42,
              "diskType": "A String",
            },
          ],
        },
      ],
      "dataset": "A String",
      "experiments": [
        "A String",
      ],
      "sdkPipelineOptions": {
        "a_key": "",
      },
      "userAgent": {
        "a_key": "",
      },
      "clusterManagerApiService": "A String",
      "tempStoragePrefix": "A String",
    },
    "steps": [
      {
        "kind": "A String",
        "name": "A String",
        "properties": {
          "a_key": "",
        },
      },
    ],
    "currentStateTime": "A String",
    "type": "A String",
    "id": "A String",
    "currentState": "A String",
    "executionInfo": {
      "stages": {
        "a_key": {
          "stepName": [
            "A String",
          ],
        },
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="getMetrics">getMetrics(projectId, jobId, startTime=None)</code>
  <pre>Request the job status.

Args:
  projectId: string, A parameter (required)
  jobId: string, A parameter (required)
  startTime: string, A parameter

Returns:
  An object of the form:

    {
    "metrics": [
      {
        "meanCount": "",
        "kind": "A String",
        "set": "",
        "name": {
          "origin": "A String",
          "name": "A String",
          "context": {
            "a_key": "A String",
          },
        },
        "meanSum": "",
        "cumulative": True or False,
        "updateTime": "A String",
        "scalar": "",
        "internal": "",
      },
    ],
    "metricTime": "A String",
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(projectId, pageToken=None, pageSize=None, view=None)</code>
  <pre>List the jobs of a project

Args:
  projectId: string, A parameter (required)
  pageToken: string, A parameter
  pageSize: integer, A parameter
  view: string, A parameter
    Allowed values
      JOB_VIEW_ALL - 
      JOB_VIEW_SUMMARY - 
      JOB_VIEW_UNKNOWN - 

Returns:
  An object of the form:

    {
    "nextPageToken": "A String",
    "jobs": [
      {
        "requestedState": "A String",
        "name": "A String",
        "projectId": "A String",
        "createTime": "A String",
        "environment": {
          "version": {
            "a_key": "",
          },
          "workerPools": [
            {
              "diskSourceImage": "A String",
              "teardownPolicy": "A String",
              "kind": "A String",
              "packages": [
                {
                  "location": "A String",
                  "name": "A String",
                },
              ],
              "machineType": "A String",
              "zone": "A String",
              "onHostMaintenance": "A String",
              "taskrunnerSettings": {
                "workflowFileName": "A String",
                "logUploadLocation": "A String",
                "commandlinesFileName": "A String",
                "alsologtostderr": True or False,
                "vmId": "A String",
                "baseTaskDir": "A String",
                "continueOnException": True or False,
                "baseUrl": "A String",
                "parallelWorkerSettings": {
                  "reportingEnabled": True or False,
                  "shuffleServicePath": "A String",
                  "workerId": "A String",
                  "baseUrl": "A String",
                  "servicePath": "A String",
                  "tempStoragePrefix": "A String",
                },
                "oauthScopes": [
                  "A String",
                ],
                "taskGroup": "A String",
                "languageHint": "A String",
                "logToSerialconsole": True or False,
                "streamingWorkerMainClass": "A String",
                "logDir": "A String",
                "dataflowApiVersion": "A String",
                "taskUser": "A String",
                "harnessCommand": "A String",
                "tempStoragePrefix": "A String",
              },
              "diskSizeGb": 42,
              "numWorkers": 42,
              "defaultPackageSet": "A String",
              "metadata": {
                "a_key": "A String",
              },
              "autoscalingSettings": {
                "maxNumWorkers": 42,
                "algorithm": "A String",
              },
              "dataDisks": [
                {
                  "mountPoint": "A String",
                  "sizeGb": 42,
                  "diskType": "A String",
                },
              ],
            },
          ],
          "dataset": "A String",
          "experiments": [
            "A String",
          ],
          "sdkPipelineOptions": {
            "a_key": "",
          },
          "userAgent": {
            "a_key": "",
          },
          "clusterManagerApiService": "A String",
          "tempStoragePrefix": "A String",
        },
        "steps": [
          {
            "kind": "A String",
            "name": "A String",
            "properties": {
              "a_key": "",
            },
          },
        ],
        "currentStateTime": "A String",
        "type": "A String",
        "id": "A String",
        "currentState": "A String",
        "executionInfo": {
          "stages": {
            "a_key": {
              "stepName": [
                "A String",
              ],
            },
          },
        },
      },
    ],
  }</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>

<div class="method">
    <code class="details" id="patch">patch(projectId, jobId, body)</code>
  <pre>Updates the state of an existing dataflow job. This method supports patch semantics.

Args:
  projectId: string, A parameter (required)
  jobId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "requestedState": "A String",
  "name": "A String",
  "projectId": "A String",
  "createTime": "A String",
  "environment": {
    "version": {
      "a_key": "",
    },
    "workerPools": [
      {
        "diskSourceImage": "A String",
        "teardownPolicy": "A String",
        "kind": "A String",
        "packages": [
          {
            "location": "A String",
            "name": "A String",
          },
        ],
        "machineType": "A String",
        "zone": "A String",
        "onHostMaintenance": "A String",
        "taskrunnerSettings": {
          "workflowFileName": "A String",
          "logUploadLocation": "A String",
          "commandlinesFileName": "A String",
          "alsologtostderr": True or False,
          "vmId": "A String",
          "baseTaskDir": "A String",
          "continueOnException": True or False,
          "baseUrl": "A String",
          "parallelWorkerSettings": {
            "reportingEnabled": True or False,
            "shuffleServicePath": "A String",
            "workerId": "A String",
            "baseUrl": "A String",
            "servicePath": "A String",
            "tempStoragePrefix": "A String",
          },
          "oauthScopes": [
            "A String",
          ],
          "taskGroup": "A String",
          "languageHint": "A String",
          "logToSerialconsole": True or False,
          "streamingWorkerMainClass": "A String",
          "logDir": "A String",
          "dataflowApiVersion": "A String",
          "taskUser": "A String",
          "harnessCommand": "A String",
          "tempStoragePrefix": "A String",
        },
        "diskSizeGb": 42,
        "numWorkers": 42,
        "defaultPackageSet": "A String",
        "metadata": {
          "a_key": "A String",
        },
        "autoscalingSettings": {
          "maxNumWorkers": 42,
          "algorithm": "A String",
        },
        "dataDisks": [
          {
            "mountPoint": "A String",
            "sizeGb": 42,
            "diskType": "A String",
          },
        ],
      },
    ],
    "dataset": "A String",
    "experiments": [
      "A String",
    ],
    "sdkPipelineOptions": {
      "a_key": "",
    },
    "userAgent": {
      "a_key": "",
    },
    "clusterManagerApiService": "A String",
    "tempStoragePrefix": "A String",
  },
  "steps": [
    {
      "kind": "A String",
      "name": "A String",
      "properties": {
        "a_key": "",
      },
    },
  ],
  "currentStateTime": "A String",
  "type": "A String",
  "id": "A String",
  "currentState": "A String",
  "executionInfo": {
    "stages": {
      "a_key": {
        "stepName": [
          "A String",
        ],
      },
    },
  },
}


Returns:
  An object of the form:

    {
    "requestedState": "A String",
    "name": "A String",
    "projectId": "A String",
    "createTime": "A String",
    "environment": {
      "version": {
        "a_key": "",
      },
      "workerPools": [
        {
          "diskSourceImage": "A String",
          "teardownPolicy": "A String",
          "kind": "A String",
          "packages": [
            {
              "location": "A String",
              "name": "A String",
            },
          ],
          "machineType": "A String",
          "zone": "A String",
          "onHostMaintenance": "A String",
          "taskrunnerSettings": {
            "workflowFileName": "A String",
            "logUploadLocation": "A String",
            "commandlinesFileName": "A String",
            "alsologtostderr": True or False,
            "vmId": "A String",
            "baseTaskDir": "A String",
            "continueOnException": True or False,
            "baseUrl": "A String",
            "parallelWorkerSettings": {
              "reportingEnabled": True or False,
              "shuffleServicePath": "A String",
              "workerId": "A String",
              "baseUrl": "A String",
              "servicePath": "A String",
              "tempStoragePrefix": "A String",
            },
            "oauthScopes": [
              "A String",
            ],
            "taskGroup": "A String",
            "languageHint": "A String",
            "logToSerialconsole": True or False,
            "streamingWorkerMainClass": "A String",
            "logDir": "A String",
            "dataflowApiVersion": "A String",
            "taskUser": "A String",
            "harnessCommand": "A String",
            "tempStoragePrefix": "A String",
          },
          "diskSizeGb": 42,
          "numWorkers": 42,
          "defaultPackageSet": "A String",
          "metadata": {
            "a_key": "A String",
          },
          "autoscalingSettings": {
            "maxNumWorkers": 42,
            "algorithm": "A String",
          },
          "dataDisks": [
            {
              "mountPoint": "A String",
              "sizeGb": 42,
              "diskType": "A String",
            },
          ],
        },
      ],
      "dataset": "A String",
      "experiments": [
        "A String",
      ],
      "sdkPipelineOptions": {
        "a_key": "",
      },
      "userAgent": {
        "a_key": "",
      },
      "clusterManagerApiService": "A String",
      "tempStoragePrefix": "A String",
    },
    "steps": [
      {
        "kind": "A String",
        "name": "A String",
        "properties": {
          "a_key": "",
        },
      },
    ],
    "currentStateTime": "A String",
    "type": "A String",
    "id": "A String",
    "currentState": "A String",
    "executionInfo": {
      "stages": {
        "a_key": {
          "stepName": [
            "A String",
          ],
        },
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(projectId, jobId, body)</code>
  <pre>Updates the state of an existing dataflow job.

Args:
  projectId: string, A parameter (required)
  jobId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "requestedState": "A String",
  "name": "A String",
  "projectId": "A String",
  "createTime": "A String",
  "environment": {
    "version": {
      "a_key": "",
    },
    "workerPools": [
      {
        "diskSourceImage": "A String",
        "teardownPolicy": "A String",
        "kind": "A String",
        "packages": [
          {
            "location": "A String",
            "name": "A String",
          },
        ],
        "machineType": "A String",
        "zone": "A String",
        "onHostMaintenance": "A String",
        "taskrunnerSettings": {
          "workflowFileName": "A String",
          "logUploadLocation": "A String",
          "commandlinesFileName": "A String",
          "alsologtostderr": True or False,
          "vmId": "A String",
          "baseTaskDir": "A String",
          "continueOnException": True or False,
          "baseUrl": "A String",
          "parallelWorkerSettings": {
            "reportingEnabled": True or False,
            "shuffleServicePath": "A String",
            "workerId": "A String",
            "baseUrl": "A String",
            "servicePath": "A String",
            "tempStoragePrefix": "A String",
          },
          "oauthScopes": [
            "A String",
          ],
          "taskGroup": "A String",
          "languageHint": "A String",
          "logToSerialconsole": True or False,
          "streamingWorkerMainClass": "A String",
          "logDir": "A String",
          "dataflowApiVersion": "A String",
          "taskUser": "A String",
          "harnessCommand": "A String",
          "tempStoragePrefix": "A String",
        },
        "diskSizeGb": 42,
        "numWorkers": 42,
        "defaultPackageSet": "A String",
        "metadata": {
          "a_key": "A String",
        },
        "autoscalingSettings": {
          "maxNumWorkers": 42,
          "algorithm": "A String",
        },
        "dataDisks": [
          {
            "mountPoint": "A String",
            "sizeGb": 42,
            "diskType": "A String",
          },
        ],
      },
    ],
    "dataset": "A String",
    "experiments": [
      "A String",
    ],
    "sdkPipelineOptions": {
      "a_key": "",
    },
    "userAgent": {
      "a_key": "",
    },
    "clusterManagerApiService": "A String",
    "tempStoragePrefix": "A String",
  },
  "steps": [
    {
      "kind": "A String",
      "name": "A String",
      "properties": {
        "a_key": "",
      },
    },
  ],
  "currentStateTime": "A String",
  "type": "A String",
  "id": "A String",
  "currentState": "A String",
  "executionInfo": {
    "stages": {
      "a_key": {
        "stepName": [
          "A String",
        ],
      },
    },
  },
}


Returns:
  An object of the form:

    {
    "requestedState": "A String",
    "name": "A String",
    "projectId": "A String",
    "createTime": "A String",
    "environment": {
      "version": {
        "a_key": "",
      },
      "workerPools": [
        {
          "diskSourceImage": "A String",
          "teardownPolicy": "A String",
          "kind": "A String",
          "packages": [
            {
              "location": "A String",
              "name": "A String",
            },
          ],
          "machineType": "A String",
          "zone": "A String",
          "onHostMaintenance": "A String",
          "taskrunnerSettings": {
            "workflowFileName": "A String",
            "logUploadLocation": "A String",
            "commandlinesFileName": "A String",
            "alsologtostderr": True or False,
            "vmId": "A String",
            "baseTaskDir": "A String",
            "continueOnException": True or False,
            "baseUrl": "A String",
            "parallelWorkerSettings": {
              "reportingEnabled": True or False,
              "shuffleServicePath": "A String",
              "workerId": "A String",
              "baseUrl": "A String",
              "servicePath": "A String",
              "tempStoragePrefix": "A String",
            },
            "oauthScopes": [
              "A String",
            ],
            "taskGroup": "A String",
            "languageHint": "A String",
            "logToSerialconsole": True or False,
            "streamingWorkerMainClass": "A String",
            "logDir": "A String",
            "dataflowApiVersion": "A String",
            "taskUser": "A String",
            "harnessCommand": "A String",
            "tempStoragePrefix": "A String",
          },
          "diskSizeGb": 42,
          "numWorkers": 42,
          "defaultPackageSet": "A String",
          "metadata": {
            "a_key": "A String",
          },
          "autoscalingSettings": {
            "maxNumWorkers": 42,
            "algorithm": "A String",
          },
          "dataDisks": [
            {
              "mountPoint": "A String",
              "sizeGb": 42,
              "diskType": "A String",
            },
          ],
        },
      ],
      "dataset": "A String",
      "experiments": [
        "A String",
      ],
      "sdkPipelineOptions": {
        "a_key": "",
      },
      "userAgent": {
        "a_key": "",
      },
      "clusterManagerApiService": "A String",
      "tempStoragePrefix": "A String",
    },
    "steps": [
      {
        "kind": "A String",
        "name": "A String",
        "properties": {
          "a_key": "",
        },
      },
    ],
    "currentStateTime": "A String",
    "type": "A String",
    "id": "A String",
    "currentState": "A String",
    "executionInfo": {
      "stages": {
        "a_key": {
          "stepName": [
            "A String",
          ],
        },
      },
    },
  }</pre>
</div>

</body></html>