The client's unique identifier of the job, re-used across retried attempts.
If this field is set, the service will ensure its uniqueness.
The request to create a job will fail if the service has knowledge of a
previously submitted job with the same client's ID and job name.
The caller may use this field to ensure idempotence of job
creation across retried attempts to create a job.
By default, the field is empty and, in that case, the service ignores it.
Jobs are created in the JOB_STATE_STOPPED state unless otherwise
specified.
A job in the JOB_STATE_RUNNING state may asynchronously enter a
terminal state. After a job has reached a terminal state, no
further state updates may be made.
This field may be mutated by the Cloud Dataflow service;
callers cannot mutate it.
This field is populated by the Dataflow service to support filtering jobs
by the metadata values provided here. Populated for ListJobs and all GetJob
views SUMMARY and higher.
Only one Job with a given name may exist in a project at any
given time. If a caller attempts to create a Job with the same
name as an already-existing Job, the attempt returns the
existing Job.
The name must match the regular expression
[a-z]([-a-z0-9]{0,1022}[a-z0-9])?
public PipelineDescription PipelineDescription { get; set; }
Preliminary field: The format of this data may change at any time.
A description of the user pipeline and stages through which it is executed.
Created by Cloud Dataflow service. Only retrieved with
JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
If this job is an update of an existing job, this field is the job ID
of the job it replaced.
When sending a CreateJobRequest, you can update a job by specifying it
here. The job named here is stopped, and its intermediate state is
transferred to this job.
UpdateJob may be used to switch between the JOB_STATE_STOPPED and
JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may
also be used to directly set a job's requested state to
JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the
job if it has not already reached a terminal state.
The timestamp when the job was started (transitioned to JOB_STATE_PENDING).
Flexible resource scheduling jobs are started with some delay after job
creation, so start_time is unset before start and is updated when the
job is started by the Cloud Dataflow service. For other jobs, start_time
always equals to create_time and is immutable and set by the Cloud Dataflow
service.
A set of files the system should be aware of that are used
for temporary storage. These temporary files will be
removed on job completion.
No duplicates are allowed.
No file patterns are supported.
[[["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\u003eJob\u003c/code\u003e class in the Dataflow v1beta3 API defines a job to be run by the Cloud Dataflow service, and it implements several interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThis class provides properties for managing various aspects of a job, such as its \u003ccode\u003eId\u003c/code\u003e, \u003ccode\u003eName\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e, \u003ccode\u003eEnvironment\u003c/code\u003e, and associated \u003ccode\u003eTimestamps\u003c/code\u003e, including the creation and start time.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eJob\u003c/code\u003e objects can be constructed with no arguments or by cloning another \u003ccode\u003eJob\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eJob\u003c/code\u003e class offers functionality for updating and replacing existing jobs through properties such as \u003ccode\u003eReplaceJobId\u003c/code\u003e and \u003ccode\u003eReplacedByJobId\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eUser-defined labels can be added to a \u003ccode\u003eJob\u003c/code\u003e to categorize and manage it, and there are also properties for \u003ccode\u003eTempFiles\u003c/code\u003e to indicate temporary storage, as well as \u003ccode\u003eSteps\u003c/code\u003e or \u003ccode\u003eStepsLocation\u003c/code\u003e to define the operations of the job.\u003c/p\u003e\n"]]],[],null,["# Dataflow v1beta3 API - Class Job (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.Job)\n- [2.0.0-beta06](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/2.0.0-beta06/Google.Cloud.Dataflow.V1Beta3.Job)\n- [1.0.0-beta03](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/1.0.0-beta03/Google.Cloud.Dataflow.V1Beta3.Job) \n\n public sealed class Job : IMessage\u003cJob\u003e, IEquatable\u003cJob\u003e, IDeepCloneable\u003cJob\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Dataflow v1beta3 API class Job.\n\nDefines a job to be run by the Cloud Dataflow service. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Job \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Job](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.Job), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Job](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.Job), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Job](/dotnet/docs/reference/Google.Cloud.Dataflow.V1Beta3/latest/Google.Cloud.Dataflow.V1Beta3.Job), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \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.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\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\nConstructors\n------------\n\n### Job()\n\n public Job()\n\n### Job(Job)\n\n public Job(Job other)\n\nProperties\n----------\n\n### ClientRequestId\n\n public string ClientRequestId { get; set; }\n\nThe client's unique identifier of the job, re-used across retried attempts.\nIf this field is set, the service will ensure its uniqueness.\nThe request to create a job will fail if the service has knowledge of a\npreviously submitted job with the same client's ID and job name.\nThe caller may use this field to ensure idempotence of job\ncreation across retried attempts to create a job.\nBy default, the field is empty and, in that case, the service ignores it.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nThe timestamp when the job was initially created. Immutable and set by the\nCloud Dataflow service.\n\n### CreatedFromSnapshotId\n\n public string CreatedFromSnapshotId { get; set; }\n\nIf this is specified, the job's initial state is populated from the given\nsnapshot.\n\n### CurrentState\n\n public JobState CurrentState { get; set; }\n\nThe current state of the job.\n\nJobs are created in the `JOB_STATE_STOPPED` state unless otherwise\nspecified.\n\nA job in the `JOB_STATE_RUNNING` state may asynchronously enter a\nterminal state. After a job has reached a terminal state, no\nfurther state updates may be made.\n\nThis field may be mutated by the Cloud Dataflow service;\ncallers cannot mutate it.\n\n### CurrentStateTime\n\n public Timestamp CurrentStateTime { get; set; }\n\nThe timestamp associated with the current state.\n\n### Environment\n\n public Environment Environment { get; set; }\n\nThe environment for the job.\n\n### ExecutionInfo\n\n public JobExecutionInfo ExecutionInfo { get; set; }\n\nDeprecated.\n\n### Id\n\n public string Id { get; set; }\n\nThe unique ID of this job.\n\nThis field is set by the Cloud Dataflow service when the Job is\ncreated, and is immutable for the life of the job.\n\n### JobMetadata\n\n public JobMetadata JobMetadata { get; set; }\n\nThis field is populated by the Dataflow service to support filtering jobs\nby the metadata values provided here. Populated for ListJobs and all GetJob\nviews SUMMARY and higher.\n\n### Labels\n\n public MapField\u003cstring, string\u003e Labels { get; }\n\nUser-defined labels for this job.\n\nThe labels map can contain no more than 64 entries. Entries of the labels\nmap are UTF8 strings that comply with the following restrictions:\n\n- Keys must conform to regexp: \\[\\\\p{Ll}\\\\p{Lo}\\]\\[\\\\p{Ll}\\\\p{Lo}\\\\p{N}_-\\]{0,62}\n- Values must conform to regexp: \\[\\\\p{Ll}\\\\p{Lo}\\\\p{N}_-\\]{0,63}\n- Both keys and values are additionally constrained to be \\\u003c= 128 bytes in size.\n\n### Location\n\n public string Location { get; set; }\n\nThe [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that\ncontains this job.\n\n### Name\n\n public string Name { get; set; }\n\nThe user-specified Cloud Dataflow job name.\n\nOnly one Job with a given name may exist in a project at any\ngiven time. If a caller attempts to create a Job with the same\nname as an already-existing Job, the attempt returns the\nexisting Job.\n\nThe name must match the regular expression\n`[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`\n\n### PipelineDescription\n\n public PipelineDescription PipelineDescription { get; set; }\n\nPreliminary field: The format of this data may change at any time.\nA description of the user pipeline and stages through which it is executed.\nCreated by Cloud Dataflow service. Only retrieved with\nJOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.\n\n### ProjectId\n\n public string ProjectId { get; set; }\n\nThe ID of the Cloud Platform project that the job belongs to.\n\n### ReplaceJobId\n\n public string ReplaceJobId { get; set; }\n\nIf this job is an update of an existing job, this field is the job ID\nof the job it replaced.\n\nWhen sending a `CreateJobRequest`, you can update a job by specifying it\nhere. The job named here is stopped, and its intermediate state is\ntransferred to this job.\n\n### ReplacedByJobId\n\n public string ReplacedByJobId { get; set; }\n\nIf another job is an update of this job (and thus, this job is in\n`JOB_STATE_UPDATED`), this field contains the ID of that job.\n\n### RequestedState\n\n public JobState RequestedState { get; set; }\n\nThe job's requested state.\n\n`UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and\n`JOB_STATE_RUNNING` states, by setting requested_state. `UpdateJob` may\nalso be used to directly set a job's requested state to\n`JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the\njob if it has not already reached a terminal state.\n\n### SatisfiesPzs\n\n public bool SatisfiesPzs { get; set; }\n\nReserved for future use. This field is set only in responses from the\nserver; it is ignored if it is set in any requests.\n\n### StageStates\n\n public RepeatedField\u003cExecutionStageState\u003e StageStates { get; }\n\nThis field may be mutated by the Cloud Dataflow service;\ncallers cannot mutate it.\n\n### StartTime\n\n public Timestamp StartTime { get; set; }\n\nThe timestamp when the job was started (transitioned to JOB_STATE_PENDING).\nFlexible resource scheduling jobs are started with some delay after job\ncreation, so start_time is unset before start and is updated when the\njob is started by the Cloud Dataflow service. For other jobs, start_time\nalways equals to create_time and is immutable and set by the Cloud Dataflow\nservice.\n\n### Steps\n\n public RepeatedField\u003cStep\u003e Steps { get; }\n\nExactly one of step or steps_location should be specified.\n\nThe top-level steps that constitute the entire job. Only retrieved with\nJOB_VIEW_ALL.\n\n### StepsLocation\n\n public string StepsLocation { get; set; }\n\nThe Cloud Storage location where the steps are stored.\n\n### TempFiles\n\n public RepeatedField\u003cstring\u003e TempFiles { get; }\n\nA set of files the system should be aware of that are used\nfor temporary storage. These temporary files will be\nremoved on job completion.\nNo duplicates are allowed.\nNo file patterns are supported.\n\nThe supported files are:\n\nGoogle Cloud Storage:\n\nstorage.googleapis.com/{bucket}/{object}\nbucket.storage.googleapis.com/{object}\n\n### TransformNameMapping\n\n public MapField\u003cstring, string\u003e TransformNameMapping { get; }\n\nThe map of transform name prefixes of the job to be replaced to the\ncorresponding name prefixes of the new job.\n\n### Type\n\n public JobType Type { get; set; }\n\nThe type of Cloud Dataflow job."]]