public virtual PagedEnumerable<ListJobMessagesResponse, JobMessage> ListJobMessages(ListJobMessagesRequest request, CallSettings callSettings = null)
Request the job status.
To request the status of a job, we recommend using
projects.locations.jobs.messages.list with a regional endpoint. Using
projects.jobs.messages.list is not recommended, as you can only request
the status of jobs that are running in us-central1.
// Create client
MessagesV1Beta3Client messagesV1Beta3Client = MessagesV1Beta3Client.Create();
// Initialize request argument(s)
ListJobMessagesRequest request = new ListJobMessagesRequest
{
ProjectId = "",
JobId = "",
MinimumImportance = JobMessageImportance.Unknown,
StartTime = new Timestamp(),
EndTime = new Timestamp(),
Location = "",
};
// Make the request
PagedEnumerable<ListJobMessagesResponse, JobMessage> response = messagesV1Beta3Client.ListJobMessages(request);
// Iterate over all response items, lazily performing RPCs as required
foreach (JobMessage item in response)
{
// Do something with each item
Console.WriteLine(item);
}
// Or iterate over pages (of server-defined size), performing one RPC per page
foreach (ListJobMessagesResponse page in response.AsRawResponses())
{
// 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 = response.ReadPage(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;
public virtual PagedAsyncEnumerable<ListJobMessagesResponse, JobMessage> ListJobMessagesAsync(ListJobMessagesRequest request, CallSettings callSettings = null)
Request the job status.
To request the status of a job, we recommend using
projects.locations.jobs.messages.list with a regional endpoint. Using
projects.jobs.messages.list is not recommended, as you can only request
the status of jobs that are running in us-central1.
A pageable asynchronous sequence of JobMessage resources.
Example
// 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;
ShutdownDefaultChannelsAsync()
public static Task ShutdownDefaultChannelsAsync()
Shuts down any channels automatically created by Create() and
CreateAsync(CancellationToken). Channels which weren't automatically created are not
affected.
A task representing the asynchronous shutdown operation.
Remarks
After calling this method, further calls to Create() and
CreateAsync(CancellationToken) will create new channels, which could in turn be shut down
by another call to this method.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eMessagesV1Beta3Client\u003c/code\u003e class provides a client wrapper for the Dataflow v1beta3 API, used for monitoring Dataflow job progress.\u003c/p\u003e\n"],["\u003cp\u003eThis client allows for synchronous and asynchronous creation via \u003ccode\u003eCreate()\u003c/code\u003e and \u003ccode\u003eCreateAsync()\u003c/code\u003e, respectively, and utilizes default credentials, endpoints, and settings unless customized through the \u003ccode\u003eMessagesV1Beta3ClientBuilder\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt supports retrieving job status via \u003ccode\u003eListJobMessages()\u003c/code\u003e and \u003ccode\u003eListJobMessagesAsync()\u003c/code\u003e, which facilitate requesting job status and iterating over job messages.\u003c/p\u003e\n"],["\u003cp\u003eThe class offers properties such as \u003ccode\u003eDefaultEndpoint\u003c/code\u003e, \u003ccode\u003eDefaultScopes\u003c/code\u003e, \u003ccode\u003eGrpcClient\u003c/code\u003e, and \u003ccode\u003eServiceMetadata\u003c/code\u003e to define the default configuration and underlying gRPC client details for interacting with the Dataflow service.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eShutdownDefaultChannelsAsync()\u003c/code\u003e is available for closing any client channels that were automatically created, allowing them to be reopened.\u003c/p\u003e\n"]]],[],null,["# Dataflow v1beta3 API - Class MessagesV1Beta3Client (2.0.0-beta07)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0-beta07 (latest)](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client)\n- [2.0.0-beta06](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/2.0.0-beta06/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client)\n- [1.0.0-beta03](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/1.0.0-beta03/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client) \n\n public abstract class MessagesV1Beta3Client\n\nReference documentation and code samples for the Dataflow v1beta3 API class MessagesV1Beta3Client.\n\nMessagesV1Beta3 client wrapper, for convenient use. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e MessagesV1Beta3Client \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring) \n\nDerived Types\n-------------\n\n[MessagesV1Beta3ClientImpl](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3ClientImpl)\n\nNamespace\n---------\n\n[Google.Cloud.Dataflow.V1Beta3](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3)\n\nAssembly\n--------\n\nGoogle.Cloud.Dataflow.V1Beta3.dll\n\nRemarks\n-------\n\nThe Dataflow Messages API is used for monitoring the progress of\nDataflow jobs.\n\nProperties\n----------\n\n### DefaultEndpoint\n\n public static string DefaultEndpoint { get; }\n\nThe default endpoint for the MessagesV1Beta3 service, which is a host of \"dataflow.googleapis.com\" and a\nport of 443.\n\n### DefaultScopes\n\n public static IReadOnlyList\u003cstring\u003e DefaultScopes { get; }\n\nThe default MessagesV1Beta3 scopes.\n\n**Remarks** \nThe default MessagesV1Beta3 scopes are:\n\n- \u003chttps://www.googleapis.com/auth/cloud-platform\u003e\n- \u003chttps://www.googleapis.com/auth/compute\u003e\n- \u003chttps://www.googleapis.com/auth/compute.readonly\u003e\n- \u003chttps://www.googleapis.com/auth/userinfo.email\u003e\n\n\u003cbr /\u003e\n\n### GrpcClient\n\n public virtual MessagesV1Beta3.MessagesV1Beta3Client GrpcClient { get; }\n\nThe underlying gRPC MessagesV1Beta3 client\n\n### ServiceMetadata\n\n public static ServiceMetadata ServiceMetadata { get; }\n\nThe service metadata associated with this client type.\n\nMethods\n-------\n\n### Create()\n\n public static MessagesV1Beta3Client Create()\n\nSynchronously creates a [MessagesV1Beta3Client](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client) using the default credentials, endpoint and\nsettings. To specify custom credentials or other settings, use [MessagesV1Beta3ClientBuilder](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3ClientBuilder).\n\n### CreateAsync(CancellationToken)\n\n public static Task\u003cMessagesV1Beta3Client\u003e CreateAsync(CancellationToken cancellationToken = default)\n\nAsynchronously creates a [MessagesV1Beta3Client](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client) using the default credentials, endpoint and\nsettings. To specify custom credentials or other settings, use [MessagesV1Beta3ClientBuilder](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3ClientBuilder).\n\n### ListJobMessages(ListJobMessagesRequest, CallSettings)\n\n public virtual PagedEnumerable\u003cListJobMessagesResponse, JobMessage\u003e ListJobMessages(ListJobMessagesRequest request, CallSettings callSettings = null)\n\nRequest the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.messages.list` with a [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.messages.list` is not recommended, as you can only request\nthe status of jobs that are running in `us-central1`.\n\n**Example** \n\n // Create client\n MessagesV1Beta3Client messagesV1Beta3Client = MessagesV1Beta3Client.Create();\n // Initialize request argument(s)\n ListJobMessagesRequest request = new ListJobMessagesRequest\n {\n ProjectId = \"\",\n JobId = \"\",\n MinimumImportance = JobMessageImportance.Unknown,\n StartTime = new Timestamp(),\n EndTime = new Timestamp(),\n Location = \"\",\n };\n // Make the request\n PagedEnumerable\u003cListJobMessagesResponse, JobMessage\u003e response = messagesV1Beta3Client.ListJobMessages(request);\n\n // Iterate over all response items, lazily performing RPCs as required\n foreach (JobMessage item in response)\n {\n // Do something with each item\n Console.WriteLine(item);\n }\n\n // Or iterate over pages (of server-defined size), performing one RPC per page\n foreach (ListJobMessagesResponse page in response.AsRawResponses())\n {\n // Do something with each page of items\n Console.WriteLine(\"A page of results:\");\n foreach (JobMessage item in page)\n {\n // Do something with each item\n Console.WriteLine(item);\n }\n }\n\n // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required\n int pageSize = 10;\n Page\u003cJobMessage\u003e singlePage = response.ReadPage(pageSize);\n // Do something with the page of items\n Console.WriteLine($\"A page of {pageSize} results (unless it's the final page):\");\n foreach (JobMessage item in singlePage)\n {\n // Do something with each item\n Console.WriteLine(item);\n }\n // Store the pageToken, for when the next page is required.\n string nextPageToken = singlePage.NextPageToken;\n\n### ListJobMessagesAsync(ListJobMessagesRequest, CallSettings)\n\n public virtual PagedAsyncEnumerable\u003cListJobMessagesResponse, JobMessage\u003e ListJobMessagesAsync(ListJobMessagesRequest request, CallSettings callSettings = null)\n\nRequest the job status.\n\nTo request the status of a job, we recommend using\n`projects.locations.jobs.messages.list` with a [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using\n`projects.jobs.messages.list` is not recommended, as you can only request\nthe status of jobs that are running in `us-central1`.\n\n**Example** \n\n // Create client\n MessagesV1Beta3Client messagesV1Beta3Client = await MessagesV1Beta3Client.CreateAsync();\n // Initialize request argument(s)\n ListJobMessagesRequest request = new ListJobMessagesRequest\n {\n ProjectId = \"\",\n JobId = \"\",\n MinimumImportance = JobMessageImportance.Unknown,\n StartTime = new Timestamp(),\n EndTime = new Timestamp(),\n Location = \"\",\n };\n // Make the request\n PagedAsyncEnumerable\u003cListJobMessagesResponse, JobMessage\u003e response = messagesV1Beta3Client.ListJobMessagesAsync(request);\n\n // Iterate over all response items, lazily performing RPCs as required\n await response.ForEachAsync((JobMessage item) =\u003e\n {\n // Do something with each item\n Console.WriteLine(item);\n });\n\n // Or iterate over pages (of server-defined size), performing one RPC per page\n await response.AsRawResponses().ForEachAsync((ListJobMessagesResponse page) =\u003e\n {\n // Do something with each page of items\n Console.WriteLine(\"A page of results:\");\n foreach (JobMessage item in page)\n {\n // Do something with each item\n Console.WriteLine(item);\n }\n });\n\n // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required\n int pageSize = 10;\n Page\u003cJobMessage\u003e singlePage = await response.ReadPageAsync(pageSize);\n // Do something with the page of items\n Console.WriteLine($\"A page of {pageSize} results (unless it's the final page):\");\n foreach (JobMessage item in singlePage)\n {\n // Do something with each item\n Console.WriteLine(item);\n }\n // Store the pageToken, for when the next page is required.\n string nextPageToken = singlePage.NextPageToken;\n\n### ShutdownDefaultChannelsAsync()\n\n public static Task ShutdownDefaultChannelsAsync()\n\nShuts down any channels automatically created by [Create()](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client#Google_Cloud_Dataflow_V1Beta3_MessagesV1Beta3Client_Create) and\n[CreateAsync(CancellationToken)](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client#Google_Cloud_Dataflow_V1Beta3_MessagesV1Beta3Client_CreateAsync_System_Threading_CancellationToken_). Channels which weren't automatically created are not\naffected.\n\n**Remarks** \nAfter calling this method, further calls to [Create()](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client#Google_Cloud_Dataflow_V1Beta3_MessagesV1Beta3Client_Create) and\n[CreateAsync(CancellationToken)](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.MessagesV1Beta3Client#Google_Cloud_Dataflow_V1Beta3_MessagesV1Beta3Client_CreateAsync_System_Threading_CancellationToken_) will create new channels, which could in turn be shut down\nby another call to this method."]]