<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.locations.html">locations</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="dataflow_v1b3.projects.locations.flexTemplates.html">flexTemplates()</a></code>
</p>
<p class="firstline">Returns the flexTemplates Resource.</p>

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

<p class="toc_element">
  <code><a href="dataflow_v1b3.projects.locations.snapshots.html">snapshots()</a></code>
</p>
<p class="firstline">Returns the snapshots Resource.</p>

<p class="toc_element">
  <code><a href="dataflow_v1b3.projects.locations.templates.html">templates()</a></code>
</p>
<p class="firstline">Returns the templates Resource.</p>

<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="#workerMessages">workerMessages(projectId, location, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Send a worker_message to the service.</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="workerMessages">workerMessages(projectId, location, body=None, x__xgafv=None)</code>
  <pre>Send a worker_message to the service.

Args:
  projectId: string, The project to send the WorkerMessages to. (required)
  location: string, The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job. (required)
  body: object, The request body.
    The object takes the form of:

{ # A request for sending worker messages to the service.
  &quot;location&quot;: &quot;A String&quot;, # The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job.
  &quot;workerMessages&quot;: [ # The WorkerMessages to send.
    { # WorkerMessage provides information to the backend about a worker.
      &quot;dataSamplingReport&quot;: { # Contains per-worker telemetry about the data sampling feature. # Optional. Contains metrics related to go/dataflow-data-sampling-telemetry.
        &quot;bytesWrittenDelta&quot;: &quot;A String&quot;, # Optional. Delta of bytes written to file from previous report.
        &quot;elementsSampledBytes&quot;: &quot;A String&quot;, # Optional. Delta of bytes sampled from previous report.
        &quot;elementsSampledCount&quot;: &quot;A String&quot;, # Optional. Delta of number of elements sampled from previous report.
        &quot;exceptionsSampledCount&quot;: &quot;A String&quot;, # Optional. Delta of number of samples taken from user code exceptions from previous report.
        &quot;pcollectionsSampledCount&quot;: &quot;A String&quot;, # Optional. Delta of number of PCollections sampled from previous report.
        &quot;persistenceErrorsCount&quot;: &quot;A String&quot;, # Optional. Delta of errors counts from persisting the samples from previous report.
        &quot;translationErrorsCount&quot;: &quot;A String&quot;, # Optional. Delta of errors counts from retrieving, or translating the samples from previous report.
      },
      &quot;labels&quot;: { # Labels are used to group WorkerMessages. For example, a worker_message about a particular container might have the labels: { &quot;JOB_ID&quot;: &quot;2015-04-22&quot;, &quot;WORKER_ID&quot;: &quot;wordcount-vm-2015…&quot; &quot;CONTAINER_TYPE&quot;: &quot;worker&quot;, &quot;CONTAINER_ID&quot;: &quot;ac1234def&quot;} Label tags typically correspond to Label enum values. However, for ease of development other strings can be used as tags. LABEL_UNSPECIFIED should not be used here.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;perWorkerMetrics&quot;: { # Per worker metrics. # System defined metrics for this worker.
        &quot;perStepNamespaceMetrics&quot;: [ # Optional. Metrics for a particular unfused step and namespace.
          { # Metrics for a particular unfused step and namespace. A metric is uniquely identified by the `metrics_namespace`, `original_step`, `metric name` and `metric_labels`.
            &quot;metricValues&quot;: [ # Optional. Metrics that are recorded for this namespace and unfused step.
              { # The value of a metric along with its name and labels.
                &quot;metric&quot;: &quot;A String&quot;, # Base name for this metric.
                &quot;metricLabels&quot;: { # Optional. Set of metric labels for this metric.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;valueGauge64&quot;: { # The gauge value of a metric. # Non-cumulative int64 value of this metric.
                  &quot;measuredTime&quot;: &quot;A String&quot;, # The timestamp when the gauge was recorded.
                  &quot;value&quot;: &quot;A String&quot;, # The value of the gauge.
                },
                &quot;valueHistogram&quot;: { # Summary statistics for a population of values. HistogramValue contains a sequence of buckets and gives a count of values that fall into each bucket. Bucket boundares are defined by a formula and bucket widths are either fixed or exponentially increasing. # Histogram value of this metric.
                  &quot;bucketCounts&quot;: [ # Optional. The number of values in each bucket of the histogram, as described in `bucket_options`. `bucket_counts` should contain N values, where N is the number of buckets specified in `bucket_options`. If `bucket_counts` has fewer than N values, the remaining values are assumed to be 0.
                    &quot;A String&quot;,
                  ],
                  &quot;bucketOptions&quot;: { # `BucketOptions` describes the bucket boundaries used in the histogram. # Describes the bucket boundaries used in the histogram.
                    &quot;exponential&quot;: { # Exponential buckets where the growth factor between buckets is `2**(2**-scale)`. e.g. for `scale=1` growth factor is `2**(2**(-1))=sqrt(2)`. `n` buckets will have the following boundaries. - 0th: [0, gf) - i in [1, n-1]: [gf^(i), gf^(i+1)) # Bucket boundaries grow exponentially.
                      &quot;numberOfBuckets&quot;: 42, # Must be greater than 0.
                      &quot;scale&quot;: 42, # Must be between -3 and 3. This forces the growth factor of the bucket boundaries to be between `2^(1/8)` and `256`.
                    },
                    &quot;linear&quot;: { # Linear buckets with the following boundaries for indices in 0 to n-1. - i in [0, n-1]: [start + (i)*width, start + (i+1)*width) # Bucket boundaries grow linearly.
                      &quot;numberOfBuckets&quot;: 42, # Must be greater than 0.
                      &quot;start&quot;: 3.14, # Lower bound of the first bucket.
                      &quot;width&quot;: 3.14, # Distance between bucket boundaries. Must be greater than 0.
                    },
                  },
                  &quot;count&quot;: &quot;A String&quot;, # Number of values recorded in this histogram.
                  &quot;outlierStats&quot;: { # Statistics for the underflow and overflow bucket. # Statistics on the values recorded in the histogram that fall out of the bucket boundaries.
                    &quot;overflowCount&quot;: &quot;A String&quot;, # Number of values that are larger than the upper bound of the largest bucket.
                    &quot;overflowMean&quot;: 3.14, # Mean of values in the overflow bucket.
                    &quot;underflowCount&quot;: &quot;A String&quot;, # Number of values that are smaller than the lower bound of the smallest bucket.
                    &quot;underflowMean&quot;: 3.14, # Mean of values in the undeflow bucket.
                  },
                },
                &quot;valueInt64&quot;: &quot;A String&quot;, # Integer value of this metric.
              },
            ],
            &quot;metricsNamespace&quot;: &quot;A String&quot;, # The namespace of these metrics on the worker.
            &quot;originalStep&quot;: &quot;A String&quot;, # The original system name of the unfused step that these metrics are reported from.
          },
        ],
      },
      &quot;streamingScalingReport&quot;: { # Contains per-user worker telemetry used in streaming autoscaling. # Contains per-user worker telemetry used in streaming autoscaling.
        &quot;activeBundleCount&quot;: 42,
        &quot;activeThreadCount&quot;: 42, # Current acive thread count.
        &quot;maximumBundleCount&quot;: 42, # Maximum bundle count.
        &quot;maximumBytes&quot;: &quot;A String&quot;, # Maximum bytes.
        &quot;maximumBytesCount&quot;: 42,
        &quot;maximumThreadCount&quot;: 42, # Maximum thread count limit.
        &quot;outstandingBundleCount&quot;: 42, # Current outstanding bundle count.
        &quot;outstandingBytes&quot;: &quot;A String&quot;, # Current outstanding bytes.
        &quot;outstandingBytesCount&quot;: 42,
      },
      &quot;time&quot;: &quot;A String&quot;, # The timestamp of the worker_message.
      &quot;workerHealthReport&quot;: { # WorkerHealthReport contains information about the health of a worker. The VM should be identified by the labels attached to the WorkerMessage that this health ping belongs to. # The health of a worker.
        &quot;msg&quot;: &quot;A String&quot;, # Message describing any unusual health reports.
        &quot;pods&quot;: [ # The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod This field is used by the worker to send the status of the indvidual containers running on each worker.
          {
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
        ],
        &quot;reportInterval&quot;: &quot;A String&quot;, # The interval at which the worker is sending health reports. The default value of 0 should be interpreted as the field is not being explicitly set by the worker.
        &quot;vmBrokenCode&quot;: &quot;A String&quot;, # Code to describe a specific reason, if known, that a VM has reported broken state.
        &quot;vmIsBroken&quot;: True or False, # Whether the VM is in a permanently broken state. Broken VMs should be abandoned or deleted ASAP to avoid assigning or completing any work.
        &quot;vmIsHealthy&quot;: True or False, # Whether the VM is currently healthy.
        &quot;vmStartupTime&quot;: &quot;A String&quot;, # The time the VM was booted.
      },
      &quot;workerLifecycleEvent&quot;: { # A report of an event in a worker&#x27;s lifecycle. The proto contains one event, because the worker is expected to asynchronously send each message immediately after the event. Due to this asynchrony, messages may arrive out of order (or missing), and it is up to the consumer to interpret. The timestamp of the event is in the enclosing WorkerMessage proto. # Record of worker lifecycle events.
        &quot;containerStartTime&quot;: &quot;A String&quot;, # The start time of this container. All events will report this so that events can be grouped together across container/VM restarts.
        &quot;event&quot;: &quot;A String&quot;, # The event being reported.
        &quot;metadata&quot;: { # Other stats that can accompany an event. E.g. { &quot;downloaded_bytes&quot; : &quot;123456&quot; }
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;workerMessageCode&quot;: { # A message code is used to report status and error messages to the service. The message codes are intended to be machine readable. The service will take care of translating these into user understandable messages if necessary. Example use cases: 1. Worker processes reporting successful startup. 2. Worker processes reporting specific errors (e.g. package staging failure). # A worker message code.
        &quot;code&quot;: &quot;A String&quot;, # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. &quot;HARNESS_STARTED&quot; might be used to indicate the worker harness has started. 2. &quot;GCS_DOWNLOAD_ERROR&quot; might be used to indicate an error downloading a Cloud Storage file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
        &quot;parameters&quot;: { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a &quot;HARNESS_STARTED&quot; message parameters might provide the name of the worker and additional data like timing information. 2. For a &quot;GCS_DOWNLOAD_ERROR&quot; parameters might contain fields listing the Cloud Storage objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn&#x27;t typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
      },
      &quot;workerMetrics&quot;: { # Worker metrics exported from workers. This contains resource utilization metrics accumulated from a variety of sources. For more information, see go/df-resource-signals. # Resource metrics reported by workers.
        &quot;containers&quot;: { # Per container information. Key: container name.
          &quot;a_key&quot;: # Object with schema name: ResourceUtilizationReport
        },
        &quot;cpuTime&quot;: [ # CPU utilization samples.
          { # Modeled after information exposed by /proc/stat.
            &quot;rate&quot;: 3.14, # Average CPU utilization rate (% non-idle cpu / second) since previous sample.
            &quot;timestamp&quot;: &quot;A String&quot;, # Timestamp of the measurement.
            &quot;totalMs&quot;: &quot;A String&quot;, # Total active CPU time across all cores (ie., non-idle) in milliseconds since start-up.
          },
        ],
        &quot;gpuUsage&quot;: [ # Optional. GPU usage samples.
          { # Information about the GPU usage on the worker.
            &quot;timestamp&quot;: &quot;A String&quot;, # Required. Timestamp of the measurement.
            &quot;utilization&quot;: { # Utilization details about the GPU. # Required. Utilization info about the GPU.
              &quot;rate&quot;: 3.14, # Required. GPU utilization rate of any kernel over the last sample period in the range of [0, 1].
            },
          },
        ],
        &quot;memoryInfo&quot;: [ # Memory utilization samples.
          { # Information about the memory usage of a worker or a container within a worker.
            &quot;currentLimitBytes&quot;: &quot;A String&quot;, # Instantenous memory limit in bytes.
            &quot;currentOoms&quot;: &quot;A String&quot;, # Number of Out of Memory (OOM) events recorded since the previous measurement.
            &quot;currentRssBytes&quot;: &quot;A String&quot;, # Instantenous memory (RSS) size in bytes.
            &quot;timestamp&quot;: &quot;A String&quot;, # Timestamp of the measurement.
            &quot;totalGbMs&quot;: &quot;A String&quot;, # Total memory (RSS) usage since start up in GB * ms.
          },
        ],
      },
      &quot;workerShutdownNotice&quot;: { # Shutdown notification from workers. This is to be sent by the shutdown script of the worker VM so that the backend knows that the VM is being shut down. # Shutdown notice by workers.
        &quot;reason&quot;: &quot;A String&quot;, # The reason for the worker shutdown. Current possible values are: &quot;UNKNOWN&quot;: shutdown reason is unknown. &quot;PREEMPTION&quot;: shutdown reason is preemption. Other possible reasons may be added in the future.
      },
      &quot;workerThreadScalingReport&quot;: { # Contains information about the thread scaling information of a worker. # Thread scaling information reported by workers.
        &quot;currentThreadCount&quot;: 42, # Current number of active threads in a worker.
      },
    },
  ],
}

  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 worker messages.
  &quot;workerMessageResponses&quot;: [ # The servers response to the worker messages.
    { # A worker_message response allows the server to pass information to the sender.
      &quot;streamingScalingReportResponse&quot;: { # Contains per-user-worker streaming scaling recommendation from the backend. # Service&#x27;s streaming scaling response for workers.
        &quot;maximumThreadCount&quot;: 42, # Maximum thread count limit;
      },
      &quot;workerHealthReportResponse&quot;: { # WorkerHealthReportResponse contains information returned to the worker in response to a health ping. # The service&#x27;s response to a worker&#x27;s health report.
        &quot;reportInterval&quot;: &quot;A String&quot;, # A positive value indicates the worker should change its reporting interval to the specified value. The default value of zero means no change in report rate is requested by the server.
      },
      &quot;workerMetricsResponse&quot;: { # Service-side response to WorkerMessage reporting resource utilization. # Service&#x27;s response to reporting worker metrics (currently empty).
      },
      &quot;workerShutdownNoticeResponse&quot;: { # Service-side response to WorkerMessage issuing shutdown notice. # Service&#x27;s response to shutdown notice (currently empty).
      },
      &quot;workerThreadScalingReportResponse&quot;: { # Contains the thread scaling recommendation for a worker from the backend. # Service&#x27;s thread scaling recommendation for workers.
        &quot;recommendedThreadCount&quot;: 42, # Recommended number of threads for a worker.
      },
    },
  ],
}</pre>
</div>

</body></html>