123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807 |
- // Copyright 2021 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.dataproc.v1;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/cloud/dataproc/v1/clusters.proto";
- import "google/cloud/dataproc/v1/jobs.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/duration.proto";
- import "google/protobuf/empty.proto";
- import "google/protobuf/timestamp.proto";
- option go_package = "google.golang.org/genproto/googleapis/cloud/dataproc/v1;dataproc";
- option java_multiple_files = true;
- option java_outer_classname = "WorkflowTemplatesProto";
- option java_package = "com.google.cloud.dataproc.v1";
- // The API interface for managing Workflow Templates in the
- // Dataproc API.
- service WorkflowTemplateService {
- option (google.api.default_host) = "dataproc.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // Creates new workflow template.
- rpc CreateWorkflowTemplate(CreateWorkflowTemplateRequest) returns (WorkflowTemplate) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*/locations/*}/workflowTemplates"
- body: "template"
- additional_bindings {
- post: "/v1/{parent=projects/*/regions/*}/workflowTemplates"
- body: "template"
- }
- };
- option (google.api.method_signature) = "parent,template";
- }
- // Retrieves the latest workflow template.
- //
- // Can retrieve previously instantiated template by specifying optional
- // version parameter.
- rpc GetWorkflowTemplate(GetWorkflowTemplateRequest) returns (WorkflowTemplate) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/locations/*/workflowTemplates/*}"
- additional_bindings {
- get: "/v1/{name=projects/*/regions/*/workflowTemplates/*}"
- }
- };
- option (google.api.method_signature) = "name";
- }
- // Instantiates a template and begins execution.
- //
- // The returned Operation can be used to track execution of
- // workflow by polling
- // [operations.get][google.longrunning.Operations.GetOperation].
- // The Operation will complete when entire workflow is finished.
- //
- // The running workflow can be aborted via
- // [operations.cancel][google.longrunning.Operations.CancelOperation].
- // This will cause any inflight jobs to be cancelled and workflow-owned
- // clusters to be deleted.
- //
- // The [Operation.metadata][google.longrunning.Operation.metadata] will be
- // [WorkflowMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata).
- // Also see [Using
- // WorkflowMetadata](https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).
- //
- // On successful completion,
- // [Operation.response][google.longrunning.Operation.response] will be
- // [Empty][google.protobuf.Empty].
- rpc InstantiateWorkflowTemplate(InstantiateWorkflowTemplateRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/workflowTemplates/*}:instantiate"
- body: "*"
- additional_bindings {
- post: "/v1/{name=projects/*/regions/*/workflowTemplates/*}:instantiate"
- body: "*"
- }
- };
- option (google.api.method_signature) = "name";
- option (google.api.method_signature) = "name,parameters";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "WorkflowMetadata"
- };
- }
- // Instantiates a template and begins execution.
- //
- // This method is equivalent to executing the sequence
- // [CreateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.CreateWorkflowTemplate], [InstantiateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateWorkflowTemplate],
- // [DeleteWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.DeleteWorkflowTemplate].
- //
- // The returned Operation can be used to track execution of
- // workflow by polling
- // [operations.get][google.longrunning.Operations.GetOperation].
- // The Operation will complete when entire workflow is finished.
- //
- // The running workflow can be aborted via
- // [operations.cancel][google.longrunning.Operations.CancelOperation].
- // This will cause any inflight jobs to be cancelled and workflow-owned
- // clusters to be deleted.
- //
- // The [Operation.metadata][google.longrunning.Operation.metadata] will be
- // [WorkflowMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata).
- // Also see [Using
- // WorkflowMetadata](https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).
- //
- // On successful completion,
- // [Operation.response][google.longrunning.Operation.response] will be
- // [Empty][google.protobuf.Empty].
- rpc InstantiateInlineWorkflowTemplate(InstantiateInlineWorkflowTemplateRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*/locations/*}/workflowTemplates:instantiateInline"
- body: "template"
- additional_bindings {
- post: "/v1/{parent=projects/*/regions/*}/workflowTemplates:instantiateInline"
- body: "template"
- }
- };
- option (google.api.method_signature) = "parent,template";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "WorkflowMetadata"
- };
- }
- // Updates (replaces) workflow template. The updated template
- // must contain version that matches the current server version.
- rpc UpdateWorkflowTemplate(UpdateWorkflowTemplateRequest) returns (WorkflowTemplate) {
- option (google.api.http) = {
- put: "/v1/{template.name=projects/*/locations/*/workflowTemplates/*}"
- body: "template"
- additional_bindings {
- put: "/v1/{template.name=projects/*/regions/*/workflowTemplates/*}"
- body: "template"
- }
- };
- option (google.api.method_signature) = "template";
- }
- // Lists workflows that match the specified filter in the request.
- rpc ListWorkflowTemplates(ListWorkflowTemplatesRequest) returns (ListWorkflowTemplatesResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*/locations/*}/workflowTemplates"
- additional_bindings {
- get: "/v1/{parent=projects/*/regions/*}/workflowTemplates"
- }
- };
- option (google.api.method_signature) = "parent";
- }
- // Deletes a workflow template. It does not cancel in-progress workflows.
- rpc DeleteWorkflowTemplate(DeleteWorkflowTemplateRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/locations/*/workflowTemplates/*}"
- additional_bindings {
- delete: "/v1/{name=projects/*/regions/*/workflowTemplates/*}"
- }
- };
- option (google.api.method_signature) = "name";
- }
- }
- // A Dataproc workflow template resource.
- message WorkflowTemplate {
- option (google.api.resource) = {
- type: "dataproc.googleapis.com/WorkflowTemplate"
- pattern: "projects/{project}/regions/{region}/workflowTemplates/{workflow_template}"
- pattern: "projects/{project}/locations/{location}/workflowTemplates/{workflow_template}"
- history: ORIGINALLY_SINGLE_PATTERN
- };
- string id = 2 [(google.api.field_behavior) = REQUIRED];
- // Output only. The resource name of the workflow template, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
- //
- // * For `projects.locations.workflowTemplates`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Optional. Used to perform a consistent read-modify-write.
- //
- // This field should be left blank for a `CreateWorkflowTemplate` request. It
- // is required for an `UpdateWorkflowTemplate` request, and must match the
- // current server version. A typical update template flow would fetch the
- // current template with a `GetWorkflowTemplate` request, which will return
- // the current template with the `version` field filled in with the
- // current server version. The user updates other fields in the template,
- // then returns it as part of the `UpdateWorkflowTemplate` request.
- int32 version = 3 [(google.api.field_behavior) = OPTIONAL];
- // Output only. The time template was created.
- google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time template was last updated.
- google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Optional. The labels to associate with this template. These labels
- // will be propagated to all jobs and clusters created by the workflow
- // instance.
- //
- // Label **keys** must contain 1 to 63 characters, and must conform to
- // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
- //
- // Label **values** may be empty, but, if present, must contain 1 to 63
- // characters, and must conform to
- // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
- //
- // No more than 32 labels can be associated with a template.
- map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
- // Required. WorkflowTemplate scheduling information.
- WorkflowTemplatePlacement placement = 7 [(google.api.field_behavior) = REQUIRED];
- // Required. The Directed Acyclic Graph of Jobs to submit.
- repeated OrderedJob jobs = 8 [(google.api.field_behavior) = REQUIRED];
- // Optional. Template parameters whose values are substituted into the
- // template. Values for parameters must be provided when the template is
- // instantiated.
- repeated TemplateParameter parameters = 9 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Timeout duration for the DAG of jobs, expressed in seconds (see
- // [JSON representation of
- // duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
- // The timeout duration must be from 10 minutes ("600s") to 24 hours
- // ("86400s"). The timer begins when the first job is submitted. If the
- // workflow is running at the end of the timeout period, any remaining jobs
- // are cancelled, the workflow is ended, and if the workflow was running on a
- // [managed
- // cluster](/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster),
- // the cluster is deleted.
- google.protobuf.Duration dag_timeout = 10 [(google.api.field_behavior) = OPTIONAL];
- }
- // Specifies workflow execution target.
- //
- // Either `managed_cluster` or `cluster_selector` is required.
- message WorkflowTemplatePlacement {
- // Required. Specifies where workflow executes; either on a managed
- // cluster or an existing cluster chosen by labels.
- oneof placement {
- // A cluster that is managed by the workflow.
- ManagedCluster managed_cluster = 1;
- // Optional. A selector that chooses target cluster for jobs based
- // on metadata.
- //
- // The selector is evaluated at the time each job is submitted.
- ClusterSelector cluster_selector = 2;
- }
- }
- // Cluster that is managed by the workflow.
- message ManagedCluster {
- // Required. The cluster name prefix. A unique cluster name will be formed by
- // appending a random suffix.
- //
- // The name must contain only lower-case letters (a-z), numbers (0-9),
- // and hyphens (-). Must begin with a letter. Cannot begin or end with
- // hyphen. Must consist of between 2 and 35 characters.
- string cluster_name = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The cluster configuration.
- ClusterConfig config = 3 [(google.api.field_behavior) = REQUIRED];
- // Optional. The labels to associate with this cluster.
- //
- // Label keys must be between 1 and 63 characters long, and must conform to
- // the following PCRE regular expression:
- // [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}
- //
- // Label values must be between 1 and 63 characters long, and must conform to
- // the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
- //
- // No more than 32 labels can be associated with a given cluster.
- map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
- }
- // A selector that chooses target cluster for jobs based on metadata.
- message ClusterSelector {
- // Optional. The zone where workflow process executes. This parameter does not
- // affect the selection of the cluster.
- //
- // If unspecified, the zone of the first cluster matching the selector
- // is used.
- string zone = 1 [(google.api.field_behavior) = OPTIONAL];
- // Required. The cluster labels. Cluster must have all labels
- // to match.
- map<string, string> cluster_labels = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // A job executed by the workflow.
- message OrderedJob {
- // Required. The step id. The id must be unique among all jobs
- // within the template.
- //
- // The step id is used as prefix for job id, as job
- // `goog-dataproc-workflow-step-id` label, and in
- // [prerequisiteStepIds][google.cloud.dataproc.v1.OrderedJob.prerequisite_step_ids] field from other
- // steps.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9),
- // underscores (_), and hyphens (-). Cannot begin or end with underscore
- // or hyphen. Must consist of between 3 and 50 characters.
- string step_id = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The job definition.
- oneof job_type {
- // Optional. Job is a Hadoop job.
- HadoopJob hadoop_job = 2 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a Spark job.
- SparkJob spark_job = 3 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a PySpark job.
- PySparkJob pyspark_job = 4 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a Hive job.
- HiveJob hive_job = 5 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a Pig job.
- PigJob pig_job = 6 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a SparkR job.
- SparkRJob spark_r_job = 11 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a SparkSql job.
- SparkSqlJob spark_sql_job = 7 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job is a Presto job.
- PrestoJob presto_job = 12 [(google.api.field_behavior) = OPTIONAL];
- }
- // Optional. The labels to associate with this job.
- //
- // Label keys must be between 1 and 63 characters long, and must conform to
- // the following regular expression:
- // [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}
- //
- // Label values must be between 1 and 63 characters long, and must conform to
- // the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
- //
- // No more than 32 labels can be associated with a given job.
- map<string, string> labels = 8 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Job scheduling configuration.
- JobScheduling scheduling = 9 [(google.api.field_behavior) = OPTIONAL];
- // Optional. The optional list of prerequisite job step_ids.
- // If not specified, the job will start at the beginning of workflow.
- repeated string prerequisite_step_ids = 10 [(google.api.field_behavior) = OPTIONAL];
- }
- // A configurable parameter that replaces one or more fields in the template.
- // Parameterizable fields:
- // - Labels
- // - File uris
- // - Job properties
- // - Job arguments
- // - Script variables
- // - Main class (in HadoopJob and SparkJob)
- // - Zone (in ClusterSelector)
- message TemplateParameter {
- // Required. Parameter name.
- // The parameter name is used as the key, and paired with the
- // parameter value, which are passed to the template when the template
- // is instantiated.
- // The name must contain only capital letters (A-Z), numbers (0-9), and
- // underscores (_), and must not start with a number. The maximum length is
- // 40 characters.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Paths to all fields that the parameter replaces.
- // A field is allowed to appear in at most one parameter's list of field
- // paths.
- //
- // A field path is similar in syntax to a [google.protobuf.FieldMask][google.protobuf.FieldMask].
- // For example, a field path that references the zone field of a workflow
- // template's cluster selector would be specified as
- // `placement.clusterSelector.zone`.
- //
- // Also, field paths can reference fields using the following syntax:
- //
- // * Values in maps can be referenced by key:
- // * labels['key']
- // * placement.clusterSelector.clusterLabels['key']
- // * placement.managedCluster.labels['key']
- // * placement.clusterSelector.clusterLabels['key']
- // * jobs['step-id'].labels['key']
- //
- // * Jobs in the jobs list can be referenced by step-id:
- // * jobs['step-id'].hadoopJob.mainJarFileUri
- // * jobs['step-id'].hiveJob.queryFileUri
- // * jobs['step-id'].pySparkJob.mainPythonFileUri
- // * jobs['step-id'].hadoopJob.jarFileUris[0]
- // * jobs['step-id'].hadoopJob.archiveUris[0]
- // * jobs['step-id'].hadoopJob.fileUris[0]
- // * jobs['step-id'].pySparkJob.pythonFileUris[0]
- //
- // * Items in repeated fields can be referenced by a zero-based index:
- // * jobs['step-id'].sparkJob.args[0]
- //
- // * Other examples:
- // * jobs['step-id'].hadoopJob.properties['key']
- // * jobs['step-id'].hadoopJob.args[0]
- // * jobs['step-id'].hiveJob.scriptVariables['key']
- // * jobs['step-id'].hadoopJob.mainJarFileUri
- // * placement.clusterSelector.zone
- //
- // It may not be possible to parameterize maps and repeated fields in their
- // entirety since only individual map values and individual items in repeated
- // fields can be referenced. For example, the following field paths are
- // invalid:
- //
- // - placement.clusterSelector.clusterLabels
- // - jobs['step-id'].sparkJob.args
- repeated string fields = 2 [(google.api.field_behavior) = REQUIRED];
- // Optional. Brief description of the parameter.
- // Must not exceed 1024 characters.
- string description = 3 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Validation rules to be applied to this parameter's value.
- ParameterValidation validation = 4 [(google.api.field_behavior) = OPTIONAL];
- }
- // Configuration for parameter validation.
- message ParameterValidation {
- // Required. The type of validation to be performed.
- oneof validation_type {
- // Validation based on regular expressions.
- RegexValidation regex = 1;
- // Validation based on a list of allowed values.
- ValueValidation values = 2;
- }
- }
- // Validation based on regular expressions.
- message RegexValidation {
- // Required. RE2 regular expressions used to validate the parameter's value.
- // The value must match the regex in its entirety (substring
- // matches are not sufficient).
- repeated string regexes = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Validation based on a list of allowed values.
- message ValueValidation {
- // Required. List of allowed values for the parameter.
- repeated string values = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // A Dataproc workflow template resource.
- message WorkflowMetadata {
- // The operation state.
- enum State {
- // Unused.
- UNKNOWN = 0;
- // The operation has been created.
- PENDING = 1;
- // The operation is running.
- RUNNING = 2;
- // The operation is done; either cancelled or completed.
- DONE = 3;
- }
- // Output only. The resource name of the workflow template as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
- //
- // * For `projects.locations.workflowTemplates`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`
- string template = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The version of template at the time of
- // workflow instantiation.
- int32 version = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The create cluster operation metadata.
- ClusterOperation create_cluster = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The workflow graph.
- WorkflowGraph graph = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The delete cluster operation metadata.
- ClusterOperation delete_cluster = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The workflow state.
- State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The name of the target cluster.
- string cluster_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Map from parameter names to values that were used for those parameters.
- map<string, string> parameters = 8;
- // Output only. Workflow start time.
- google.protobuf.Timestamp start_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Workflow end time.
- google.protobuf.Timestamp end_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The UUID of target cluster.
- string cluster_uuid = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The timeout duration for the DAG of jobs, expressed in seconds (see
- // [JSON representation of
- // duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
- google.protobuf.Duration dag_timeout = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. DAG start time, only set for workflows with [dag_timeout][google.cloud.dataproc.v1.WorkflowMetadata.dag_timeout] when DAG
- // begins.
- google.protobuf.Timestamp dag_start_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. DAG end time, only set for workflows with [dag_timeout][google.cloud.dataproc.v1.WorkflowMetadata.dag_timeout] when DAG ends.
- google.protobuf.Timestamp dag_end_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // The cluster operation triggered by a workflow.
- message ClusterOperation {
- // Output only. The id of the cluster operation.
- string operation_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Error, if operation failed.
- string error = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Indicates the operation is done.
- bool done = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // The workflow graph.
- message WorkflowGraph {
- // Output only. The workflow nodes.
- repeated WorkflowNode nodes = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // The workflow node.
- message WorkflowNode {
- // The workflow node state.
- enum NodeState {
- // State is unspecified.
- NODE_STATE_UNSPECIFIED = 0;
- // The node is awaiting prerequisite node to finish.
- BLOCKED = 1;
- // The node is runnable but not running.
- RUNNABLE = 2;
- // The node is running.
- RUNNING = 3;
- // The node completed successfully.
- COMPLETED = 4;
- // The node failed. A node can be marked FAILED because
- // its ancestor or peer failed.
- FAILED = 5;
- }
- // Output only. The name of the node.
- string step_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Node's prerequisite nodes.
- repeated string prerequisite_step_ids = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The job id; populated after the node enters RUNNING state.
- string job_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The node state.
- NodeState state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The error detail.
- string error = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // A request to create a workflow template.
- message CreateWorkflowTemplateRequest {
- // Required. The resource name of the region or location, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates.create`, the resource name of the
- // region has the following format:
- // `projects/{project_id}/regions/{region}`
- //
- // * For `projects.locations.workflowTemplates.create`, the resource name of
- // the location has the following format:
- // `projects/{project_id}/locations/{location}`
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Required. The Dataproc workflow template to create.
- WorkflowTemplate template = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // A request to fetch a workflow template.
- message GetWorkflowTemplateRequest {
- // Required. The resource name of the workflow template, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates.get`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
- //
- // * For `projects.locations.workflowTemplates.get`, the resource name of the
- // template has the following format:
- // `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Optional. The version of workflow template to retrieve. Only previously
- // instantiated versions can be retrieved.
- //
- // If unspecified, retrieves the current version.
- int32 version = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // A request to instantiate a workflow template.
- message InstantiateWorkflowTemplateRequest {
- // Required. The resource name of the workflow template, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates.instantiate`, the resource name
- // of the template has the following format:
- // `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
- //
- // * For `projects.locations.workflowTemplates.instantiate`, the resource name
- // of the template has the following format:
- // `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Optional. The version of workflow template to instantiate. If specified,
- // the workflow will be instantiated only if the current version of
- // the workflow template has the supplied version.
- //
- // This option cannot be used to instantiate a previous version of
- // workflow template.
- int32 version = 2 [(google.api.field_behavior) = OPTIONAL];
- // Optional. A tag that prevents multiple concurrent workflow
- // instances with the same tag from running. This mitigates risk of
- // concurrent instances started due to retries.
- //
- // It is recommended to always set this value to a
- // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
- //
- // The tag must contain only letters (a-z, A-Z), numbers (0-9),
- // underscores (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 5 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Map from parameter names to values that should be used for those
- // parameters. Values may not exceed 1000 characters.
- map<string, string> parameters = 6 [(google.api.field_behavior) = OPTIONAL];
- }
- // A request to instantiate an inline workflow template.
- message InstantiateInlineWorkflowTemplateRequest {
- // Required. The resource name of the region or location, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates,instantiateinline`, the resource
- // name of the region has the following format:
- // `projects/{project_id}/regions/{region}`
- //
- // * For `projects.locations.workflowTemplates.instantiateinline`, the
- // resource name of the location has the following format:
- // `projects/{project_id}/locations/{location}`
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Required. The workflow template to instantiate.
- WorkflowTemplate template = 2 [(google.api.field_behavior) = REQUIRED];
- // Optional. A tag that prevents multiple concurrent workflow
- // instances with the same tag from running. This mitigates risk of
- // concurrent instances started due to retries.
- //
- // It is recommended to always set this value to a
- // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
- //
- // The tag must contain only letters (a-z, A-Z), numbers (0-9),
- // underscores (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // A request to update a workflow template.
- message UpdateWorkflowTemplateRequest {
- // Required. The updated workflow template.
- //
- // The `template.version` field must match the current version.
- WorkflowTemplate template = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // A request to list workflow templates in a project.
- message ListWorkflowTemplatesRequest {
- // Required. The resource name of the region or location, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates,list`, the resource
- // name of the region has the following format:
- // `projects/{project_id}/regions/{region}`
- //
- // * For `projects.locations.workflowTemplates.list`, the
- // resource name of the location has the following format:
- // `projects/{project_id}/locations/{location}`
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Optional. The maximum number of results to return in each response.
- int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
- // Optional. The page token, returned by a previous call, to request the
- // next page of results.
- string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // A response to a request to list workflow templates in a project.
- message ListWorkflowTemplatesResponse {
- // Output only. WorkflowTemplates list.
- repeated WorkflowTemplate templates = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. This token is included in the response if there are more
- // results to fetch. To fetch additional results, provide this value as the
- // page_token in a subsequent <code>ListWorkflowTemplatesRequest</code>.
- string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // A request to delete a workflow template.
- //
- // Currently started workflows will remain running.
- message DeleteWorkflowTemplateRequest {
- // Required. The resource name of the workflow template, as described
- // in https://cloud.google.com/apis/design/resource_names.
- //
- // * For `projects.regions.workflowTemplates.delete`, the resource name
- // of the template has the following format:
- // `projects/{project_id}/regions/{region}/workflowTemplates/{template_id}`
- //
- // * For `projects.locations.workflowTemplates.instantiate`, the resource name
- // of the template has the following format:
- // `projects/{project_id}/locations/{location}/workflowTemplates/{template_id}`
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "dataproc.googleapis.com/WorkflowTemplate"
- }
- ];
- // Optional. The version of workflow template to delete. If specified,
- // will only delete the template if the current server version matches
- // specified version.
- int32 version = 2 [(google.api.field_behavior) = OPTIONAL];
- }
|