List job messages (async)

Demonstrates how to request a list of job messages asynchronously.

Code sample

C#

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

using Google.Api.Gax;
using Google.Cloud.Dataflow.V1Beta3;
using Google.Protobuf.WellKnownTypes;
using System;
using System.Linq;
using System.Threading.Tasks;

public sealed partial class GeneratedMessagesV1Beta3ClientSnippets
{
    /// <summary>Snippet for ListJobMessagesAsync</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public async Task ListJobMessagesRequestObjectAsync()
    {
        // Create client
        MessagesV1Beta3Client messagesV1Beta3Client = await MessagesV1Beta3Client.CreateAsync();
        // Initialize request argument(s)
        ListJobMessagesRequest request = new ListJobMessagesRequest
        {
            ProjectId = "",
            JobId = "",
            MinimumImportance = JobMessageImportance.Unknown,
            StartTime = new Timestamp(),
            EndTime = new Timestamp(),
            Location = "",
        };
        // Make the request
        PagedAsyncEnumerable<ListJobMessagesResponse, JobMessage> response = messagesV1Beta3Client.ListJobMessagesAsync(request);

        // Iterate over all response items, lazily performing RPCs as required
        await response.ForEachAsync((JobMessage item) =>
        {
            // Do something with each item
            Console.WriteLine(item);
        });

        // Or iterate over pages (of server-defined size), performing one RPC per page
        await response.AsRawResponses().ForEachAsync((ListJobMessagesResponse page) =>
        {
            // Do something with each page of items
            Console.WriteLine("A page of results:");
            foreach (JobMessage item in page)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
        });

        // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
        int pageSize = 10;
        Page<JobMessage> singlePage = await response.ReadPageAsync(pageSize);
        // Do something with the page of items
        Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
        foreach (JobMessage item in singlePage)
        {
            // Do something with each item
            Console.WriteLine(item);
        }
        // Store the pageToken, for when the next page is required.
        string nextPageToken = singlePage.NextPageToken;
    }
}

Java

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

import com.google.api.core.ApiFuture;
import com.google.dataflow.v1beta3.JobMessage;
import com.google.dataflow.v1beta3.JobMessageImportance;
import com.google.dataflow.v1beta3.ListJobMessagesRequest;
import com.google.dataflow.v1beta3.MessagesV1Beta3Client;
import com.google.protobuf.Timestamp;

public class AsyncListJobMessages {

  public static void main(String[] args) throws Exception {
    asyncListJobMessages();
  }

  public static void asyncListJobMessages() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (MessagesV1Beta3Client messagesV1Beta3Client = MessagesV1Beta3Client.create()) {
      ListJobMessagesRequest request =
          ListJobMessagesRequest.newBuilder()
              .setProjectId("projectId-894832108")
              .setJobId("jobId101296568")
              .setMinimumImportance(JobMessageImportance.forNumber(0))
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setStartTime(Timestamp.newBuilder().build())
              .setEndTime(Timestamp.newBuilder().build())
              .setLocation("location1901043637")
              .build();
      ApiFuture<JobMessage> future =
          messagesV1Beta3Client.listJobMessagesPagedCallable().futureCall(request);
      // Do something.
      for (JobMessage element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  A project id.
 */
// const projectId = 'abc123'
/**
 *  The job to get messages about.
 */
// const jobId = 'abc123'
/**
 *  Filter to only get messages with importance >= level
 */
// const minimumImportance = {}
/**
 *  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.
 */
// const pageSize = 1234
/**
 *  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.
 */
// const pageToken = 'abc123'
/**
 *  If specified, return only messages with timestamps >= start_time.
 *  The default is the job creation time (i.e. beginning of messages).
 */
// const startTime = {}
/**
 *  Return only messages with timestamps < end_time. The default is now
 *  (i.e. return up to the latest messages available).
 */
// const endTime = {}
/**
 *  The regional endpoint 
 *  (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
 *  contains the job specified by job_id.
 */
// const location = 'abc123'

// Imports the Dataflow library
const {MessagesV1Beta3Client} = require('@google-cloud/dataflow').v1beta3;

// Instantiates a client
const dataflowClient = new MessagesV1Beta3Client();

async function callListJobMessages() {
  // Construct request
  const request = {
  };

  // Run request
  const iterable = dataflowClient.listJobMessagesAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListJobMessages();

Python

To authenticate to Dataflow, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataflow_v1beta3


async def sample_list_job_messages():
    # Create a client
    client = dataflow_v1beta3.MessagesV1Beta3AsyncClient()

    # Initialize request argument(s)
    request = dataflow_v1beta3.ListJobMessagesRequest(
    )

    # Make the request
    page_result = client.list_job_messages(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.