From 858baf566b69305251bb6b673d2f1358bc9d3fb4 Mon Sep 17 00:00:00 2001 From: viniciusdc Date: Wed, 6 Dec 2023 12:34:47 -0300 Subject: [PATCH 01/11] include workflow.proto file --- protos/workflow.proto | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 protos/workflow.proto diff --git a/protos/workflow.proto b/protos/workflow.proto new file mode 100644 index 0000000..3f0195a --- /dev/null +++ b/protos/workflow.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +package workflow; + +option go_package = "github.com/jupyter-naas/naas-models/go/workflow"; + +import "validate.proto"; From f2a0f0c4f8f2bf5cc3e995773e69f2c854bff689 Mon Sep 17 00:00:00 2001 From: vinicius douglas cerutti Date: Thu, 14 Dec 2023 13:35:20 -0300 Subject: [PATCH 02/11] add modified version with workflow CRUD methods and CRDs --- protos/workflow.proto | 159 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) diff --git a/protos/workflow.proto b/protos/workflow.proto index 3f0195a..97d07e4 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -5,3 +5,162 @@ package workflow; option go_package = "github.com/jupyter-naas/naas-models/go/workflow"; import "validate.proto"; + +/** +* Argo workflow custom resources +*/ + +message WorkflowArchive { + map none = 1; +} + +message WorkflowArtifactS3 { + optional string key = 1; + optional string bucket = 2; +} + +message workflowArtifact { + optional string name = 1; + optional string path = 2; + optional int32 mode = 3; + optional string from = 4; + optional WorkflowA archive = 5; + optional WorkflowArtifactS3 s3 = 6; +} + +message WorkflowInputs { + repeated WorkflowParameter parameters = 1; + repeated WorkflowArtifact artifacts = 2; +} + +message WorkflowOutputs { + repeated WorkflowParameter parameters = 1; + repeated WorkflowArtifact artifacts = 2; +} + +message WorkflowParameter { + optional string name = 1; + optional string value = 2; + optional string default = 3; +} + +message WorkflowArguments { + map parameters = 1; + map artifacts = 2; +} + +message WorkflowDagTasks { + string name = 1; + string template = 2; + optional string depends = 3; + optional workflowArguments arguments = 4; +} + +message WorkflowDagTemplate { + repeated WorkflowDagTasks tasks = 1; + optional string target = 2; +} + +message WorkflowScriptTemplate { + optional string source = 1; +} + +message workflowTemplate { + optional string name = 1; + optional string container = 5; + optional WorkflowInputsTemplate inputs = 2; + optional WorkflowOutputsTemplate outputs = 3; + optional WorkflowMetadata metadata = 4; + optional WorkflowDagTemplate dag = 4; + optional WorkflowScriptTemplate script = 5; +} + +message WorkflowSpec { + string entrypoint = 1; + optional WorkflowArguments arguments = 2; + repeated WorkflowTemplate templates = 3; +} + + +/** +* Argo workflow CRUD resources +*/ + +message WorkflowCreationRequest { + optional string name = 1; + optional string namespace = 2; + optional string workflowTemplate = 4; + optional string workflowSpec = 5; +} + +message WorkflowCreationResponse { + optional string name = 1; + optional string message = 2; +} + +message WorkflowUpdateRequest { + optional string name = 1; + optional string namespace = 2; + optional string workflowTemplate = 4; + optional string workflowSpec = 5; +} + +message WorkflowUpdateResponse { + optional string name = 1; + optional string message = 2; +} + +message WorkflowDeleteRequest { + optional string name = 1; + optional string namespace = 2; +} + +message WorkflowDeleteResponse { + optional string name = 1; + optional string message = 2; +} + +message WorkflowGetRequest { + optional string name = 1; + optional string namespace = 2; +} + +message WorkflowGetResponse { + optional string name = 1; + optional string message = 2; +} + +message WorkflowListRequest {} + +message WorkflowListResponse { + repeated WorkflowGetResponse workflows = 1; +} + +/** +* Errors +*/ + +message WorkflowCreationError { + optional string name = 1; + optional string message = 2; +} + +message WorkflowUpdateError { + optional string name = 1; + optional string message = 2; +} + +message WorkflowDeleteError { + optional string name = 1; + optional string message = 2; +} + +message WorkflowGetError { + optional string name = 1; + optional string message = 2; +} + +message WorkflowListError { + optional string name = 1; + optional string message = 2; +} From 28804ed4251283e4edb463405a3943f306a9a8af Mon Sep 17 00:00:00 2001 From: vinicius douglas cerutti Date: Fri, 15 Dec 2023 12:26:45 -0300 Subject: [PATCH 03/11] update proto config for render --- Makefile | 10 ++++---- protos/workflow.proto | 55 +++++++++++++++++++++---------------------- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index 8c0e238..5fa5ed5 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ build: python: python/naas_models python/naas_models/pydantic -python/naas_models: +python/naas_models: mkdir -p python/naas_models python/naas_models/pydantic: python/naas_models @@ -18,7 +18,7 @@ go: mkdir go clean: - rm -rf dist go python/naas_models/*_pb2.py python/naas_models/pydantic/*_p2p.py + rm -rf dist go python/naas_models/*_pb2.py python/naas_models/pydantic/*_p2p.py generate: clean python go $(d) python3 -m grpc_tools.protoc \ @@ -28,8 +28,8 @@ generate: clean python go --python_out=python/naas_models \ --go_out=go \ --validate_out="lang=go:go" \ - space.proto registry.proto iam.proto aimodel.proto chat.proto credit.proto validate.proto + space.proto registry.proto iam.proto aimodel.proto chat.proto credit.proto validate.proto workflow.proto cd python/naas_models && sed -i.bak 's/import validate_pb2/import naas_models.validate_pb2/g' *.py && rm *.bak -bash: - $(d) /bin/bash \ No newline at end of file +bash: + $(d) /bin/bash diff --git a/protos/workflow.proto b/protos/workflow.proto index 97d07e4..6cb0fb0 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -10,75 +10,74 @@ import "validate.proto"; * Argo workflow custom resources */ -message WorkflowArchive { +message Archive { map none = 1; } -message WorkflowArtifactS3 { +message ArtifactS3 { optional string key = 1; optional string bucket = 2; } -message workflowArtifact { +message Artifact { optional string name = 1; optional string path = 2; optional int32 mode = 3; optional string from = 4; - optional WorkflowA archive = 5; - optional WorkflowArtifactS3 s3 = 6; + optional Archive archive = 5; + optional ArtifactS3 s3 = 6; } -message WorkflowInputs { - repeated WorkflowParameter parameters = 1; - repeated WorkflowArtifact artifacts = 2; +message Inputs { + repeated Parameter parameters = 1; + repeated Artifact artifacts = 2; } -message WorkflowOutputs { - repeated WorkflowParameter parameters = 1; - repeated WorkflowArtifact artifacts = 2; +message Outputs { + repeated Parameter parameters = 1; + repeated Artifact artifacts = 2; } -message WorkflowParameter { +message Parameter { optional string name = 1; optional string value = 2; optional string default = 3; } -message WorkflowArguments { +message Arguments { map parameters = 1; map artifacts = 2; } -message WorkflowDagTasks { +message DagTasks { string name = 1; string template = 2; optional string depends = 3; - optional workflowArguments arguments = 4; + optional Arguments arguments = 4; } -message WorkflowDagTemplate { - repeated WorkflowDagTasks tasks = 1; +message DagTemplate { + repeated DagTasks tasks = 1; optional string target = 2; } -message WorkflowScriptTemplate { +message ScriptTemplate { optional string source = 1; } -message workflowTemplate { +message Template { optional string name = 1; - optional string container = 5; - optional WorkflowInputsTemplate inputs = 2; - optional WorkflowOutputsTemplate outputs = 3; - optional WorkflowMetadata metadata = 4; - optional WorkflowDagTemplate dag = 4; - optional WorkflowScriptTemplate script = 5; + optional string container = 2; + optional Inputs inputs = 3; + optional Outputs outputs = 4; + optional DagTemplate dag = 5; + optional ScriptTemplate script = 6; } -message WorkflowSpec { +message Spec { string entrypoint = 1; - optional WorkflowArguments arguments = 2; - repeated WorkflowTemplate templates = 3; + optional Arguments arguments = 2; + repeated Template templates = 3; } From f5f5e14f6d3cabce11845e82b43285ddec588757 Mon Sep 17 00:00:00 2001 From: vinicius douglas cerutti Date: Fri, 15 Dec 2023 12:27:34 -0300 Subject: [PATCH 04/11] include python renders for workflow --- python/naas_models/pydantic/workflow_p2p.py | 301 ++++++++++++++++++ python/naas_models/workflow_pb2.py | 335 ++++++++++++++++++++ 2 files changed, 636 insertions(+) create mode 100644 python/naas_models/pydantic/workflow_p2p.py create mode 100644 python/naas_models/workflow_pb2.py diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py new file mode 100644 index 0000000..ff09132 --- /dev/null +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -0,0 +1,301 @@ +# This is an automatically generated file, please do not change +# gen by protobuf_to_pydantic(https://github.com/so1n/protobuf_to_pydantic) +# type: ignore + +from google.protobuf.message import Message # type: ignore +from protobuf_to_pydantic.customer_validator import check_one_of +from pydantic import BaseModel +from pydantic import root_validator +from pydantic.fields import FieldInfo +import typing + + + + + +class Archive(BaseModel): + + none: typing.Dict[str, str] = FieldInfo(default_factory=dict) + + + + +class ArtifactS3(BaseModel): + + _one_of_dict = {"ArtifactS3._bucket": {"fields": {"bucket"}}, "ArtifactS3._key": {"fields": {"key"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + key: str = FieldInfo(default="") + bucket: str = FieldInfo(default="") + + + + +class Artifact(BaseModel): + + _one_of_dict = {"Artifact._archive": {"fields": {"archive"}}, "Artifact._from": {"fields": {"from"}}, "Artifact._mode": {"fields": {"mode"}}, "Artifact._name": {"fields": {"name"}}, "Artifact._path": {"fields": {"path"}}, "Artifact._s3": {"fields": {"s3"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + path: str = FieldInfo(default="") + mode: int = FieldInfo(default=0) + archive: Archive = FieldInfo() + s3: ArtifactS3 = FieldInfo() + + + + +class Inputs(BaseModel): + + parameters: typing.List[Parameter] = FieldInfo(default_factory=list) + artifacts: typing.List[Artifact] = FieldInfo(default_factory=list) + + + + +class Outputs(BaseModel): + + parameters: typing.List[Parameter] = FieldInfo(default_factory=list) + artifacts: typing.List[Artifact] = FieldInfo(default_factory=list) + + + + +class Parameter(BaseModel): + + _one_of_dict = {"Parameter._default": {"fields": {"default"}}, "Parameter._name": {"fields": {"name"}}, "Parameter._value": {"fields": {"value"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + value: str = FieldInfo(default="") + default: str = FieldInfo(default="") + + + + +class Arguments(BaseModel): + + parameters: typing.Dict[str, str] = FieldInfo(default_factory=dict) + artifacts: typing.Dict[str, str] = FieldInfo(default_factory=dict) + + + + +class DagTasks(BaseModel): + + _one_of_dict = {"DagTasks._arguments": {"fields": {"arguments"}}, "DagTasks._depends": {"fields": {"depends"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + template: str = FieldInfo(default="") + depends: str = FieldInfo(default="") + arguments: Arguments = FieldInfo() + + + + +class DagTemplate(BaseModel): + + _one_of_dict = {"DagTemplate._target": {"fields": {"target"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + tasks: typing.List[DagTasks] = FieldInfo(default_factory=list) + target: str = FieldInfo(default="") + + + + +class ScriptTemplate(BaseModel): + + _one_of_dict = {"ScriptTemplate._source": {"fields": {"source"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + source: str = FieldInfo(default="") + + + + +class Template(BaseModel): + + _one_of_dict = {"Template._container": {"fields": {"container"}}, "Template._dag": {"fields": {"dag"}}, "Template._inputs": {"fields": {"inputs"}}, "Template._name": {"fields": {"name"}}, "Template._outputs": {"fields": {"outputs"}}, "Template._script": {"fields": {"script"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + container: str = FieldInfo(default="") + inputs: Inputs = FieldInfo() + outputs: Outputs = FieldInfo() + dag: DagTemplate = FieldInfo() + script: ScriptTemplate = FieldInfo() + + + + +class Spec(BaseModel): + + _one_of_dict = {"Spec._arguments": {"fields": {"arguments"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + entrypoint: str = FieldInfo(default="") + arguments: Arguments = FieldInfo() + templates: typing.List[Template] = FieldInfo(default_factory=list) + + + + +class WorkflowCreationRequest(BaseModel): + + _one_of_dict = {"WorkflowCreationRequest._name": {"fields": {"name"}}, "WorkflowCreationRequest._namespace": {"fields": {"namespace"}}, "WorkflowCreationRequest._workflowSpec": {"fields": {"workflowSpec"}}, "WorkflowCreationRequest._workflowTemplate": {"fields": {"workflowTemplate"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + namespace: str = FieldInfo(default="") + workflowTemplate: str = FieldInfo(default="") + workflowSpec: str = FieldInfo(default="") + + + + +class WorkflowCreationResponse(BaseModel): + + _one_of_dict = {"WorkflowCreationResponse._message": {"fields": {"message"}}, "WorkflowCreationResponse._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowUpdateRequest(BaseModel): + + _one_of_dict = {"WorkflowUpdateRequest._name": {"fields": {"name"}}, "WorkflowUpdateRequest._namespace": {"fields": {"namespace"}}, "WorkflowUpdateRequest._workflowSpec": {"fields": {"workflowSpec"}}, "WorkflowUpdateRequest._workflowTemplate": {"fields": {"workflowTemplate"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + namespace: str = FieldInfo(default="") + workflowTemplate: str = FieldInfo(default="") + workflowSpec: str = FieldInfo(default="") + + + + +class WorkflowUpdateResponse(BaseModel): + + _one_of_dict = {"WorkflowUpdateResponse._message": {"fields": {"message"}}, "WorkflowUpdateResponse._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowDeleteRequest(BaseModel): + + _one_of_dict = {"WorkflowDeleteRequest._name": {"fields": {"name"}}, "WorkflowDeleteRequest._namespace": {"fields": {"namespace"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + namespace: str = FieldInfo(default="") + + + + +class WorkflowDeleteResponse(BaseModel): + + _one_of_dict = {"WorkflowDeleteResponse._message": {"fields": {"message"}}, "WorkflowDeleteResponse._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowGetRequest(BaseModel): + + _one_of_dict = {"WorkflowGetRequest._name": {"fields": {"name"}}, "WorkflowGetRequest._namespace": {"fields": {"namespace"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + namespace: str = FieldInfo(default="") + + + + +class WorkflowGetResponse(BaseModel): + + _one_of_dict = {"WorkflowGetResponse._message": {"fields": {"message"}}, "WorkflowGetResponse._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowListRequest(BaseModel): + + + + +class WorkflowListResponse(BaseModel): + + workflows: typing.List[WorkflowGetResponse] = FieldInfo(default_factory=list) + + + + +class WorkflowCreationError(BaseModel): + + _one_of_dict = {"WorkflowCreationError._message": {"fields": {"message"}}, "WorkflowCreationError._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowUpdateError(BaseModel): + + _one_of_dict = {"WorkflowUpdateError._message": {"fields": {"message"}}, "WorkflowUpdateError._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowDeleteError(BaseModel): + + _one_of_dict = {"WorkflowDeleteError._message": {"fields": {"message"}}, "WorkflowDeleteError._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowGetError(BaseModel): + + _one_of_dict = {"WorkflowGetError._message": {"fields": {"message"}}, "WorkflowGetError._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + + + +class WorkflowListError(BaseModel): + + _one_of_dict = {"WorkflowListError._message": {"fields": {"message"}}, "WorkflowListError._name": {"fields": {"name"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + name: str = FieldInfo(default="") + message: str = FieldInfo(default="") + + diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py new file mode 100644 index 0000000..2977ebf --- /dev/null +++ b/python/naas_models/workflow_pb2.py @@ -0,0 +1,335 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: workflow.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +import naas_models.validate_pb2 as validate__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"0\n\x0eScriptTemplate\x12\x13\n\x06source\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_source\"\x9e\x02\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12%\n\x06inputs\x18\x03 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x04 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x05 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x06 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10workflowTemplate\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cworkflowSpec\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x13\n\x11_workflowTemplateB\x0f\n\r_workflowSpec\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\xb9\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10workflowTemplate\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cworkflowSpec\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x13\n\x11_workflowTemplateB\x0f\n\r_workflowSpec\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Y\n\x15WorkflowDeleteRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"V\n\x12WorkflowGetRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x15\n\x13WorkflowListRequest\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') + + + +_ARCHIVE = DESCRIPTOR.message_types_by_name['Archive'] +_ARCHIVE_NONEENTRY = _ARCHIVE.nested_types_by_name['NoneEntry'] +_ARTIFACTS3 = DESCRIPTOR.message_types_by_name['ArtifactS3'] +_ARTIFACT = DESCRIPTOR.message_types_by_name['Artifact'] +_INPUTS = DESCRIPTOR.message_types_by_name['Inputs'] +_OUTPUTS = DESCRIPTOR.message_types_by_name['Outputs'] +_PARAMETER = DESCRIPTOR.message_types_by_name['Parameter'] +_ARGUMENTS = DESCRIPTOR.message_types_by_name['Arguments'] +_ARGUMENTS_PARAMETERSENTRY = _ARGUMENTS.nested_types_by_name['ParametersEntry'] +_ARGUMENTS_ARTIFACTSENTRY = _ARGUMENTS.nested_types_by_name['ArtifactsEntry'] +_DAGTASKS = DESCRIPTOR.message_types_by_name['DagTasks'] +_DAGTEMPLATE = DESCRIPTOR.message_types_by_name['DagTemplate'] +_SCRIPTTEMPLATE = DESCRIPTOR.message_types_by_name['ScriptTemplate'] +_TEMPLATE = DESCRIPTOR.message_types_by_name['Template'] +_SPEC = DESCRIPTOR.message_types_by_name['Spec'] +_WORKFLOWCREATIONREQUEST = DESCRIPTOR.message_types_by_name['WorkflowCreationRequest'] +_WORKFLOWCREATIONRESPONSE = DESCRIPTOR.message_types_by_name['WorkflowCreationResponse'] +_WORKFLOWUPDATEREQUEST = DESCRIPTOR.message_types_by_name['WorkflowUpdateRequest'] +_WORKFLOWUPDATERESPONSE = DESCRIPTOR.message_types_by_name['WorkflowUpdateResponse'] +_WORKFLOWDELETEREQUEST = DESCRIPTOR.message_types_by_name['WorkflowDeleteRequest'] +_WORKFLOWDELETERESPONSE = DESCRIPTOR.message_types_by_name['WorkflowDeleteResponse'] +_WORKFLOWGETREQUEST = DESCRIPTOR.message_types_by_name['WorkflowGetRequest'] +_WORKFLOWGETRESPONSE = DESCRIPTOR.message_types_by_name['WorkflowGetResponse'] +_WORKFLOWLISTREQUEST = DESCRIPTOR.message_types_by_name['WorkflowListRequest'] +_WORKFLOWLISTRESPONSE = DESCRIPTOR.message_types_by_name['WorkflowListResponse'] +_WORKFLOWCREATIONERROR = DESCRIPTOR.message_types_by_name['WorkflowCreationError'] +_WORKFLOWUPDATEERROR = DESCRIPTOR.message_types_by_name['WorkflowUpdateError'] +_WORKFLOWDELETEERROR = DESCRIPTOR.message_types_by_name['WorkflowDeleteError'] +_WORKFLOWGETERROR = DESCRIPTOR.message_types_by_name['WorkflowGetError'] +_WORKFLOWLISTERROR = DESCRIPTOR.message_types_by_name['WorkflowListError'] +Archive = _reflection.GeneratedProtocolMessageType('Archive', (_message.Message,), { + + 'NoneEntry' : _reflection.GeneratedProtocolMessageType('NoneEntry', (_message.Message,), { + 'DESCRIPTOR' : _ARCHIVE_NONEENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Archive.NoneEntry) + }) + , + 'DESCRIPTOR' : _ARCHIVE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Archive) + }) +_sym_db.RegisterMessage(Archive) +_sym_db.RegisterMessage(Archive.NoneEntry) + +ArtifactS3 = _reflection.GeneratedProtocolMessageType('ArtifactS3', (_message.Message,), { + 'DESCRIPTOR' : _ARTIFACTS3, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.ArtifactS3) + }) +_sym_db.RegisterMessage(ArtifactS3) + +Artifact = _reflection.GeneratedProtocolMessageType('Artifact', (_message.Message,), { + 'DESCRIPTOR' : _ARTIFACT, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Artifact) + }) +_sym_db.RegisterMessage(Artifact) + +Inputs = _reflection.GeneratedProtocolMessageType('Inputs', (_message.Message,), { + 'DESCRIPTOR' : _INPUTS, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Inputs) + }) +_sym_db.RegisterMessage(Inputs) + +Outputs = _reflection.GeneratedProtocolMessageType('Outputs', (_message.Message,), { + 'DESCRIPTOR' : _OUTPUTS, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Outputs) + }) +_sym_db.RegisterMessage(Outputs) + +Parameter = _reflection.GeneratedProtocolMessageType('Parameter', (_message.Message,), { + 'DESCRIPTOR' : _PARAMETER, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Parameter) + }) +_sym_db.RegisterMessage(Parameter) + +Arguments = _reflection.GeneratedProtocolMessageType('Arguments', (_message.Message,), { + + 'ParametersEntry' : _reflection.GeneratedProtocolMessageType('ParametersEntry', (_message.Message,), { + 'DESCRIPTOR' : _ARGUMENTS_PARAMETERSENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Arguments.ParametersEntry) + }) + , + + 'ArtifactsEntry' : _reflection.GeneratedProtocolMessageType('ArtifactsEntry', (_message.Message,), { + 'DESCRIPTOR' : _ARGUMENTS_ARTIFACTSENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Arguments.ArtifactsEntry) + }) + , + 'DESCRIPTOR' : _ARGUMENTS, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Arguments) + }) +_sym_db.RegisterMessage(Arguments) +_sym_db.RegisterMessage(Arguments.ParametersEntry) +_sym_db.RegisterMessage(Arguments.ArtifactsEntry) + +DagTasks = _reflection.GeneratedProtocolMessageType('DagTasks', (_message.Message,), { + 'DESCRIPTOR' : _DAGTASKS, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.DagTasks) + }) +_sym_db.RegisterMessage(DagTasks) + +DagTemplate = _reflection.GeneratedProtocolMessageType('DagTemplate', (_message.Message,), { + 'DESCRIPTOR' : _DAGTEMPLATE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.DagTemplate) + }) +_sym_db.RegisterMessage(DagTemplate) + +ScriptTemplate = _reflection.GeneratedProtocolMessageType('ScriptTemplate', (_message.Message,), { + 'DESCRIPTOR' : _SCRIPTTEMPLATE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.ScriptTemplate) + }) +_sym_db.RegisterMessage(ScriptTemplate) + +Template = _reflection.GeneratedProtocolMessageType('Template', (_message.Message,), { + 'DESCRIPTOR' : _TEMPLATE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Template) + }) +_sym_db.RegisterMessage(Template) + +Spec = _reflection.GeneratedProtocolMessageType('Spec', (_message.Message,), { + 'DESCRIPTOR' : _SPEC, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Spec) + }) +_sym_db.RegisterMessage(Spec) + +WorkflowCreationRequest = _reflection.GeneratedProtocolMessageType('WorkflowCreationRequest', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWCREATIONREQUEST, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowCreationRequest) + }) +_sym_db.RegisterMessage(WorkflowCreationRequest) + +WorkflowCreationResponse = _reflection.GeneratedProtocolMessageType('WorkflowCreationResponse', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWCREATIONRESPONSE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowCreationResponse) + }) +_sym_db.RegisterMessage(WorkflowCreationResponse) + +WorkflowUpdateRequest = _reflection.GeneratedProtocolMessageType('WorkflowUpdateRequest', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWUPDATEREQUEST, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowUpdateRequest) + }) +_sym_db.RegisterMessage(WorkflowUpdateRequest) + +WorkflowUpdateResponse = _reflection.GeneratedProtocolMessageType('WorkflowUpdateResponse', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWUPDATERESPONSE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowUpdateResponse) + }) +_sym_db.RegisterMessage(WorkflowUpdateResponse) + +WorkflowDeleteRequest = _reflection.GeneratedProtocolMessageType('WorkflowDeleteRequest', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWDELETEREQUEST, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowDeleteRequest) + }) +_sym_db.RegisterMessage(WorkflowDeleteRequest) + +WorkflowDeleteResponse = _reflection.GeneratedProtocolMessageType('WorkflowDeleteResponse', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWDELETERESPONSE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowDeleteResponse) + }) +_sym_db.RegisterMessage(WorkflowDeleteResponse) + +WorkflowGetRequest = _reflection.GeneratedProtocolMessageType('WorkflowGetRequest', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWGETREQUEST, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowGetRequest) + }) +_sym_db.RegisterMessage(WorkflowGetRequest) + +WorkflowGetResponse = _reflection.GeneratedProtocolMessageType('WorkflowGetResponse', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWGETRESPONSE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowGetResponse) + }) +_sym_db.RegisterMessage(WorkflowGetResponse) + +WorkflowListRequest = _reflection.GeneratedProtocolMessageType('WorkflowListRequest', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWLISTREQUEST, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowListRequest) + }) +_sym_db.RegisterMessage(WorkflowListRequest) + +WorkflowListResponse = _reflection.GeneratedProtocolMessageType('WorkflowListResponse', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWLISTRESPONSE, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowListResponse) + }) +_sym_db.RegisterMessage(WorkflowListResponse) + +WorkflowCreationError = _reflection.GeneratedProtocolMessageType('WorkflowCreationError', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWCREATIONERROR, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowCreationError) + }) +_sym_db.RegisterMessage(WorkflowCreationError) + +WorkflowUpdateError = _reflection.GeneratedProtocolMessageType('WorkflowUpdateError', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWUPDATEERROR, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowUpdateError) + }) +_sym_db.RegisterMessage(WorkflowUpdateError) + +WorkflowDeleteError = _reflection.GeneratedProtocolMessageType('WorkflowDeleteError', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWDELETEERROR, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowDeleteError) + }) +_sym_db.RegisterMessage(WorkflowDeleteError) + +WorkflowGetError = _reflection.GeneratedProtocolMessageType('WorkflowGetError', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWGETERROR, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowGetError) + }) +_sym_db.RegisterMessage(WorkflowGetError) + +WorkflowListError = _reflection.GeneratedProtocolMessageType('WorkflowListError', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOWLISTERROR, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.WorkflowListError) + }) +_sym_db.RegisterMessage(WorkflowListError) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'Z/github.com/jupyter-naas/naas-models/go/workflow' + _ARCHIVE_NONEENTRY._options = None + _ARCHIVE_NONEENTRY._serialized_options = b'8\001' + _ARGUMENTS_PARAMETERSENTRY._options = None + _ARGUMENTS_PARAMETERSENTRY._serialized_options = b'8\001' + _ARGUMENTS_ARTIFACTSENTRY._options = None + _ARGUMENTS_ARTIFACTSENTRY._serialized_options = b'8\001' + _ARCHIVE._serialized_start=44 + _ARCHIVE._serialized_end=141 + _ARCHIVE_NONEENTRY._serialized_start=98 + _ARCHIVE_NONEENTRY._serialized_end=141 + _ARTIFACTS3._serialized_start=143 + _ARTIFACTS3._serialized_end=213 + _ARTIFACT._serialized_start=216 + _ARTIFACT._serialized_end=437 + _INPUTS._serialized_start=439 + _INPUTS._serialized_end=527 + _OUTPUTS._serialized_start=529 + _OUTPUTS._serialized_end=618 + _PARAMETER._serialized_start=620 + _PARAMETER._serialized_end=723 + _ARGUMENTS._serialized_start=726 + _ARGUMENTS._serialized_end=950 + _ARGUMENTS_PARAMETERSENTRY._serialized_start=851 + _ARGUMENTS_PARAMETERSENTRY._serialized_end=900 + _ARGUMENTS_ARTIFACTSENTRY._serialized_start=902 + _ARGUMENTS_ARTIFACTSENTRY._serialized_end=950 + _DAGTASKS._serialized_start=953 + _DAGTASKS._serialized_end=1088 + _DAGTEMPLATE._serialized_start=1090 + _DAGTEMPLATE._serialized_end=1170 + _SCRIPTTEMPLATE._serialized_start=1172 + _SCRIPTTEMPLATE._serialized_end=1220 + _TEMPLATE._serialized_start=1223 + _TEMPLATE._serialized_end=1509 + _SPEC._serialized_start=1511 + _SPEC._serialized_end=1635 + _WORKFLOWCREATIONREQUEST._serialized_start=1638 + _WORKFLOWCREATIONREQUEST._serialized_end=1825 + _WORKFLOWCREATIONRESPONSE._serialized_start=1827 + _WORKFLOWCREATIONRESPONSE._serialized_end=1915 + _WORKFLOWUPDATEREQUEST._serialized_start=1918 + _WORKFLOWUPDATEREQUEST._serialized_end=2103 + _WORKFLOWUPDATERESPONSE._serialized_start=2105 + _WORKFLOWUPDATERESPONSE._serialized_end=2191 + _WORKFLOWDELETEREQUEST._serialized_start=2193 + _WORKFLOWDELETEREQUEST._serialized_end=2282 + _WORKFLOWDELETERESPONSE._serialized_start=2284 + _WORKFLOWDELETERESPONSE._serialized_end=2370 + _WORKFLOWGETREQUEST._serialized_start=2372 + _WORKFLOWGETREQUEST._serialized_end=2458 + _WORKFLOWGETRESPONSE._serialized_start=2460 + _WORKFLOWGETRESPONSE._serialized_end=2543 + _WORKFLOWLISTREQUEST._serialized_start=2545 + _WORKFLOWLISTREQUEST._serialized_end=2566 + _WORKFLOWLISTRESPONSE._serialized_start=2568 + _WORKFLOWLISTRESPONSE._serialized_end=2640 + _WORKFLOWCREATIONERROR._serialized_start=2642 + _WORKFLOWCREATIONERROR._serialized_end=2727 + _WORKFLOWUPDATEERROR._serialized_start=2729 + _WORKFLOWUPDATEERROR._serialized_end=2812 + _WORKFLOWDELETEERROR._serialized_start=2814 + _WORKFLOWDELETEERROR._serialized_end=2897 + _WORKFLOWGETERROR._serialized_start=2899 + _WORKFLOWGETERROR._serialized_end=2979 + _WORKFLOWLISTERROR._serialized_start=2981 + _WORKFLOWLISTERROR._serialized_end=3062 +# @@protoc_insertion_point(module_scope) From c89b9485df5d540943e1aaca3eeac7d35e57e228 Mon Sep 17 00:00:00 2001 From: viniciusdc Date: Fri, 12 Jan 2024 10:48:21 -0300 Subject: [PATCH 05/11] include update in request protos --- protos/workflow.proto | 43 +++++-- python/naas_models/pydantic/workflow_p2p.py | 52 ++++++-- python/naas_models/workflow_pb2.py | 133 ++++++++++++++------ 3 files changed, 167 insertions(+), 61 deletions(-) diff --git a/protos/workflow.proto b/protos/workflow.proto index 6cb0fb0..304eb27 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -62,16 +62,20 @@ message DagTemplate { } message ScriptTemplate { - optional string source = 1; + optional string image = 1; + repeated string command = 2; + map resources = 3; + optional string source = 4; } message Template { optional string name = 1; optional string container = 2; - optional Inputs inputs = 3; - optional Outputs outputs = 4; - optional DagTemplate dag = 5; - optional ScriptTemplate script = 6; + map metadata = 3; + optional Inputs inputs = 4; + optional Outputs outputs = 5; + optional DagTemplate dag = 6; + optional ScriptTemplate script = 7; } message Spec { @@ -80,6 +84,16 @@ message Spec { repeated Template templates = 3; } +message Metadata { + optional string generateName = 1; + optional string namespace = 2; + map labels = 3; +} + +message Workflow { + Metadata metadata = 1; + Spec spec = 2; +} /** * Argo workflow CRUD resources @@ -87,9 +101,11 @@ message Spec { message WorkflowCreationRequest { optional string name = 1; - optional string namespace = 2; - optional string workflowTemplate = 4; - optional string workflowSpec = 5; + optional string description = 2; + optional string user_uid = 3; + optional string namespace = 4; + optional bool serverDryRun = 5; + optional Workflow workflow = 6; } message WorkflowCreationResponse { @@ -100,8 +116,7 @@ message WorkflowCreationResponse { message WorkflowUpdateRequest { optional string name = 1; optional string namespace = 2; - optional string workflowTemplate = 4; - optional string workflowSpec = 5; + optional Workflow workflow = 3; } message WorkflowUpdateResponse { @@ -110,7 +125,7 @@ message WorkflowUpdateResponse { } message WorkflowDeleteRequest { - optional string name = 1; + optional string workflow_name = 1; optional string namespace = 2; } @@ -120,7 +135,7 @@ message WorkflowDeleteResponse { } message WorkflowGetRequest { - optional string name = 1; + optional string workflow_name = 1; optional string namespace = 2; } @@ -129,7 +144,9 @@ message WorkflowGetResponse { optional string message = 2; } -message WorkflowListRequest {} +message WorkflowListRequest { + optional string namespace = 1; +} message WorkflowListResponse { repeated WorkflowGetResponse workflows = 1; diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index ff09132..694dc96 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -107,9 +107,12 @@ class DagTemplate(BaseModel): class ScriptTemplate(BaseModel): - _one_of_dict = {"ScriptTemplate._source": {"fields": {"source"}}} + _one_of_dict = {"ScriptTemplate._image": {"fields": {"image"}}, "ScriptTemplate._source": {"fields": {"source"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + image: str = FieldInfo(default="") + command: typing.List[str] = FieldInfo(default_factory=list) + resources: typing.Dict[str, str] = FieldInfo(default_factory=dict) source: str = FieldInfo(default="") @@ -122,6 +125,7 @@ class Template(BaseModel): name: str = FieldInfo(default="") container: str = FieldInfo(default="") + metadata: typing.Dict[str, str] = FieldInfo(default_factory=dict) inputs: Inputs = FieldInfo() outputs: Outputs = FieldInfo() dag: DagTemplate = FieldInfo() @@ -142,15 +146,37 @@ class Spec(BaseModel): +class Metadata(BaseModel): + + _one_of_dict = {"Metadata._generateName": {"fields": {"generateName"}}, "Metadata._namespace": {"fields": {"namespace"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + generateName: str = FieldInfo(default="") + namespace: str = FieldInfo(default="") + labels: typing.Dict[str, str] = FieldInfo(default_factory=dict) + + + + +class Workflow(BaseModel): + + metadata: Metadata = FieldInfo() + spec: Spec = FieldInfo() + + + + class WorkflowCreationRequest(BaseModel): - _one_of_dict = {"WorkflowCreationRequest._name": {"fields": {"name"}}, "WorkflowCreationRequest._namespace": {"fields": {"namespace"}}, "WorkflowCreationRequest._workflowSpec": {"fields": {"workflowSpec"}}, "WorkflowCreationRequest._workflowTemplate": {"fields": {"workflowTemplate"}}} + _one_of_dict = {"WorkflowCreationRequest._description": {"fields": {"description"}}, "WorkflowCreationRequest._name": {"fields": {"name"}}, "WorkflowCreationRequest._namespace": {"fields": {"namespace"}}, "WorkflowCreationRequest._serverDryRun": {"fields": {"serverDryRun"}}, "WorkflowCreationRequest._user_uid": {"fields": {"user_uid"}}, "WorkflowCreationRequest._workflow": {"fields": {"workflow"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) name: str = FieldInfo(default="") + description: str = FieldInfo(default="") + user_uid: str = FieldInfo(default="") namespace: str = FieldInfo(default="") - workflowTemplate: str = FieldInfo(default="") - workflowSpec: str = FieldInfo(default="") + serverDryRun: bool = FieldInfo(default=False) + workflow: Workflow = FieldInfo() @@ -168,13 +194,12 @@ class WorkflowCreationResponse(BaseModel): class WorkflowUpdateRequest(BaseModel): - _one_of_dict = {"WorkflowUpdateRequest._name": {"fields": {"name"}}, "WorkflowUpdateRequest._namespace": {"fields": {"namespace"}}, "WorkflowUpdateRequest._workflowSpec": {"fields": {"workflowSpec"}}, "WorkflowUpdateRequest._workflowTemplate": {"fields": {"workflowTemplate"}}} + _one_of_dict = {"WorkflowUpdateRequest._name": {"fields": {"name"}}, "WorkflowUpdateRequest._namespace": {"fields": {"namespace"}}, "WorkflowUpdateRequest._workflow": {"fields": {"workflow"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) name: str = FieldInfo(default="") namespace: str = FieldInfo(default="") - workflowTemplate: str = FieldInfo(default="") - workflowSpec: str = FieldInfo(default="") + workflow: Workflow = FieldInfo() @@ -192,10 +217,10 @@ class WorkflowUpdateResponse(BaseModel): class WorkflowDeleteRequest(BaseModel): - _one_of_dict = {"WorkflowDeleteRequest._name": {"fields": {"name"}}, "WorkflowDeleteRequest._namespace": {"fields": {"namespace"}}} + _one_of_dict = {"WorkflowDeleteRequest._namespace": {"fields": {"namespace"}}, "WorkflowDeleteRequest._workflow_name": {"fields": {"workflow_name"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) - name: str = FieldInfo(default="") + workflow_name: str = FieldInfo(default="") namespace: str = FieldInfo(default="") @@ -214,10 +239,10 @@ class WorkflowDeleteResponse(BaseModel): class WorkflowGetRequest(BaseModel): - _one_of_dict = {"WorkflowGetRequest._name": {"fields": {"name"}}, "WorkflowGetRequest._namespace": {"fields": {"namespace"}}} + _one_of_dict = {"WorkflowGetRequest._namespace": {"fields": {"namespace"}}, "WorkflowGetRequest._workflow_name": {"fields": {"workflow_name"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) - name: str = FieldInfo(default="") + workflow_name: str = FieldInfo(default="") namespace: str = FieldInfo(default="") @@ -236,6 +261,11 @@ class WorkflowGetResponse(BaseModel): class WorkflowListRequest(BaseModel): + _one_of_dict = {"WorkflowListRequest._namespace": {"fields": {"namespace"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + namespace: str = FieldInfo(default="") + diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index 2977ebf..b06e942 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"0\n\x0eScriptTemplate\x12\x13\n\x06source\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_source\"\x9e\x02\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12%\n\x06inputs\x18\x03 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x04 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x05 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x06 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10workflowTemplate\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cworkflowSpec\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x13\n\x11_workflowTemplateB\x0f\n\r_workflowSpec\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\xb9\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10workflowTemplate\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cworkflowSpec\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x13\n\x11_workflowTemplateB\x0f\n\r_workflowSpec\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Y\n\x15WorkflowDeleteRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"V\n\x12WorkflowGetRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x15\n\x13WorkflowListRequest\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\x8d\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08user_uid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') @@ -32,8 +32,13 @@ _DAGTASKS = DESCRIPTOR.message_types_by_name['DagTasks'] _DAGTEMPLATE = DESCRIPTOR.message_types_by_name['DagTemplate'] _SCRIPTTEMPLATE = DESCRIPTOR.message_types_by_name['ScriptTemplate'] +_SCRIPTTEMPLATE_RESOURCESENTRY = _SCRIPTTEMPLATE.nested_types_by_name['ResourcesEntry'] _TEMPLATE = DESCRIPTOR.message_types_by_name['Template'] +_TEMPLATE_METADATAENTRY = _TEMPLATE.nested_types_by_name['MetadataEntry'] _SPEC = DESCRIPTOR.message_types_by_name['Spec'] +_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] +_METADATA_LABELSENTRY = _METADATA.nested_types_by_name['LabelsEntry'] +_WORKFLOW = DESCRIPTOR.message_types_by_name['Workflow'] _WORKFLOWCREATIONREQUEST = DESCRIPTOR.message_types_by_name['WorkflowCreationRequest'] _WORKFLOWCREATIONRESPONSE = DESCRIPTOR.message_types_by_name['WorkflowCreationResponse'] _WORKFLOWUPDATEREQUEST = DESCRIPTOR.message_types_by_name['WorkflowUpdateRequest'] @@ -137,18 +142,34 @@ _sym_db.RegisterMessage(DagTemplate) ScriptTemplate = _reflection.GeneratedProtocolMessageType('ScriptTemplate', (_message.Message,), { + + 'ResourcesEntry' : _reflection.GeneratedProtocolMessageType('ResourcesEntry', (_message.Message,), { + 'DESCRIPTOR' : _SCRIPTTEMPLATE_RESOURCESENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.ScriptTemplate.ResourcesEntry) + }) + , 'DESCRIPTOR' : _SCRIPTTEMPLATE, '__module__' : 'workflow_pb2' # @@protoc_insertion_point(class_scope:workflow.ScriptTemplate) }) _sym_db.RegisterMessage(ScriptTemplate) +_sym_db.RegisterMessage(ScriptTemplate.ResourcesEntry) Template = _reflection.GeneratedProtocolMessageType('Template', (_message.Message,), { + + 'MetadataEntry' : _reflection.GeneratedProtocolMessageType('MetadataEntry', (_message.Message,), { + 'DESCRIPTOR' : _TEMPLATE_METADATAENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Template.MetadataEntry) + }) + , 'DESCRIPTOR' : _TEMPLATE, '__module__' : 'workflow_pb2' # @@protoc_insertion_point(class_scope:workflow.Template) }) _sym_db.RegisterMessage(Template) +_sym_db.RegisterMessage(Template.MetadataEntry) Spec = _reflection.GeneratedProtocolMessageType('Spec', (_message.Message,), { 'DESCRIPTOR' : _SPEC, @@ -157,6 +178,28 @@ }) _sym_db.RegisterMessage(Spec) +Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { + + 'LabelsEntry' : _reflection.GeneratedProtocolMessageType('LabelsEntry', (_message.Message,), { + 'DESCRIPTOR' : _METADATA_LABELSENTRY, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Metadata.LabelsEntry) + }) + , + 'DESCRIPTOR' : _METADATA, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Metadata) + }) +_sym_db.RegisterMessage(Metadata) +_sym_db.RegisterMessage(Metadata.LabelsEntry) + +Workflow = _reflection.GeneratedProtocolMessageType('Workflow', (_message.Message,), { + 'DESCRIPTOR' : _WORKFLOW, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.Workflow) + }) +_sym_db.RegisterMessage(Workflow) + WorkflowCreationRequest = _reflection.GeneratedProtocolMessageType('WorkflowCreationRequest', (_message.Message,), { 'DESCRIPTOR' : _WORKFLOWCREATIONREQUEST, '__module__' : 'workflow_pb2' @@ -272,6 +315,12 @@ _ARGUMENTS_PARAMETERSENTRY._serialized_options = b'8\001' _ARGUMENTS_ARTIFACTSENTRY._options = None _ARGUMENTS_ARTIFACTSENTRY._serialized_options = b'8\001' + _SCRIPTTEMPLATE_RESOURCESENTRY._options = None + _SCRIPTTEMPLATE_RESOURCESENTRY._serialized_options = b'8\001' + _TEMPLATE_METADATAENTRY._options = None + _TEMPLATE_METADATAENTRY._serialized_options = b'8\001' + _METADATA_LABELSENTRY._options = None + _METADATA_LABELSENTRY._serialized_options = b'8\001' _ARCHIVE._serialized_start=44 _ARCHIVE._serialized_end=141 _ARCHIVE_NONEENTRY._serialized_start=98 @@ -296,40 +345,50 @@ _DAGTASKS._serialized_end=1088 _DAGTEMPLATE._serialized_start=1090 _DAGTEMPLATE._serialized_end=1170 - _SCRIPTTEMPLATE._serialized_start=1172 - _SCRIPTTEMPLATE._serialized_end=1220 - _TEMPLATE._serialized_start=1223 - _TEMPLATE._serialized_end=1509 - _SPEC._serialized_start=1511 - _SPEC._serialized_end=1635 - _WORKFLOWCREATIONREQUEST._serialized_start=1638 - _WORKFLOWCREATIONREQUEST._serialized_end=1825 - _WORKFLOWCREATIONRESPONSE._serialized_start=1827 - _WORKFLOWCREATIONRESPONSE._serialized_end=1915 - _WORKFLOWUPDATEREQUEST._serialized_start=1918 - _WORKFLOWUPDATEREQUEST._serialized_end=2103 - _WORKFLOWUPDATERESPONSE._serialized_start=2105 - _WORKFLOWUPDATERESPONSE._serialized_end=2191 - _WORKFLOWDELETEREQUEST._serialized_start=2193 - _WORKFLOWDELETEREQUEST._serialized_end=2282 - _WORKFLOWDELETERESPONSE._serialized_start=2284 - _WORKFLOWDELETERESPONSE._serialized_end=2370 - _WORKFLOWGETREQUEST._serialized_start=2372 - _WORKFLOWGETREQUEST._serialized_end=2458 - _WORKFLOWGETRESPONSE._serialized_start=2460 - _WORKFLOWGETRESPONSE._serialized_end=2543 - _WORKFLOWLISTREQUEST._serialized_start=2545 - _WORKFLOWLISTREQUEST._serialized_end=2566 - _WORKFLOWLISTRESPONSE._serialized_start=2568 - _WORKFLOWLISTRESPONSE._serialized_end=2640 - _WORKFLOWCREATIONERROR._serialized_start=2642 - _WORKFLOWCREATIONERROR._serialized_end=2727 - _WORKFLOWUPDATEERROR._serialized_start=2729 - _WORKFLOWUPDATEERROR._serialized_end=2812 - _WORKFLOWDELETEERROR._serialized_start=2814 - _WORKFLOWDELETEERROR._serialized_end=2897 - _WORKFLOWGETERROR._serialized_start=2899 - _WORKFLOWGETERROR._serialized_end=2979 - _WORKFLOWLISTERROR._serialized_start=2981 - _WORKFLOWLISTERROR._serialized_end=3062 + _SCRIPTTEMPLATE._serialized_start=1173 + _SCRIPTTEMPLATE._serialized_end=1378 + _SCRIPTTEMPLATE_RESOURCESENTRY._serialized_start=1309 + _SCRIPTTEMPLATE_RESOURCESENTRY._serialized_end=1357 + _TEMPLATE._serialized_start=1381 + _TEMPLATE._serialized_end=1768 + _TEMPLATE_METADATAENTRY._serialized_start=1656 + _TEMPLATE_METADATAENTRY._serialized_end=1703 + _SPEC._serialized_start=1770 + _SPEC._serialized_end=1894 + _METADATA._serialized_start=1897 + _METADATA._serialized_end=2084 + _METADATA_LABELSENTRY._serialized_start=2008 + _METADATA_LABELSENTRY._serialized_end=2053 + _WORKFLOW._serialized_start=2086 + _WORKFLOW._serialized_end=2164 + _WORKFLOWCREATIONREQUEST._serialized_start=2167 + _WORKFLOWCREATIONREQUEST._serialized_end=2436 + _WORKFLOWCREATIONRESPONSE._serialized_start=2438 + _WORKFLOWCREATIONRESPONSE._serialized_end=2526 + _WORKFLOWUPDATEREQUEST._serialized_start=2529 + _WORKFLOWUPDATEREQUEST._serialized_end=2674 + _WORKFLOWUPDATERESPONSE._serialized_start=2676 + _WORKFLOWUPDATERESPONSE._serialized_end=2762 + _WORKFLOWDELETEREQUEST._serialized_start=2764 + _WORKFLOWDELETEREQUEST._serialized_end=2871 + _WORKFLOWDELETERESPONSE._serialized_start=2873 + _WORKFLOWDELETERESPONSE._serialized_end=2959 + _WORKFLOWGETREQUEST._serialized_start=2961 + _WORKFLOWGETREQUEST._serialized_end=3065 + _WORKFLOWGETRESPONSE._serialized_start=3067 + _WORKFLOWGETRESPONSE._serialized_end=3150 + _WORKFLOWLISTREQUEST._serialized_start=3152 + _WORKFLOWLISTREQUEST._serialized_end=3211 + _WORKFLOWLISTRESPONSE._serialized_start=3213 + _WORKFLOWLISTRESPONSE._serialized_end=3285 + _WORKFLOWCREATIONERROR._serialized_start=3287 + _WORKFLOWCREATIONERROR._serialized_end=3372 + _WORKFLOWUPDATEERROR._serialized_start=3374 + _WORKFLOWUPDATEERROR._serialized_end=3457 + _WORKFLOWDELETEERROR._serialized_start=3459 + _WORKFLOWDELETEERROR._serialized_end=3542 + _WORKFLOWGETERROR._serialized_start=3544 + _WORKFLOWGETERROR._serialized_end=3624 + _WORKFLOWLISTERROR._serialized_start=3626 + _WORKFLOWLISTERROR._serialized_end=3707 # @@protoc_insertion_point(module_scope) From 896199c0ce7592bc304aa57ea7a8b86b29bffea4 Mon Sep 17 00:00:00 2001 From: viniciusdc Date: Fri, 12 Jan 2024 17:04:12 -0300 Subject: [PATCH 06/11] add missing CronWorkflow message object --- protos/workflow.proto | 16 ++++ python/naas_models/pydantic/workflow_p2p.py | 25 +++++++ python/naas_models/workflow_pb2.py | 82 +++++++++++++-------- 3 files changed, 92 insertions(+), 31 deletions(-) diff --git a/protos/workflow.proto b/protos/workflow.proto index 304eb27..437cea3 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -95,6 +95,22 @@ message Workflow { Spec spec = 2; } +message CronSpec { + string schedule = 1; + string timezone = 2; + optional string startingDeadlineSeconds = 3; + optional string concurrencyPolicy = 4; + optional string successfulJobsHistoryLimit = 5; + optional string failedJobsHistoryLimit = 6; + optional string suspend = 7; + Spec workflowSpec = 8; +} + +message CronWorkflow { + Metadata metadata = 1; + CronSpec spec = 2; +} + /** * Argo workflow CRUD resources */ diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index 694dc96..10e6df2 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -166,6 +166,31 @@ class Workflow(BaseModel): +class CronSpec(BaseModel): + + _one_of_dict = {"CronSpec._concurrencyPolicy": {"fields": {"concurrencyPolicy"}}, "CronSpec._failedJobsHistoryLimit": {"fields": {"failedJobsHistoryLimit"}}, "CronSpec._startingDeadlineSeconds": {"fields": {"startingDeadlineSeconds"}}, "CronSpec._successfulJobsHistoryLimit": {"fields": {"successfulJobsHistoryLimit"}}, "CronSpec._suspend": {"fields": {"suspend"}}} + _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + + schedule: str = FieldInfo(default="") + timezone: str = FieldInfo(default="") + startingDeadlineSeconds: str = FieldInfo(default="") + concurrencyPolicy: str = FieldInfo(default="") + successfulJobsHistoryLimit: str = FieldInfo(default="") + failedJobsHistoryLimit: str = FieldInfo(default="") + suspend: str = FieldInfo(default="") + workflowSpec: Spec = FieldInfo() + + + + +class CronWorkflow(BaseModel): + + metadata: Metadata = FieldInfo() + spec: CronSpec = FieldInfo() + + + + class WorkflowCreationRequest(BaseModel): _one_of_dict = {"WorkflowCreationRequest._description": {"fields": {"description"}}, "WorkflowCreationRequest._name": {"fields": {"name"}}, "WorkflowCreationRequest._namespace": {"fields": {"namespace"}}, "WorkflowCreationRequest._serverDryRun": {"fields": {"serverDryRun"}}, "WorkflowCreationRequest._user_uid": {"fields": {"user_uid"}}, "WorkflowCreationRequest._workflow": {"fields": {"workflow"}}} diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index b06e942..7572f14 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\x8d\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08user_uid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x8d\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08user_uid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') @@ -39,6 +39,8 @@ _METADATA = DESCRIPTOR.message_types_by_name['Metadata'] _METADATA_LABELSENTRY = _METADATA.nested_types_by_name['LabelsEntry'] _WORKFLOW = DESCRIPTOR.message_types_by_name['Workflow'] +_CRONSPEC = DESCRIPTOR.message_types_by_name['CronSpec'] +_CRONWORKFLOW = DESCRIPTOR.message_types_by_name['CronWorkflow'] _WORKFLOWCREATIONREQUEST = DESCRIPTOR.message_types_by_name['WorkflowCreationRequest'] _WORKFLOWCREATIONRESPONSE = DESCRIPTOR.message_types_by_name['WorkflowCreationResponse'] _WORKFLOWUPDATEREQUEST = DESCRIPTOR.message_types_by_name['WorkflowUpdateRequest'] @@ -200,6 +202,20 @@ }) _sym_db.RegisterMessage(Workflow) +CronSpec = _reflection.GeneratedProtocolMessageType('CronSpec', (_message.Message,), { + 'DESCRIPTOR' : _CRONSPEC, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.CronSpec) + }) +_sym_db.RegisterMessage(CronSpec) + +CronWorkflow = _reflection.GeneratedProtocolMessageType('CronWorkflow', (_message.Message,), { + 'DESCRIPTOR' : _CRONWORKFLOW, + '__module__' : 'workflow_pb2' + # @@protoc_insertion_point(class_scope:workflow.CronWorkflow) + }) +_sym_db.RegisterMessage(CronWorkflow) + WorkflowCreationRequest = _reflection.GeneratedProtocolMessageType('WorkflowCreationRequest', (_message.Message,), { 'DESCRIPTOR' : _WORKFLOWCREATIONREQUEST, '__module__' : 'workflow_pb2' @@ -361,34 +377,38 @@ _METADATA_LABELSENTRY._serialized_end=2053 _WORKFLOW._serialized_start=2086 _WORKFLOW._serialized_end=2164 - _WORKFLOWCREATIONREQUEST._serialized_start=2167 - _WORKFLOWCREATIONREQUEST._serialized_end=2436 - _WORKFLOWCREATIONRESPONSE._serialized_start=2438 - _WORKFLOWCREATIONRESPONSE._serialized_end=2526 - _WORKFLOWUPDATEREQUEST._serialized_start=2529 - _WORKFLOWUPDATEREQUEST._serialized_end=2674 - _WORKFLOWUPDATERESPONSE._serialized_start=2676 - _WORKFLOWUPDATERESPONSE._serialized_end=2762 - _WORKFLOWDELETEREQUEST._serialized_start=2764 - _WORKFLOWDELETEREQUEST._serialized_end=2871 - _WORKFLOWDELETERESPONSE._serialized_start=2873 - _WORKFLOWDELETERESPONSE._serialized_end=2959 - _WORKFLOWGETREQUEST._serialized_start=2961 - _WORKFLOWGETREQUEST._serialized_end=3065 - _WORKFLOWGETRESPONSE._serialized_start=3067 - _WORKFLOWGETRESPONSE._serialized_end=3150 - _WORKFLOWLISTREQUEST._serialized_start=3152 - _WORKFLOWLISTREQUEST._serialized_end=3211 - _WORKFLOWLISTRESPONSE._serialized_start=3213 - _WORKFLOWLISTRESPONSE._serialized_end=3285 - _WORKFLOWCREATIONERROR._serialized_start=3287 - _WORKFLOWCREATIONERROR._serialized_end=3372 - _WORKFLOWUPDATEERROR._serialized_start=3374 - _WORKFLOWUPDATEERROR._serialized_end=3457 - _WORKFLOWDELETEERROR._serialized_start=3459 - _WORKFLOWDELETEERROR._serialized_end=3542 - _WORKFLOWGETERROR._serialized_start=3544 - _WORKFLOWGETERROR._serialized_end=3624 - _WORKFLOWLISTERROR._serialized_start=3626 - _WORKFLOWLISTERROR._serialized_end=3707 + _CRONSPEC._serialized_start=2167 + _CRONSPEC._serialized_end=2541 + _CRONWORKFLOW._serialized_start=2543 + _CRONWORKFLOW._serialized_end=2629 + _WORKFLOWCREATIONREQUEST._serialized_start=2632 + _WORKFLOWCREATIONREQUEST._serialized_end=2901 + _WORKFLOWCREATIONRESPONSE._serialized_start=2903 + _WORKFLOWCREATIONRESPONSE._serialized_end=2991 + _WORKFLOWUPDATEREQUEST._serialized_start=2994 + _WORKFLOWUPDATEREQUEST._serialized_end=3139 + _WORKFLOWUPDATERESPONSE._serialized_start=3141 + _WORKFLOWUPDATERESPONSE._serialized_end=3227 + _WORKFLOWDELETEREQUEST._serialized_start=3229 + _WORKFLOWDELETEREQUEST._serialized_end=3336 + _WORKFLOWDELETERESPONSE._serialized_start=3338 + _WORKFLOWDELETERESPONSE._serialized_end=3424 + _WORKFLOWGETREQUEST._serialized_start=3426 + _WORKFLOWGETREQUEST._serialized_end=3530 + _WORKFLOWGETRESPONSE._serialized_start=3532 + _WORKFLOWGETRESPONSE._serialized_end=3615 + _WORKFLOWLISTREQUEST._serialized_start=3617 + _WORKFLOWLISTREQUEST._serialized_end=3676 + _WORKFLOWLISTRESPONSE._serialized_start=3678 + _WORKFLOWLISTRESPONSE._serialized_end=3750 + _WORKFLOWCREATIONERROR._serialized_start=3752 + _WORKFLOWCREATIONERROR._serialized_end=3837 + _WORKFLOWUPDATEERROR._serialized_start=3839 + _WORKFLOWUPDATEERROR._serialized_end=3922 + _WORKFLOWDELETEERROR._serialized_start=3924 + _WORKFLOWDELETEERROR._serialized_end=4007 + _WORKFLOWGETERROR._serialized_start=4009 + _WORKFLOWGETERROR._serialized_end=4089 + _WORKFLOWLISTERROR._serialized_start=4091 + _WORKFLOWLISTERROR._serialized_end=4172 # @@protoc_insertion_point(module_scope) From fcc2a90c16d610d9dc644f70cb34ec27a23e3114 Mon Sep 17 00:00:00 2001 From: "Loic L." Date: Tue, 14 May 2024 11:35:25 +0200 Subject: [PATCH 07/11] feat: add workflow.proto generate --- docker-compose.yaml | 2 +- .../naas-models/go/workflow/workflow.pb.go | 2756 +++++++++++ .../go/workflow/workflow.pb.validate.go | 4088 +++++++++++++++++ python/naas_models/pydantic/workflow_p2p.py | 156 + python/naas_models/workflow_pb2.py | 112 + 5 files changed, 7113 insertions(+), 1 deletion(-) create mode 100644 go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go create mode 100644 go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go create mode 100644 python/naas_models/pydantic/workflow_p2p.py create mode 100644 python/naas_models/workflow_pb2.py diff --git a/docker-compose.yaml b/docker-compose.yaml index 2753c8e..adc0ecc 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -19,4 +19,4 @@ services: --python_out=../python/naas_models \ --go_out=../go \ --validate_out="lang=go:../go" \ - space.proto registry.proto iam.proto aimodel.proto chat.proto credit.proto secret.proto storage.proto workspace.proto asset.proto validate.proto common.proto \ No newline at end of file + space.proto registry.proto iam.proto aimodel.proto chat.proto credit.proto secret.proto storage.proto workspace.proto asset.proto workflow.proto validate.proto common.proto \ No newline at end of file diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go new file mode 100644 index 0000000..e5368da --- /dev/null +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go @@ -0,0 +1,2756 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.0 +// protoc v5.26.1 +// source: workflow.proto + +package workflow + +import ( + _ "github.com/envoyproxy/protoc-gen-validate/validate" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Archive struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + None map[string]string `protobuf:"bytes,1,rep,name=none,proto3" json:"none,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Archive) Reset() { + *x = Archive{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Archive) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Archive) ProtoMessage() {} + +func (x *Archive) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Archive.ProtoReflect.Descriptor instead. +func (*Archive) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{0} +} + +func (x *Archive) GetNone() map[string]string { + if x != nil { + return x.None + } + return nil +} + +type ArtifactS3 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *string `protobuf:"bytes,1,opt,name=key,proto3,oneof" json:"key,omitempty"` + Bucket *string `protobuf:"bytes,2,opt,name=bucket,proto3,oneof" json:"bucket,omitempty"` +} + +func (x *ArtifactS3) Reset() { + *x = ArtifactS3{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtifactS3) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtifactS3) ProtoMessage() {} + +func (x *ArtifactS3) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtifactS3.ProtoReflect.Descriptor instead. +func (*ArtifactS3) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{1} +} + +func (x *ArtifactS3) GetKey() string { + if x != nil && x.Key != nil { + return *x.Key + } + return "" +} + +func (x *ArtifactS3) GetBucket() string { + if x != nil && x.Bucket != nil { + return *x.Bucket + } + return "" +} + +type Artifact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Path *string `protobuf:"bytes,2,opt,name=path,proto3,oneof" json:"path,omitempty"` + Mode *int32 `protobuf:"varint,3,opt,name=mode,proto3,oneof" json:"mode,omitempty"` + From *string `protobuf:"bytes,4,opt,name=from,proto3,oneof" json:"from,omitempty"` + Archive *Archive `protobuf:"bytes,5,opt,name=archive,proto3,oneof" json:"archive,omitempty"` + S3 *ArtifactS3 `protobuf:"bytes,6,opt,name=s3,proto3,oneof" json:"s3,omitempty"` +} + +func (x *Artifact) Reset() { + *x = Artifact{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Artifact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Artifact) ProtoMessage() {} + +func (x *Artifact) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Artifact.ProtoReflect.Descriptor instead. +func (*Artifact) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{2} +} + +func (x *Artifact) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Artifact) GetPath() string { + if x != nil && x.Path != nil { + return *x.Path + } + return "" +} + +func (x *Artifact) GetMode() int32 { + if x != nil && x.Mode != nil { + return *x.Mode + } + return 0 +} + +func (x *Artifact) GetFrom() string { + if x != nil && x.From != nil { + return *x.From + } + return "" +} + +func (x *Artifact) GetArchive() *Archive { + if x != nil { + return x.Archive + } + return nil +} + +func (x *Artifact) GetS3() *ArtifactS3 { + if x != nil { + return x.S3 + } + return nil +} + +type Inputs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parameters []*Parameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty"` + Artifacts []*Artifact `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty"` +} + +func (x *Inputs) Reset() { + *x = Inputs{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Inputs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Inputs) ProtoMessage() {} + +func (x *Inputs) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Inputs.ProtoReflect.Descriptor instead. +func (*Inputs) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{3} +} + +func (x *Inputs) GetParameters() []*Parameter { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *Inputs) GetArtifacts() []*Artifact { + if x != nil { + return x.Artifacts + } + return nil +} + +type Outputs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parameters []*Parameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty"` + Artifacts []*Artifact `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty"` +} + +func (x *Outputs) Reset() { + *x = Outputs{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Outputs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Outputs) ProtoMessage() {} + +func (x *Outputs) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Outputs.ProtoReflect.Descriptor instead. +func (*Outputs) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{4} +} + +func (x *Outputs) GetParameters() []*Parameter { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *Outputs) GetArtifacts() []*Artifact { + if x != nil { + return x.Artifacts + } + return nil +} + +type Parameter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Default *string `protobuf:"bytes,3,opt,name=default,proto3,oneof" json:"default,omitempty"` +} + +func (x *Parameter) Reset() { + *x = Parameter{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Parameter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Parameter) ProtoMessage() {} + +func (x *Parameter) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Parameter.ProtoReflect.Descriptor instead. +func (*Parameter) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{5} +} + +func (x *Parameter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Parameter) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *Parameter) GetDefault() string { + if x != nil && x.Default != nil { + return *x.Default + } + return "" +} + +type Arguments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parameters map[string]string `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Artifacts map[string]string `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Arguments) Reset() { + *x = Arguments{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Arguments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Arguments) ProtoMessage() {} + +func (x *Arguments) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Arguments.ProtoReflect.Descriptor instead. +func (*Arguments) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{6} +} + +func (x *Arguments) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *Arguments) GetArtifacts() map[string]string { + if x != nil { + return x.Artifacts + } + return nil +} + +type DagTasks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` + Depends *string `protobuf:"bytes,3,opt,name=depends,proto3,oneof" json:"depends,omitempty"` + Arguments *Arguments `protobuf:"bytes,4,opt,name=arguments,proto3,oneof" json:"arguments,omitempty"` +} + +func (x *DagTasks) Reset() { + *x = DagTasks{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DagTasks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DagTasks) ProtoMessage() {} + +func (x *DagTasks) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DagTasks.ProtoReflect.Descriptor instead. +func (*DagTasks) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{7} +} + +func (x *DagTasks) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DagTasks) GetTemplate() string { + if x != nil { + return x.Template + } + return "" +} + +func (x *DagTasks) GetDepends() string { + if x != nil && x.Depends != nil { + return *x.Depends + } + return "" +} + +func (x *DagTasks) GetArguments() *Arguments { + if x != nil { + return x.Arguments + } + return nil +} + +type DagTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tasks []*DagTasks `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` + Target *string `protobuf:"bytes,2,opt,name=target,proto3,oneof" json:"target,omitempty"` +} + +func (x *DagTemplate) Reset() { + *x = DagTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DagTemplate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DagTemplate) ProtoMessage() {} + +func (x *DagTemplate) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DagTemplate.ProtoReflect.Descriptor instead. +func (*DagTemplate) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{8} +} + +func (x *DagTemplate) GetTasks() []*DagTasks { + if x != nil { + return x.Tasks + } + return nil +} + +func (x *DagTemplate) GetTarget() string { + if x != nil && x.Target != nil { + return *x.Target + } + return "" +} + +type ScriptTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Image *string `protobuf:"bytes,1,opt,name=image,proto3,oneof" json:"image,omitempty"` + Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"` + Resources map[string]string `protobuf:"bytes,3,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Source *string `protobuf:"bytes,4,opt,name=source,proto3,oneof" json:"source,omitempty"` +} + +func (x *ScriptTemplate) Reset() { + *x = ScriptTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScriptTemplate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScriptTemplate) ProtoMessage() {} + +func (x *ScriptTemplate) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScriptTemplate.ProtoReflect.Descriptor instead. +func (*ScriptTemplate) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{9} +} + +func (x *ScriptTemplate) GetImage() string { + if x != nil && x.Image != nil { + return *x.Image + } + return "" +} + +func (x *ScriptTemplate) GetCommand() []string { + if x != nil { + return x.Command + } + return nil +} + +func (x *ScriptTemplate) GetResources() map[string]string { + if x != nil { + return x.Resources + } + return nil +} + +func (x *ScriptTemplate) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +type Template struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Container *string `protobuf:"bytes,2,opt,name=container,proto3,oneof" json:"container,omitempty"` + Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Inputs *Inputs `protobuf:"bytes,4,opt,name=inputs,proto3,oneof" json:"inputs,omitempty"` + Outputs *Outputs `protobuf:"bytes,5,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` + Dag *DagTemplate `protobuf:"bytes,6,opt,name=dag,proto3,oneof" json:"dag,omitempty"` + Script *ScriptTemplate `protobuf:"bytes,7,opt,name=script,proto3,oneof" json:"script,omitempty"` +} + +func (x *Template) Reset() { + *x = Template{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Template) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Template) ProtoMessage() {} + +func (x *Template) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Template.ProtoReflect.Descriptor instead. +func (*Template) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{10} +} + +func (x *Template) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Template) GetContainer() string { + if x != nil && x.Container != nil { + return *x.Container + } + return "" +} + +func (x *Template) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Template) GetInputs() *Inputs { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *Template) GetOutputs() *Outputs { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *Template) GetDag() *DagTemplate { + if x != nil { + return x.Dag + } + return nil +} + +func (x *Template) GetScript() *ScriptTemplate { + if x != nil { + return x.Script + } + return nil +} + +type Spec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entrypoint string `protobuf:"bytes,1,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` + Arguments *Arguments `protobuf:"bytes,2,opt,name=arguments,proto3,oneof" json:"arguments,omitempty"` + Templates []*Template `protobuf:"bytes,3,rep,name=templates,proto3" json:"templates,omitempty"` +} + +func (x *Spec) Reset() { + *x = Spec{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Spec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Spec) ProtoMessage() {} + +func (x *Spec) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Spec.ProtoReflect.Descriptor instead. +func (*Spec) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{11} +} + +func (x *Spec) GetEntrypoint() string { + if x != nil { + return x.Entrypoint + } + return "" +} + +func (x *Spec) GetArguments() *Arguments { + if x != nil { + return x.Arguments + } + return nil +} + +func (x *Spec) GetTemplates() []*Template { + if x != nil { + return x.Templates + } + return nil +} + +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GenerateName *string `protobuf:"bytes,1,opt,name=generateName,proto3,oneof" json:"generateName,omitempty"` + Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +func (x *Metadata) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{12} +} + +func (x *Metadata) GetGenerateName() string { + if x != nil && x.GenerateName != nil { + return *x.GenerateName + } + return "" +} + +func (x *Metadata) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +func (x *Metadata) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +type Workflow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Spec *Spec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` +} + +func (x *Workflow) Reset() { + *x = Workflow{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Workflow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Workflow) ProtoMessage() {} + +func (x *Workflow) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Workflow.ProtoReflect.Descriptor instead. +func (*Workflow) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{13} +} + +func (x *Workflow) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Workflow) GetSpec() *Spec { + if x != nil { + return x.Spec + } + return nil +} + +type CronSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Schedule string `protobuf:"bytes,1,opt,name=schedule,proto3" json:"schedule,omitempty"` + Timezone string `protobuf:"bytes,2,opt,name=timezone,proto3" json:"timezone,omitempty"` + StartingDeadlineSeconds *string `protobuf:"bytes,3,opt,name=startingDeadlineSeconds,proto3,oneof" json:"startingDeadlineSeconds,omitempty"` + ConcurrencyPolicy *string `protobuf:"bytes,4,opt,name=concurrencyPolicy,proto3,oneof" json:"concurrencyPolicy,omitempty"` + SuccessfulJobsHistoryLimit *string `protobuf:"bytes,5,opt,name=successfulJobsHistoryLimit,proto3,oneof" json:"successfulJobsHistoryLimit,omitempty"` + FailedJobsHistoryLimit *string `protobuf:"bytes,6,opt,name=failedJobsHistoryLimit,proto3,oneof" json:"failedJobsHistoryLimit,omitempty"` + Suspend *string `protobuf:"bytes,7,opt,name=suspend,proto3,oneof" json:"suspend,omitempty"` + WorkflowSpec *Spec `protobuf:"bytes,8,opt,name=workflowSpec,proto3" json:"workflowSpec,omitempty"` +} + +func (x *CronSpec) Reset() { + *x = CronSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CronSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CronSpec) ProtoMessage() {} + +func (x *CronSpec) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CronSpec.ProtoReflect.Descriptor instead. +func (*CronSpec) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{14} +} + +func (x *CronSpec) GetSchedule() string { + if x != nil { + return x.Schedule + } + return "" +} + +func (x *CronSpec) GetTimezone() string { + if x != nil { + return x.Timezone + } + return "" +} + +func (x *CronSpec) GetStartingDeadlineSeconds() string { + if x != nil && x.StartingDeadlineSeconds != nil { + return *x.StartingDeadlineSeconds + } + return "" +} + +func (x *CronSpec) GetConcurrencyPolicy() string { + if x != nil && x.ConcurrencyPolicy != nil { + return *x.ConcurrencyPolicy + } + return "" +} + +func (x *CronSpec) GetSuccessfulJobsHistoryLimit() string { + if x != nil && x.SuccessfulJobsHistoryLimit != nil { + return *x.SuccessfulJobsHistoryLimit + } + return "" +} + +func (x *CronSpec) GetFailedJobsHistoryLimit() string { + if x != nil && x.FailedJobsHistoryLimit != nil { + return *x.FailedJobsHistoryLimit + } + return "" +} + +func (x *CronSpec) GetSuspend() string { + if x != nil && x.Suspend != nil { + return *x.Suspend + } + return "" +} + +func (x *CronSpec) GetWorkflowSpec() *Spec { + if x != nil { + return x.WorkflowSpec + } + return nil +} + +type CronWorkflow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Spec *CronSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` +} + +func (x *CronWorkflow) Reset() { + *x = CronWorkflow{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CronWorkflow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CronWorkflow) ProtoMessage() {} + +func (x *CronWorkflow) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CronWorkflow.ProtoReflect.Descriptor instead. +func (*CronWorkflow) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{15} +} + +func (x *CronWorkflow) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *CronWorkflow) GetSpec() *CronSpec { + if x != nil { + return x.Spec + } + return nil +} + +type WorkflowCreationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + UserUid *string `protobuf:"bytes,3,opt,name=user_uid,json=userUid,proto3,oneof" json:"user_uid,omitempty"` + Namespace *string `protobuf:"bytes,4,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + ServerDryRun *bool `protobuf:"varint,5,opt,name=serverDryRun,proto3,oneof" json:"serverDryRun,omitempty"` + Workflow *Workflow `protobuf:"bytes,6,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` +} + +func (x *WorkflowCreationRequest) Reset() { + *x = WorkflowCreationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowCreationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowCreationRequest) ProtoMessage() {} + +func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. +func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{16} +} + +func (x *WorkflowCreationRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowCreationRequest) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *WorkflowCreationRequest) GetUserUid() string { + if x != nil && x.UserUid != nil { + return *x.UserUid + } + return "" +} + +func (x *WorkflowCreationRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +func (x *WorkflowCreationRequest) GetServerDryRun() bool { + if x != nil && x.ServerDryRun != nil { + return *x.ServerDryRun + } + return false +} + +func (x *WorkflowCreationRequest) GetWorkflow() *Workflow { + if x != nil { + return x.Workflow + } + return nil +} + +type WorkflowCreationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowCreationResponse) Reset() { + *x = WorkflowCreationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowCreationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowCreationResponse) ProtoMessage() {} + +func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowCreationResponse.ProtoReflect.Descriptor instead. +func (*WorkflowCreationResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{17} +} + +func (x *WorkflowCreationResponse) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowCreationResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowUpdateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Workflow *Workflow `protobuf:"bytes,3,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` +} + +func (x *WorkflowUpdateRequest) Reset() { + *x = WorkflowUpdateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowUpdateRequest) ProtoMessage() {} + +func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowUpdateRequest.ProtoReflect.Descriptor instead. +func (*WorkflowUpdateRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{18} +} + +func (x *WorkflowUpdateRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowUpdateRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +func (x *WorkflowUpdateRequest) GetWorkflow() *Workflow { + if x != nil { + return x.Workflow + } + return nil +} + +type WorkflowUpdateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowUpdateResponse) Reset() { + *x = WorkflowUpdateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowUpdateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowUpdateResponse) ProtoMessage() {} + +func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowUpdateResponse.ProtoReflect.Descriptor instead. +func (*WorkflowUpdateResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{19} +} + +func (x *WorkflowUpdateResponse) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowUpdateResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowDeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkflowName *string `protobuf:"bytes,1,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` + Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` +} + +func (x *WorkflowDeleteRequest) Reset() { + *x = WorkflowDeleteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowDeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowDeleteRequest) ProtoMessage() {} + +func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. +func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{20} +} + +func (x *WorkflowDeleteRequest) GetWorkflowName() string { + if x != nil && x.WorkflowName != nil { + return *x.WorkflowName + } + return "" +} + +func (x *WorkflowDeleteRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type WorkflowDeleteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowDeleteResponse) Reset() { + *x = WorkflowDeleteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowDeleteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowDeleteResponse) ProtoMessage() {} + +func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. +func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{21} +} + +func (x *WorkflowDeleteResponse) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowDeleteResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowGetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkflowName *string `protobuf:"bytes,1,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` + Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` +} + +func (x *WorkflowGetRequest) Reset() { + *x = WorkflowGetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowGetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowGetRequest) ProtoMessage() {} + +func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. +func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{22} +} + +func (x *WorkflowGetRequest) GetWorkflowName() string { + if x != nil && x.WorkflowName != nil { + return *x.WorkflowName + } + return "" +} + +func (x *WorkflowGetRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type WorkflowGetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowGetResponse) Reset() { + *x = WorkflowGetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowGetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowGetResponse) ProtoMessage() {} + +func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. +func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{23} +} + +func (x *WorkflowGetResponse) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowGetResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace *string `protobuf:"bytes,1,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` +} + +func (x *WorkflowListRequest) Reset() { + *x = WorkflowListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowListRequest) ProtoMessage() {} + +func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. +func (*WorkflowListRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{24} +} + +func (x *WorkflowListRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type WorkflowListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Workflows []*WorkflowGetResponse `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` +} + +func (x *WorkflowListResponse) Reset() { + *x = WorkflowListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowListResponse) ProtoMessage() {} + +func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. +func (*WorkflowListResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{25} +} + +func (x *WorkflowListResponse) GetWorkflows() []*WorkflowGetResponse { + if x != nil { + return x.Workflows + } + return nil +} + +type WorkflowCreationError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowCreationError) Reset() { + *x = WorkflowCreationError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowCreationError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowCreationError) ProtoMessage() {} + +func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowCreationError.ProtoReflect.Descriptor instead. +func (*WorkflowCreationError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{26} +} + +func (x *WorkflowCreationError) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowCreationError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowUpdateError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowUpdateError) Reset() { + *x = WorkflowUpdateError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowUpdateError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowUpdateError) ProtoMessage() {} + +func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowUpdateError.ProtoReflect.Descriptor instead. +func (*WorkflowUpdateError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{27} +} + +func (x *WorkflowUpdateError) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowUpdateError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowDeleteError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowDeleteError) Reset() { + *x = WorkflowDeleteError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowDeleteError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowDeleteError) ProtoMessage() {} + +func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowDeleteError.ProtoReflect.Descriptor instead. +func (*WorkflowDeleteError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{28} +} + +func (x *WorkflowDeleteError) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowDeleteError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowGetError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowGetError) Reset() { + *x = WorkflowGetError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowGetError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowGetError) ProtoMessage() {} + +func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowGetError.ProtoReflect.Descriptor instead. +func (*WorkflowGetError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{29} +} + +func (x *WorkflowGetError) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowGetError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type WorkflowListError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowListError) Reset() { + *x = WorkflowListError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowListError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowListError) ProtoMessage() {} + +func (x *WorkflowListError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowListError.ProtoReflect.Descriptor instead. +func (*WorkflowListError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{30} +} + +func (x *WorkflowListError) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowListError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +var File_workflow_proto protoreflect.FileDescriptor + +var file_workflow_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x1a, 0x0e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x07, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x53, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x12, 0x15, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x48, 0x04, 0x52, 0x07, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x48, 0x05, 0x52, 0x02, 0x73, 0x33, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x73, 0x33, 0x22, 0x6f, 0x0a, 0x06, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, + 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x70, 0x0a, 0x07, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x7d, 0x0a, 0x09, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x09, + 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x40, + 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, + 0x0a, 0x08, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x48, 0x01, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x0b, 0x44, + 0x61, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xfc, 0x01, 0x0a, + 0x0e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, + 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xc8, 0x03, 0x0a, 0x08, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x48, 0x02, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x03, 0x64, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x04, 0x52, 0x03, 0x64, 0x61, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x05, 0x52, 0x06, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x09, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, + 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1a, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, + 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, + 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, + 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, 0x0c, 0x43, 0x72, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xcc, + 0x02, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x05, 0x52, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, + 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x67, 0x0a, + 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x48, 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, + 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x62, + 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, + 0x64, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, + 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x60, + 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, + 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, + 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_workflow_proto_rawDescOnce sync.Once + file_workflow_proto_rawDescData = file_workflow_proto_rawDesc +) + +func file_workflow_proto_rawDescGZIP() []byte { + file_workflow_proto_rawDescOnce.Do(func() { + file_workflow_proto_rawDescData = protoimpl.X.CompressGZIP(file_workflow_proto_rawDescData) + }) + return file_workflow_proto_rawDescData +} + +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_workflow_proto_goTypes = []interface{}{ + (*Archive)(nil), // 0: workflow.Archive + (*ArtifactS3)(nil), // 1: workflow.ArtifactS3 + (*Artifact)(nil), // 2: workflow.Artifact + (*Inputs)(nil), // 3: workflow.Inputs + (*Outputs)(nil), // 4: workflow.Outputs + (*Parameter)(nil), // 5: workflow.Parameter + (*Arguments)(nil), // 6: workflow.Arguments + (*DagTasks)(nil), // 7: workflow.DagTasks + (*DagTemplate)(nil), // 8: workflow.DagTemplate + (*ScriptTemplate)(nil), // 9: workflow.ScriptTemplate + (*Template)(nil), // 10: workflow.Template + (*Spec)(nil), // 11: workflow.Spec + (*Metadata)(nil), // 12: workflow.Metadata + (*Workflow)(nil), // 13: workflow.Workflow + (*CronSpec)(nil), // 14: workflow.CronSpec + (*CronWorkflow)(nil), // 15: workflow.CronWorkflow + (*WorkflowCreationRequest)(nil), // 16: workflow.WorkflowCreationRequest + (*WorkflowCreationResponse)(nil), // 17: workflow.WorkflowCreationResponse + (*WorkflowUpdateRequest)(nil), // 18: workflow.WorkflowUpdateRequest + (*WorkflowUpdateResponse)(nil), // 19: workflow.WorkflowUpdateResponse + (*WorkflowDeleteRequest)(nil), // 20: workflow.WorkflowDeleteRequest + (*WorkflowDeleteResponse)(nil), // 21: workflow.WorkflowDeleteResponse + (*WorkflowGetRequest)(nil), // 22: workflow.WorkflowGetRequest + (*WorkflowGetResponse)(nil), // 23: workflow.WorkflowGetResponse + (*WorkflowListRequest)(nil), // 24: workflow.WorkflowListRequest + (*WorkflowListResponse)(nil), // 25: workflow.WorkflowListResponse + (*WorkflowCreationError)(nil), // 26: workflow.WorkflowCreationError + (*WorkflowUpdateError)(nil), // 27: workflow.WorkflowUpdateError + (*WorkflowDeleteError)(nil), // 28: workflow.WorkflowDeleteError + (*WorkflowGetError)(nil), // 29: workflow.WorkflowGetError + (*WorkflowListError)(nil), // 30: workflow.WorkflowListError + nil, // 31: workflow.Archive.NoneEntry + nil, // 32: workflow.Arguments.ParametersEntry + nil, // 33: workflow.Arguments.ArtifactsEntry + nil, // 34: workflow.ScriptTemplate.ResourcesEntry + nil, // 35: workflow.Template.MetadataEntry + nil, // 36: workflow.Metadata.LabelsEntry +} +var file_workflow_proto_depIdxs = []int32{ + 31, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry + 0, // 1: workflow.Artifact.archive:type_name -> workflow.Archive + 1, // 2: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 + 5, // 3: workflow.Inputs.parameters:type_name -> workflow.Parameter + 2, // 4: workflow.Inputs.artifacts:type_name -> workflow.Artifact + 5, // 5: workflow.Outputs.parameters:type_name -> workflow.Parameter + 2, // 6: workflow.Outputs.artifacts:type_name -> workflow.Artifact + 32, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry + 33, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry + 6, // 9: workflow.DagTasks.arguments:type_name -> workflow.Arguments + 7, // 10: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks + 34, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry + 35, // 12: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry + 3, // 13: workflow.Template.inputs:type_name -> workflow.Inputs + 4, // 14: workflow.Template.outputs:type_name -> workflow.Outputs + 8, // 15: workflow.Template.dag:type_name -> workflow.DagTemplate + 9, // 16: workflow.Template.script:type_name -> workflow.ScriptTemplate + 6, // 17: workflow.Spec.arguments:type_name -> workflow.Arguments + 10, // 18: workflow.Spec.templates:type_name -> workflow.Template + 36, // 19: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry + 12, // 20: workflow.Workflow.metadata:type_name -> workflow.Metadata + 11, // 21: workflow.Workflow.spec:type_name -> workflow.Spec + 11, // 22: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec + 12, // 23: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata + 14, // 24: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec + 13, // 25: workflow.WorkflowCreationRequest.workflow:type_name -> workflow.Workflow + 13, // 26: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow + 23, // 27: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name +} + +func init() { file_workflow_proto_init() } +func file_workflow_proto_init() { + if File_workflow_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_workflow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Archive); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactS3); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Artifact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Inputs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Outputs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Arguments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DagTasks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DagTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScriptTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Template); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Spec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Workflow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CronSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CronWorkflow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowCreationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowCreationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowUpdateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowUpdateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowDeleteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowDeleteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowGetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowGetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowCreationError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowUpdateError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowDeleteError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowGetError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowListError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_workflow_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[30].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_workflow_proto_rawDesc, + NumEnums: 0, + NumMessages: 37, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_workflow_proto_goTypes, + DependencyIndexes: file_workflow_proto_depIdxs, + MessageInfos: file_workflow_proto_msgTypes, + }.Build() + File_workflow_proto = out.File + file_workflow_proto_rawDesc = nil + file_workflow_proto_goTypes = nil + file_workflow_proto_depIdxs = nil +} diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go new file mode 100644 index 0000000..42f7bb6 --- /dev/null +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go @@ -0,0 +1,4088 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: workflow.proto + +package workflow + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on Archive with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Archive) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Archive with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in ArchiveMultiError, or nil if none found. +func (m *Archive) ValidateAll() error { + return m.validate(true) +} + +func (m *Archive) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for None + + if len(errors) > 0 { + return ArchiveMultiError(errors) + } + + return nil +} + +// ArchiveMultiError is an error wrapping multiple validation errors returned +// by Archive.ValidateAll() if the designated constraints aren't met. +type ArchiveMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArchiveMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArchiveMultiError) AllErrors() []error { return m } + +// ArchiveValidationError is the validation error returned by Archive.Validate +// if the designated constraints aren't met. +type ArchiveValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArchiveValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArchiveValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArchiveValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArchiveValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArchiveValidationError) ErrorName() string { return "ArchiveValidationError" } + +// Error satisfies the builtin error interface +func (e ArchiveValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArchive.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArchiveValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArchiveValidationError{} + +// Validate checks the field values on ArtifactS3 with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ArtifactS3) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ArtifactS3 with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ArtifactS3MultiError, or +// nil if none found. +func (m *ArtifactS3) ValidateAll() error { + return m.validate(true) +} + +func (m *ArtifactS3) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Key != nil { + // no validation rules for Key + } + + if m.Bucket != nil { + // no validation rules for Bucket + } + + if len(errors) > 0 { + return ArtifactS3MultiError(errors) + } + + return nil +} + +// ArtifactS3MultiError is an error wrapping multiple validation errors +// returned by ArtifactS3.ValidateAll() if the designated constraints aren't met. +type ArtifactS3MultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtifactS3MultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArtifactS3MultiError) AllErrors() []error { return m } + +// ArtifactS3ValidationError is the validation error returned by +// ArtifactS3.Validate if the designated constraints aren't met. +type ArtifactS3ValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtifactS3ValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtifactS3ValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtifactS3ValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtifactS3ValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtifactS3ValidationError) ErrorName() string { return "ArtifactS3ValidationError" } + +// Error satisfies the builtin error interface +func (e ArtifactS3ValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArtifactS3.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtifactS3ValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtifactS3ValidationError{} + +// Validate checks the field values on Artifact with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Artifact) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Artifact with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ArtifactMultiError, or nil +// if none found. +func (m *Artifact) ValidateAll() error { + return m.validate(true) +} + +func (m *Artifact) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Path != nil { + // no validation rules for Path + } + + if m.Mode != nil { + // no validation rules for Mode + } + + if m.From != nil { + // no validation rules for From + } + + if m.Archive != nil { + + if all { + switch v := interface{}(m.GetArchive()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ArtifactValidationError{ + field: "Archive", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ArtifactValidationError{ + field: "Archive", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetArchive()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ArtifactValidationError{ + field: "Archive", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.S3 != nil { + + if all { + switch v := interface{}(m.GetS3()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ArtifactValidationError{ + field: "S3", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ArtifactValidationError{ + field: "S3", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetS3()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ArtifactValidationError{ + field: "S3", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ArtifactMultiError(errors) + } + + return nil +} + +// ArtifactMultiError is an error wrapping multiple validation errors returned +// by Artifact.ValidateAll() if the designated constraints aren't met. +type ArtifactMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArtifactMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArtifactMultiError) AllErrors() []error { return m } + +// ArtifactValidationError is the validation error returned by +// Artifact.Validate if the designated constraints aren't met. +type ArtifactValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArtifactValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArtifactValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArtifactValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArtifactValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArtifactValidationError) ErrorName() string { return "ArtifactValidationError" } + +// Error satisfies the builtin error interface +func (e ArtifactValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArtifact.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArtifactValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArtifactValidationError{} + +// Validate checks the field values on Inputs with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Inputs) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Inputs with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in InputsMultiError, or nil if none found. +func (m *Inputs) ValidateAll() error { + return m.validate(true) +} + +func (m *Inputs) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetParameters() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, InputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, InputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return InputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetArtifacts() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, InputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, InputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return InputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return InputsMultiError(errors) + } + + return nil +} + +// InputsMultiError is an error wrapping multiple validation errors returned by +// Inputs.ValidateAll() if the designated constraints aren't met. +type InputsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m InputsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m InputsMultiError) AllErrors() []error { return m } + +// InputsValidationError is the validation error returned by Inputs.Validate if +// the designated constraints aren't met. +type InputsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e InputsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e InputsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e InputsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e InputsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e InputsValidationError) ErrorName() string { return "InputsValidationError" } + +// Error satisfies the builtin error interface +func (e InputsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sInputs.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = InputsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = InputsValidationError{} + +// Validate checks the field values on Outputs with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Outputs) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Outputs with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in OutputsMultiError, or nil if none found. +func (m *Outputs) ValidateAll() error { + return m.validate(true) +} + +func (m *Outputs) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetParameters() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, OutputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, OutputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutputsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetArtifacts() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, OutputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, OutputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return OutputsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return OutputsMultiError(errors) + } + + return nil +} + +// OutputsMultiError is an error wrapping multiple validation errors returned +// by Outputs.ValidateAll() if the designated constraints aren't met. +type OutputsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m OutputsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m OutputsMultiError) AllErrors() []error { return m } + +// OutputsValidationError is the validation error returned by Outputs.Validate +// if the designated constraints aren't met. +type OutputsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e OutputsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e OutputsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e OutputsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e OutputsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e OutputsValidationError) ErrorName() string { return "OutputsValidationError" } + +// Error satisfies the builtin error interface +func (e OutputsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sOutputs.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = OutputsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = OutputsValidationError{} + +// Validate checks the field values on Parameter with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Parameter) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Parameter with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ParameterMultiError, or nil +// if none found. +func (m *Parameter) ValidateAll() error { + return m.validate(true) +} + +func (m *Parameter) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Value != nil { + // no validation rules for Value + } + + if m.Default != nil { + // no validation rules for Default + } + + if len(errors) > 0 { + return ParameterMultiError(errors) + } + + return nil +} + +// ParameterMultiError is an error wrapping multiple validation errors returned +// by Parameter.ValidateAll() if the designated constraints aren't met. +type ParameterMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ParameterMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ParameterMultiError) AllErrors() []error { return m } + +// ParameterValidationError is the validation error returned by +// Parameter.Validate if the designated constraints aren't met. +type ParameterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ParameterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ParameterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ParameterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ParameterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ParameterValidationError) ErrorName() string { return "ParameterValidationError" } + +// Error satisfies the builtin error interface +func (e ParameterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sParameter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ParameterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ParameterValidationError{} + +// Validate checks the field values on Arguments with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Arguments) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Arguments with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ArgumentsMultiError, or nil +// if none found. +func (m *Arguments) ValidateAll() error { + return m.validate(true) +} + +func (m *Arguments) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Parameters + + // no validation rules for Artifacts + + if len(errors) > 0 { + return ArgumentsMultiError(errors) + } + + return nil +} + +// ArgumentsMultiError is an error wrapping multiple validation errors returned +// by Arguments.ValidateAll() if the designated constraints aren't met. +type ArgumentsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ArgumentsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ArgumentsMultiError) AllErrors() []error { return m } + +// ArgumentsValidationError is the validation error returned by +// Arguments.Validate if the designated constraints aren't met. +type ArgumentsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ArgumentsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ArgumentsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ArgumentsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ArgumentsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ArgumentsValidationError) ErrorName() string { return "ArgumentsValidationError" } + +// Error satisfies the builtin error interface +func (e ArgumentsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sArguments.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ArgumentsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ArgumentsValidationError{} + +// Validate checks the field values on DagTasks with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *DagTasks) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DagTasks with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in DagTasksMultiError, or nil +// if none found. +func (m *DagTasks) ValidateAll() error { + return m.validate(true) +} + +func (m *DagTasks) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + // no validation rules for Template + + if m.Depends != nil { + // no validation rules for Depends + } + + if m.Arguments != nil { + + if all { + switch v := interface{}(m.GetArguments()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DagTasksValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DagTasksValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetArguments()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DagTasksValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return DagTasksMultiError(errors) + } + + return nil +} + +// DagTasksMultiError is an error wrapping multiple validation errors returned +// by DagTasks.ValidateAll() if the designated constraints aren't met. +type DagTasksMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DagTasksMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DagTasksMultiError) AllErrors() []error { return m } + +// DagTasksValidationError is the validation error returned by +// DagTasks.Validate if the designated constraints aren't met. +type DagTasksValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DagTasksValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DagTasksValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DagTasksValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DagTasksValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DagTasksValidationError) ErrorName() string { return "DagTasksValidationError" } + +// Error satisfies the builtin error interface +func (e DagTasksValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDagTasks.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DagTasksValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DagTasksValidationError{} + +// Validate checks the field values on DagTemplate with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *DagTemplate) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DagTemplate with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in DagTemplateMultiError, or +// nil if none found. +func (m *DagTemplate) ValidateAll() error { + return m.validate(true) +} + +func (m *DagTemplate) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetTasks() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DagTemplateValidationError{ + field: fmt.Sprintf("Tasks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DagTemplateValidationError{ + field: fmt.Sprintf("Tasks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DagTemplateValidationError{ + field: fmt.Sprintf("Tasks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Target != nil { + // no validation rules for Target + } + + if len(errors) > 0 { + return DagTemplateMultiError(errors) + } + + return nil +} + +// DagTemplateMultiError is an error wrapping multiple validation errors +// returned by DagTemplate.ValidateAll() if the designated constraints aren't met. +type DagTemplateMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DagTemplateMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DagTemplateMultiError) AllErrors() []error { return m } + +// DagTemplateValidationError is the validation error returned by +// DagTemplate.Validate if the designated constraints aren't met. +type DagTemplateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DagTemplateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DagTemplateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DagTemplateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DagTemplateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DagTemplateValidationError) ErrorName() string { return "DagTemplateValidationError" } + +// Error satisfies the builtin error interface +func (e DagTemplateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDagTemplate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DagTemplateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DagTemplateValidationError{} + +// Validate checks the field values on ScriptTemplate with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ScriptTemplate) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ScriptTemplate with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ScriptTemplateMultiError, +// or nil if none found. +func (m *ScriptTemplate) ValidateAll() error { + return m.validate(true) +} + +func (m *ScriptTemplate) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Resources + + if m.Image != nil { + // no validation rules for Image + } + + if m.Source != nil { + // no validation rules for Source + } + + if len(errors) > 0 { + return ScriptTemplateMultiError(errors) + } + + return nil +} + +// ScriptTemplateMultiError is an error wrapping multiple validation errors +// returned by ScriptTemplate.ValidateAll() if the designated constraints +// aren't met. +type ScriptTemplateMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ScriptTemplateMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ScriptTemplateMultiError) AllErrors() []error { return m } + +// ScriptTemplateValidationError is the validation error returned by +// ScriptTemplate.Validate if the designated constraints aren't met. +type ScriptTemplateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ScriptTemplateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ScriptTemplateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ScriptTemplateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ScriptTemplateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ScriptTemplateValidationError) ErrorName() string { return "ScriptTemplateValidationError" } + +// Error satisfies the builtin error interface +func (e ScriptTemplateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sScriptTemplate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ScriptTemplateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ScriptTemplateValidationError{} + +// Validate checks the field values on Template with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Template) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Template with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in TemplateMultiError, or nil +// if none found. +func (m *Template) ValidateAll() error { + return m.validate(true) +} + +func (m *Template) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Metadata + + if m.Name != nil { + // no validation rules for Name + } + + if m.Container != nil { + // no validation rules for Container + } + + if m.Inputs != nil { + + if all { + switch v := interface{}(m.GetInputs()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Inputs", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Inputs", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetInputs()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TemplateValidationError{ + field: "Inputs", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Outputs != nil { + + if all { + switch v := interface{}(m.GetOutputs()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Outputs", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Outputs", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetOutputs()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TemplateValidationError{ + field: "Outputs", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Dag != nil { + + if all { + switch v := interface{}(m.GetDag()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Dag", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Dag", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetDag()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TemplateValidationError{ + field: "Dag", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Script != nil { + + if all { + switch v := interface{}(m.GetScript()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Script", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Script", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetScript()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TemplateValidationError{ + field: "Script", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TemplateMultiError(errors) + } + + return nil +} + +// TemplateMultiError is an error wrapping multiple validation errors returned +// by Template.ValidateAll() if the designated constraints aren't met. +type TemplateMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TemplateMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TemplateMultiError) AllErrors() []error { return m } + +// TemplateValidationError is the validation error returned by +// Template.Validate if the designated constraints aren't met. +type TemplateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TemplateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TemplateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TemplateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TemplateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TemplateValidationError) ErrorName() string { return "TemplateValidationError" } + +// Error satisfies the builtin error interface +func (e TemplateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTemplate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TemplateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TemplateValidationError{} + +// Validate checks the field values on Spec with the rules defined in the proto +// definition for this message. If any rules are violated, the first error +// encountered is returned, or nil if there are no violations. +func (m *Spec) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Spec with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in SpecMultiError, or nil if none found. +func (m *Spec) ValidateAll() error { + return m.validate(true) +} + +func (m *Spec) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Entrypoint + + for idx, item := range m.GetTemplates() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SpecValidationError{ + field: fmt.Sprintf("Templates[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SpecValidationError{ + field: fmt.Sprintf("Templates[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SpecValidationError{ + field: fmt.Sprintf("Templates[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Arguments != nil { + + if all { + switch v := interface{}(m.GetArguments()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SpecValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SpecValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetArguments()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SpecValidationError{ + field: "Arguments", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return SpecMultiError(errors) + } + + return nil +} + +// SpecMultiError is an error wrapping multiple validation errors returned by +// Spec.ValidateAll() if the designated constraints aren't met. +type SpecMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SpecMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SpecMultiError) AllErrors() []error { return m } + +// SpecValidationError is the validation error returned by Spec.Validate if the +// designated constraints aren't met. +type SpecValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SpecValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SpecValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SpecValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SpecValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SpecValidationError) ErrorName() string { return "SpecValidationError" } + +// Error satisfies the builtin error interface +func (e SpecValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSpec.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SpecValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SpecValidationError{} + +// Validate checks the field values on Metadata with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Metadata) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Metadata with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in MetadataMultiError, or nil +// if none found. +func (m *Metadata) ValidateAll() error { + return m.validate(true) +} + +func (m *Metadata) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Labels + + if m.GenerateName != nil { + // no validation rules for GenerateName + } + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if len(errors) > 0 { + return MetadataMultiError(errors) + } + + return nil +} + +// MetadataMultiError is an error wrapping multiple validation errors returned +// by Metadata.ValidateAll() if the designated constraints aren't met. +type MetadataMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MetadataMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MetadataMultiError) AllErrors() []error { return m } + +// MetadataValidationError is the validation error returned by +// Metadata.Validate if the designated constraints aren't met. +type MetadataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MetadataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MetadataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MetadataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MetadataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MetadataValidationError) ErrorName() string { return "MetadataValidationError" } + +// Error satisfies the builtin error interface +func (e MetadataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMetadata.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MetadataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MetadataValidationError{} + +// Validate checks the field values on Workflow with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Workflow) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Workflow with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkflowMultiError, or nil +// if none found. +func (m *Workflow) ValidateAll() error { + return m.validate(true) +} + +func (m *Workflow) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetMetadata()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetSpec()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return WorkflowMultiError(errors) + } + + return nil +} + +// WorkflowMultiError is an error wrapping multiple validation errors returned +// by Workflow.ValidateAll() if the designated constraints aren't met. +type WorkflowMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowMultiError) AllErrors() []error { return m } + +// WorkflowValidationError is the validation error returned by +// Workflow.Validate if the designated constraints aren't met. +type WorkflowValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowValidationError) ErrorName() string { return "WorkflowValidationError" } + +// Error satisfies the builtin error interface +func (e WorkflowValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflow.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowValidationError{} + +// Validate checks the field values on CronSpec with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CronSpec) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CronSpec with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CronSpecMultiError, or nil +// if none found. +func (m *CronSpec) ValidateAll() error { + return m.validate(true) +} + +func (m *CronSpec) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Schedule + + // no validation rules for Timezone + + if all { + switch v := interface{}(m.GetWorkflowSpec()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CronSpecValidationError{ + field: "WorkflowSpec", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CronSpecValidationError{ + field: "WorkflowSpec", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetWorkflowSpec()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CronSpecValidationError{ + field: "WorkflowSpec", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if m.StartingDeadlineSeconds != nil { + // no validation rules for StartingDeadlineSeconds + } + + if m.ConcurrencyPolicy != nil { + // no validation rules for ConcurrencyPolicy + } + + if m.SuccessfulJobsHistoryLimit != nil { + // no validation rules for SuccessfulJobsHistoryLimit + } + + if m.FailedJobsHistoryLimit != nil { + // no validation rules for FailedJobsHistoryLimit + } + + if m.Suspend != nil { + // no validation rules for Suspend + } + + if len(errors) > 0 { + return CronSpecMultiError(errors) + } + + return nil +} + +// CronSpecMultiError is an error wrapping multiple validation errors returned +// by CronSpec.ValidateAll() if the designated constraints aren't met. +type CronSpecMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CronSpecMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CronSpecMultiError) AllErrors() []error { return m } + +// CronSpecValidationError is the validation error returned by +// CronSpec.Validate if the designated constraints aren't met. +type CronSpecValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CronSpecValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CronSpecValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CronSpecValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CronSpecValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CronSpecValidationError) ErrorName() string { return "CronSpecValidationError" } + +// Error satisfies the builtin error interface +func (e CronSpecValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCronSpec.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CronSpecValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CronSpecValidationError{} + +// Validate checks the field values on CronWorkflow with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CronWorkflow) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CronWorkflow with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CronWorkflowMultiError, or +// nil if none found. +func (m *CronWorkflow) ValidateAll() error { + return m.validate(true) +} + +func (m *CronWorkflow) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetMetadata()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CronWorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CronWorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CronWorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetSpec()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CronWorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CronWorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CronWorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return CronWorkflowMultiError(errors) + } + + return nil +} + +// CronWorkflowMultiError is an error wrapping multiple validation errors +// returned by CronWorkflow.ValidateAll() if the designated constraints aren't met. +type CronWorkflowMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CronWorkflowMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CronWorkflowMultiError) AllErrors() []error { return m } + +// CronWorkflowValidationError is the validation error returned by +// CronWorkflow.Validate if the designated constraints aren't met. +type CronWorkflowValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CronWorkflowValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CronWorkflowValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CronWorkflowValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CronWorkflowValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CronWorkflowValidationError) ErrorName() string { return "CronWorkflowValidationError" } + +// Error satisfies the builtin error interface +func (e CronWorkflowValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCronWorkflow.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CronWorkflowValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CronWorkflowValidationError{} + +// Validate checks the field values on WorkflowCreationRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreationRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowCreationRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowCreationRequestMultiError, or nil if none found. +func (m *WorkflowCreationRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowCreationRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Description != nil { + // no validation rules for Description + } + + if m.UserUid != nil { + // no validation rules for UserUid + } + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if m.ServerDryRun != nil { + // no validation rules for ServerDryRun + } + + if m.Workflow != nil { + + if all { + switch v := interface{}(m.GetWorkflow()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowCreationRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowCreationRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowCreationRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return WorkflowCreationRequestMultiError(errors) + } + + return nil +} + +// WorkflowCreationRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowCreationRequest.ValidateAll() if the designated +// constraints aren't met. +type WorkflowCreationRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowCreationRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowCreationRequestMultiError) AllErrors() []error { return m } + +// WorkflowCreationRequestValidationError is the validation error returned by +// WorkflowCreationRequest.Validate if the designated constraints aren't met. +type WorkflowCreationRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowCreationRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowCreationRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowCreationRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowCreationRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowCreationRequestValidationError) ErrorName() string { + return "WorkflowCreationRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowCreationRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowCreationRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowCreationRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowCreationRequestValidationError{} + +// Validate checks the field values on WorkflowCreationResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreationResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowCreationResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowCreationResponseMultiError, or nil if none found. +func (m *WorkflowCreationResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowCreationResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowCreationResponseMultiError(errors) + } + + return nil +} + +// WorkflowCreationResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowCreationResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowCreationResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowCreationResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowCreationResponseMultiError) AllErrors() []error { return m } + +// WorkflowCreationResponseValidationError is the validation error returned by +// WorkflowCreationResponse.Validate if the designated constraints aren't met. +type WorkflowCreationResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowCreationResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowCreationResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowCreationResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowCreationResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowCreationResponseValidationError) ErrorName() string { + return "WorkflowCreationResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowCreationResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowCreationResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowCreationResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowCreationResponseValidationError{} + +// Validate checks the field values on WorkflowUpdateRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowUpdateRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowUpdateRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowUpdateRequestMultiError, or nil if none found. +func (m *WorkflowUpdateRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowUpdateRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if m.Workflow != nil { + + if all { + switch v := interface{}(m.GetWorkflow()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowUpdateRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowUpdateRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowUpdateRequestValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return WorkflowUpdateRequestMultiError(errors) + } + + return nil +} + +// WorkflowUpdateRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowUpdateRequest.ValidateAll() if the designated +// constraints aren't met. +type WorkflowUpdateRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowUpdateRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowUpdateRequestMultiError) AllErrors() []error { return m } + +// WorkflowUpdateRequestValidationError is the validation error returned by +// WorkflowUpdateRequest.Validate if the designated constraints aren't met. +type WorkflowUpdateRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowUpdateRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowUpdateRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowUpdateRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowUpdateRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowUpdateRequestValidationError) ErrorName() string { + return "WorkflowUpdateRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowUpdateRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowUpdateRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowUpdateRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowUpdateRequestValidationError{} + +// Validate checks the field values on WorkflowUpdateResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowUpdateResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowUpdateResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowUpdateResponseMultiError, or nil if none found. +func (m *WorkflowUpdateResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowUpdateResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowUpdateResponseMultiError(errors) + } + + return nil +} + +// WorkflowUpdateResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowUpdateResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowUpdateResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowUpdateResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowUpdateResponseMultiError) AllErrors() []error { return m } + +// WorkflowUpdateResponseValidationError is the validation error returned by +// WorkflowUpdateResponse.Validate if the designated constraints aren't met. +type WorkflowUpdateResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowUpdateResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowUpdateResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowUpdateResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowUpdateResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowUpdateResponseValidationError) ErrorName() string { + return "WorkflowUpdateResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowUpdateResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowUpdateResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowUpdateResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowUpdateResponseValidationError{} + +// Validate checks the field values on WorkflowDeleteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowDeleteRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowDeleteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowDeleteRequestMultiError, or nil if none found. +func (m *WorkflowDeleteRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowDeleteRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.WorkflowName != nil { + // no validation rules for WorkflowName + } + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if len(errors) > 0 { + return WorkflowDeleteRequestMultiError(errors) + } + + return nil +} + +// WorkflowDeleteRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowDeleteRequest.ValidateAll() if the designated +// constraints aren't met. +type WorkflowDeleteRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowDeleteRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowDeleteRequestMultiError) AllErrors() []error { return m } + +// WorkflowDeleteRequestValidationError is the validation error returned by +// WorkflowDeleteRequest.Validate if the designated constraints aren't met. +type WorkflowDeleteRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowDeleteRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowDeleteRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowDeleteRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowDeleteRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowDeleteRequestValidationError) ErrorName() string { + return "WorkflowDeleteRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowDeleteRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowDeleteRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowDeleteRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowDeleteRequestValidationError{} + +// Validate checks the field values on WorkflowDeleteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowDeleteResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowDeleteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowDeleteResponseMultiError, or nil if none found. +func (m *WorkflowDeleteResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowDeleteResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowDeleteResponseMultiError(errors) + } + + return nil +} + +// WorkflowDeleteResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowDeleteResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowDeleteResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowDeleteResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowDeleteResponseMultiError) AllErrors() []error { return m } + +// WorkflowDeleteResponseValidationError is the validation error returned by +// WorkflowDeleteResponse.Validate if the designated constraints aren't met. +type WorkflowDeleteResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowDeleteResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowDeleteResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowDeleteResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowDeleteResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowDeleteResponseValidationError) ErrorName() string { + return "WorkflowDeleteResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowDeleteResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowDeleteResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowDeleteResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowDeleteResponseValidationError{} + +// Validate checks the field values on WorkflowGetRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowGetRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowGetRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowGetRequestMultiError, or nil if none found. +func (m *WorkflowGetRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowGetRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.WorkflowName != nil { + // no validation rules for WorkflowName + } + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if len(errors) > 0 { + return WorkflowGetRequestMultiError(errors) + } + + return nil +} + +// WorkflowGetRequestMultiError is an error wrapping multiple validation errors +// returned by WorkflowGetRequest.ValidateAll() if the designated constraints +// aren't met. +type WorkflowGetRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowGetRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowGetRequestMultiError) AllErrors() []error { return m } + +// WorkflowGetRequestValidationError is the validation error returned by +// WorkflowGetRequest.Validate if the designated constraints aren't met. +type WorkflowGetRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowGetRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowGetRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowGetRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowGetRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowGetRequestValidationError) ErrorName() string { + return "WorkflowGetRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowGetRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowGetRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowGetRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowGetRequestValidationError{} + +// Validate checks the field values on WorkflowGetResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowGetResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowGetResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowGetResponseMultiError, or nil if none found. +func (m *WorkflowGetResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowGetResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowGetResponseMultiError(errors) + } + + return nil +} + +// WorkflowGetResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowGetResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowGetResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowGetResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowGetResponseMultiError) AllErrors() []error { return m } + +// WorkflowGetResponseValidationError is the validation error returned by +// WorkflowGetResponse.Validate if the designated constraints aren't met. +type WorkflowGetResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowGetResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowGetResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowGetResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowGetResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowGetResponseValidationError) ErrorName() string { + return "WorkflowGetResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowGetResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowGetResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowGetResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowGetResponseValidationError{} + +// Validate checks the field values on WorkflowListRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowListRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowListRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowListRequestMultiError, or nil if none found. +func (m *WorkflowListRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowListRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Namespace != nil { + // no validation rules for Namespace + } + + if len(errors) > 0 { + return WorkflowListRequestMultiError(errors) + } + + return nil +} + +// WorkflowListRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowListRequest.ValidateAll() if the designated +// constraints aren't met. +type WorkflowListRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowListRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowListRequestMultiError) AllErrors() []error { return m } + +// WorkflowListRequestValidationError is the validation error returned by +// WorkflowListRequest.Validate if the designated constraints aren't met. +type WorkflowListRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowListRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowListRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowListRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowListRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowListRequestValidationError) ErrorName() string { + return "WorkflowListRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowListRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowListRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowListRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowListRequestValidationError{} + +// Validate checks the field values on WorkflowListResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowListResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowListResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowListResponseMultiError, or nil if none found. +func (m *WorkflowListResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowListResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetWorkflows() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return WorkflowListResponseMultiError(errors) + } + + return nil +} + +// WorkflowListResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowListResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowListResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowListResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowListResponseMultiError) AllErrors() []error { return m } + +// WorkflowListResponseValidationError is the validation error returned by +// WorkflowListResponse.Validate if the designated constraints aren't met. +type WorkflowListResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowListResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowListResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowListResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowListResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowListResponseValidationError) ErrorName() string { + return "WorkflowListResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowListResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowListResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowListResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowListResponseValidationError{} + +// Validate checks the field values on WorkflowCreationError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreationError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowCreationError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowCreationErrorMultiError, or nil if none found. +func (m *WorkflowCreationError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowCreationError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowCreationErrorMultiError(errors) + } + + return nil +} + +// WorkflowCreationErrorMultiError is an error wrapping multiple validation +// errors returned by WorkflowCreationError.ValidateAll() if the designated +// constraints aren't met. +type WorkflowCreationErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowCreationErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowCreationErrorMultiError) AllErrors() []error { return m } + +// WorkflowCreationErrorValidationError is the validation error returned by +// WorkflowCreationError.Validate if the designated constraints aren't met. +type WorkflowCreationErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowCreationErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowCreationErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowCreationErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowCreationErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowCreationErrorValidationError) ErrorName() string { + return "WorkflowCreationErrorValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowCreationErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowCreationError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowCreationErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowCreationErrorValidationError{} + +// Validate checks the field values on WorkflowUpdateError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowUpdateError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowUpdateError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowUpdateErrorMultiError, or nil if none found. +func (m *WorkflowUpdateError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowUpdateError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowUpdateErrorMultiError(errors) + } + + return nil +} + +// WorkflowUpdateErrorMultiError is an error wrapping multiple validation +// errors returned by WorkflowUpdateError.ValidateAll() if the designated +// constraints aren't met. +type WorkflowUpdateErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowUpdateErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowUpdateErrorMultiError) AllErrors() []error { return m } + +// WorkflowUpdateErrorValidationError is the validation error returned by +// WorkflowUpdateError.Validate if the designated constraints aren't met. +type WorkflowUpdateErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowUpdateErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowUpdateErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowUpdateErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowUpdateErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowUpdateErrorValidationError) ErrorName() string { + return "WorkflowUpdateErrorValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowUpdateErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowUpdateError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowUpdateErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowUpdateErrorValidationError{} + +// Validate checks the field values on WorkflowDeleteError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowDeleteError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowDeleteError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowDeleteErrorMultiError, or nil if none found. +func (m *WorkflowDeleteError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowDeleteError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowDeleteErrorMultiError(errors) + } + + return nil +} + +// WorkflowDeleteErrorMultiError is an error wrapping multiple validation +// errors returned by WorkflowDeleteError.ValidateAll() if the designated +// constraints aren't met. +type WorkflowDeleteErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowDeleteErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowDeleteErrorMultiError) AllErrors() []error { return m } + +// WorkflowDeleteErrorValidationError is the validation error returned by +// WorkflowDeleteError.Validate if the designated constraints aren't met. +type WorkflowDeleteErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowDeleteErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowDeleteErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowDeleteErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowDeleteErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowDeleteErrorValidationError) ErrorName() string { + return "WorkflowDeleteErrorValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowDeleteErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowDeleteError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowDeleteErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowDeleteErrorValidationError{} + +// Validate checks the field values on WorkflowGetError with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *WorkflowGetError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowGetError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowGetErrorMultiError, or nil if none found. +func (m *WorkflowGetError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowGetError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowGetErrorMultiError(errors) + } + + return nil +} + +// WorkflowGetErrorMultiError is an error wrapping multiple validation errors +// returned by WorkflowGetError.ValidateAll() if the designated constraints +// aren't met. +type WorkflowGetErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowGetErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowGetErrorMultiError) AllErrors() []error { return m } + +// WorkflowGetErrorValidationError is the validation error returned by +// WorkflowGetError.Validate if the designated constraints aren't met. +type WorkflowGetErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowGetErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowGetErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowGetErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowGetErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowGetErrorValidationError) ErrorName() string { return "WorkflowGetErrorValidationError" } + +// Error satisfies the builtin error interface +func (e WorkflowGetErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowGetError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowGetErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowGetErrorValidationError{} + +// Validate checks the field values on WorkflowListError with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *WorkflowListError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowListError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowListErrorMultiError, or nil if none found. +func (m *WorkflowListError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowListError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Name != nil { + // no validation rules for Name + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowListErrorMultiError(errors) + } + + return nil +} + +// WorkflowListErrorMultiError is an error wrapping multiple validation errors +// returned by WorkflowListError.ValidateAll() if the designated constraints +// aren't met. +type WorkflowListErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowListErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowListErrorMultiError) AllErrors() []error { return m } + +// WorkflowListErrorValidationError is the validation error returned by +// WorkflowListError.Validate if the designated constraints aren't met. +type WorkflowListErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowListErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowListErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowListErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowListErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowListErrorValidationError) ErrorName() string { + return "WorkflowListErrorValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowListErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowListError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowListErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowListErrorValidationError{} diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py new file mode 100644 index 0000000..49e0e8a --- /dev/null +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -0,0 +1,156 @@ +# This is an automatically generated file, please do not change +# gen by protobuf_to_pydantic[v0.2.6.2](https://github.com/so1n/protobuf_to_pydantic) +# Protobuf Version: 5.26.1 +# Pydantic Version: 2.7.1 +from google.protobuf.message import Message # type: ignore +from pydantic import BaseModel +from pydantic import Field +import typing + + +class Archive(BaseModel): + none: typing.Dict[str, str] = Field(default_factory=dict) + +class ArtifactS3(BaseModel): + key: typing.Optional[str] = Field(default="") + bucket: typing.Optional[str] = Field(default="") + +class Artifact(BaseModel): + name: typing.Optional[str] = Field(default="") + path: typing.Optional[str] = Field(default="") + mode: typing.Optional[int] = Field(default=0) + archive: typing.Optional[Archive] = Field(default=None) + s3: typing.Optional[ArtifactS3] = Field(default=None) + +class Parameter(BaseModel): + name: typing.Optional[str] = Field(default="") + value: typing.Optional[str] = Field(default="") + default: typing.Optional[str] = Field(default="") + +class Inputs(BaseModel): + parameters: typing.List[Parameter] = Field(default_factory=list) + artifacts: typing.List[Artifact] = Field(default_factory=list) + +class Outputs(BaseModel): + parameters: typing.List[Parameter] = Field(default_factory=list) + artifacts: typing.List[Artifact] = Field(default_factory=list) + +class Arguments(BaseModel): + parameters: typing.Dict[str, str] = Field(default_factory=dict) + artifacts: typing.Dict[str, str] = Field(default_factory=dict) + +class DagTasks(BaseModel): + name: str = Field(default="") + template: str = Field(default="") + depends: typing.Optional[str] = Field(default="") + arguments: typing.Optional[Arguments] = Field(default=None) + +class DagTemplate(BaseModel): + tasks: typing.List[DagTasks] = Field(default_factory=list) + target: typing.Optional[str] = Field(default="") + +class ScriptTemplate(BaseModel): + image: typing.Optional[str] = Field(default="") + command: typing.List[str] = Field(default_factory=list) + resources: typing.Dict[str, str] = Field(default_factory=dict) + source: typing.Optional[str] = Field(default="") + +class Template(BaseModel): + name: typing.Optional[str] = Field(default="") + container: typing.Optional[str] = Field(default="") + metadata: typing.Dict[str, str] = Field(default_factory=dict) + inputs: typing.Optional[Inputs] = Field(default=None) + outputs: typing.Optional[Outputs] = Field(default=None) + dag: typing.Optional[DagTemplate] = Field(default=None) + script: typing.Optional[ScriptTemplate] = Field(default=None) + +class Spec(BaseModel): + entrypoint: str = Field(default="") + arguments: typing.Optional[Arguments] = Field(default=None) + templates: typing.List[Template] = Field(default_factory=list) + +class Metadata(BaseModel): + generateName: typing.Optional[str] = Field(default="") + namespace: typing.Optional[str] = Field(default="") + labels: typing.Dict[str, str] = Field(default_factory=dict) + +class Workflow(BaseModel): + metadata: Metadata = Field() + spec: Spec = Field() + +class CronSpec(BaseModel): + schedule: str = Field(default="") + timezone: str = Field(default="") + startingDeadlineSeconds: typing.Optional[str] = Field(default="") + concurrencyPolicy: typing.Optional[str] = Field(default="") + successfulJobsHistoryLimit: typing.Optional[str] = Field(default="") + failedJobsHistoryLimit: typing.Optional[str] = Field(default="") + suspend: typing.Optional[str] = Field(default="") + workflowSpec: Spec = Field() + +class CronWorkflow(BaseModel): + metadata: Metadata = Field() + spec: CronSpec = Field() + +class WorkflowCreationRequest(BaseModel): + name: typing.Optional[str] = Field(default="") + description: typing.Optional[str] = Field(default="") + user_uid: typing.Optional[str] = Field(default="") + namespace: typing.Optional[str] = Field(default="") + serverDryRun: typing.Optional[bool] = Field(default=False) + workflow: typing.Optional[Workflow] = Field(default=None) + +class WorkflowCreationResponse(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowUpdateRequest(BaseModel): + name: typing.Optional[str] = Field(default="") + namespace: typing.Optional[str] = Field(default="") + workflow: typing.Optional[Workflow] = Field(default=None) + +class WorkflowUpdateResponse(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowDeleteRequest(BaseModel): + workflow_name: typing.Optional[str] = Field(default="") + namespace: typing.Optional[str] = Field(default="") + +class WorkflowDeleteResponse(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowGetRequest(BaseModel): + workflow_name: typing.Optional[str] = Field(default="") + namespace: typing.Optional[str] = Field(default="") + +class WorkflowGetResponse(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowListRequest(BaseModel): + namespace: typing.Optional[str] = Field(default="") + +class WorkflowListResponse(BaseModel): + workflows: typing.List[WorkflowGetResponse] = Field(default_factory=list) + +class WorkflowCreationError(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowUpdateError(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowDeleteError(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowGetError(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") + +class WorkflowListError(BaseModel): + name: typing.Optional[str] = Field(default="") + message: typing.Optional[str] = Field(default="") diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py new file mode 100644 index 0000000..c5dac48 --- /dev/null +++ b/python/naas_models/workflow_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: workflow.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +import naas_models.validate_pb2 as validate__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x8d\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08user_uid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'workflow_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z/github.com/jupyter-naas/naas-models/go/workflow' + _globals['_ARCHIVE_NONEENTRY']._loaded_options = None + _globals['_ARCHIVE_NONEENTRY']._serialized_options = b'8\001' + _globals['_ARGUMENTS_PARAMETERSENTRY']._loaded_options = None + _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_options = b'8\001' + _globals['_ARGUMENTS_ARTIFACTSENTRY']._loaded_options = None + _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_options = b'8\001' + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._loaded_options = None + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_options = b'8\001' + _globals['_TEMPLATE_METADATAENTRY']._loaded_options = None + _globals['_TEMPLATE_METADATAENTRY']._serialized_options = b'8\001' + _globals['_METADATA_LABELSENTRY']._loaded_options = None + _globals['_METADATA_LABELSENTRY']._serialized_options = b'8\001' + _globals['_ARCHIVE']._serialized_start=44 + _globals['_ARCHIVE']._serialized_end=141 + _globals['_ARCHIVE_NONEENTRY']._serialized_start=98 + _globals['_ARCHIVE_NONEENTRY']._serialized_end=141 + _globals['_ARTIFACTS3']._serialized_start=143 + _globals['_ARTIFACTS3']._serialized_end=213 + _globals['_ARTIFACT']._serialized_start=216 + _globals['_ARTIFACT']._serialized_end=437 + _globals['_INPUTS']._serialized_start=439 + _globals['_INPUTS']._serialized_end=527 + _globals['_OUTPUTS']._serialized_start=529 + _globals['_OUTPUTS']._serialized_end=618 + _globals['_PARAMETER']._serialized_start=620 + _globals['_PARAMETER']._serialized_end=723 + _globals['_ARGUMENTS']._serialized_start=726 + _globals['_ARGUMENTS']._serialized_end=950 + _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_start=851 + _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_end=900 + _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_start=902 + _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_end=950 + _globals['_DAGTASKS']._serialized_start=953 + _globals['_DAGTASKS']._serialized_end=1088 + _globals['_DAGTEMPLATE']._serialized_start=1090 + _globals['_DAGTEMPLATE']._serialized_end=1170 + _globals['_SCRIPTTEMPLATE']._serialized_start=1173 + _globals['_SCRIPTTEMPLATE']._serialized_end=1378 + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_start=1309 + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_end=1357 + _globals['_TEMPLATE']._serialized_start=1381 + _globals['_TEMPLATE']._serialized_end=1768 + _globals['_TEMPLATE_METADATAENTRY']._serialized_start=1656 + _globals['_TEMPLATE_METADATAENTRY']._serialized_end=1703 + _globals['_SPEC']._serialized_start=1770 + _globals['_SPEC']._serialized_end=1894 + _globals['_METADATA']._serialized_start=1897 + _globals['_METADATA']._serialized_end=2084 + _globals['_METADATA_LABELSENTRY']._serialized_start=2008 + _globals['_METADATA_LABELSENTRY']._serialized_end=2053 + _globals['_WORKFLOW']._serialized_start=2086 + _globals['_WORKFLOW']._serialized_end=2164 + _globals['_CRONSPEC']._serialized_start=2167 + _globals['_CRONSPEC']._serialized_end=2541 + _globals['_CRONWORKFLOW']._serialized_start=2543 + _globals['_CRONWORKFLOW']._serialized_end=2629 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=2632 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=2901 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=2903 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=2991 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=2994 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3139 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3141 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3227 + _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3229 + _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3336 + _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3338 + _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3424 + _globals['_WORKFLOWGETREQUEST']._serialized_start=3426 + _globals['_WORKFLOWGETREQUEST']._serialized_end=3530 + _globals['_WORKFLOWGETRESPONSE']._serialized_start=3532 + _globals['_WORKFLOWGETRESPONSE']._serialized_end=3615 + _globals['_WORKFLOWLISTREQUEST']._serialized_start=3617 + _globals['_WORKFLOWLISTREQUEST']._serialized_end=3676 + _globals['_WORKFLOWLISTRESPONSE']._serialized_start=3678 + _globals['_WORKFLOWLISTRESPONSE']._serialized_end=3750 + _globals['_WORKFLOWCREATIONERROR']._serialized_start=3752 + _globals['_WORKFLOWCREATIONERROR']._serialized_end=3837 + _globals['_WORKFLOWUPDATEERROR']._serialized_start=3839 + _globals['_WORKFLOWUPDATEERROR']._serialized_end=3922 + _globals['_WORKFLOWDELETEERROR']._serialized_start=3924 + _globals['_WORKFLOWDELETEERROR']._serialized_end=4007 + _globals['_WORKFLOWGETERROR']._serialized_start=4009 + _globals['_WORKFLOWGETERROR']._serialized_end=4089 + _globals['_WORKFLOWLISTERROR']._serialized_start=4091 + _globals['_WORKFLOWLISTERROR']._serialized_end=4172 +# @@protoc_insertion_point(module_scope) From 6d4473a6c8b2a7a2b38156f9b8bef101f9aa88e5 Mon Sep 17 00:00:00 2001 From: "Loic L." Date: Tue, 14 May 2024 17:47:37 +0200 Subject: [PATCH 08/11] fix: workflow pydantic --- .../naas-models/go/workflow/workflow.pb.go | 514 ++++++++++-------- .../go/workflow/workflow.pb.validate.go | 206 ++++++- protos/workflow.proto | 9 +- python/naas_models/pydantic/workflow_p2p.py | 9 +- python/naas_models/workflow_pb2.py | 68 +-- 5 files changed, 543 insertions(+), 263 deletions(-) diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go index e5368da..ccc6ac5 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go @@ -1069,7 +1069,7 @@ func (x *CronWorkflow) GetSpec() *CronSpec { return nil } -type WorkflowCreationRequest struct { +type WorkflowCreation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1082,8 +1082,8 @@ type WorkflowCreationRequest struct { Workflow *Workflow `protobuf:"bytes,6,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` } -func (x *WorkflowCreationRequest) Reset() { - *x = WorkflowCreationRequest{} +func (x *WorkflowCreation) Reset() { + *x = WorkflowCreation{} if protoimpl.UnsafeEnabled { mi := &file_workflow_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1091,13 +1091,13 @@ func (x *WorkflowCreationRequest) Reset() { } } -func (x *WorkflowCreationRequest) String() string { +func (x *WorkflowCreation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowCreationRequest) ProtoMessage() {} +func (*WorkflowCreation) ProtoMessage() {} -func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { +func (x *WorkflowCreation) ProtoReflect() protoreflect.Message { mi := &file_workflow_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1109,53 +1109,108 @@ func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. -func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use WorkflowCreation.ProtoReflect.Descriptor instead. +func (*WorkflowCreation) Descriptor() ([]byte, []int) { return file_workflow_proto_rawDescGZIP(), []int{16} } -func (x *WorkflowCreationRequest) GetName() string { +func (x *WorkflowCreation) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *WorkflowCreationRequest) GetDescription() string { +func (x *WorkflowCreation) GetDescription() string { if x != nil && x.Description != nil { return *x.Description } return "" } -func (x *WorkflowCreationRequest) GetUserUid() string { +func (x *WorkflowCreation) GetUserUid() string { if x != nil && x.UserUid != nil { return *x.UserUid } return "" } -func (x *WorkflowCreationRequest) GetNamespace() string { +func (x *WorkflowCreation) GetNamespace() string { if x != nil && x.Namespace != nil { return *x.Namespace } return "" } -func (x *WorkflowCreationRequest) GetServerDryRun() bool { +func (x *WorkflowCreation) GetServerDryRun() bool { if x != nil && x.ServerDryRun != nil { return *x.ServerDryRun } return false } -func (x *WorkflowCreationRequest) GetWorkflow() *Workflow { +func (x *WorkflowCreation) GetWorkflow() *Workflow { if x != nil { return x.Workflow } return nil } +type WorkflowCreationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` + WorkflowCreationRequest *WorkflowCreation `protobuf:"bytes,2,opt,name=workflow_creation_request,json=workflowCreationRequest,proto3,oneof" json:"workflow_creation_request,omitempty"` +} + +func (x *WorkflowCreationRequest) Reset() { + *x = WorkflowCreationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowCreationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowCreationRequest) ProtoMessage() {} + +func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. +func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{17} +} + +func (x *WorkflowCreationRequest) GetWorkspaceId() string { + if x != nil && x.WorkspaceId != nil { + return *x.WorkspaceId + } + return "" +} + +func (x *WorkflowCreationRequest) GetWorkflowCreationRequest() *WorkflowCreation { + if x != nil { + return x.WorkflowCreationRequest + } + return nil +} + type WorkflowCreationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1168,7 +1223,7 @@ type WorkflowCreationResponse struct { func (x *WorkflowCreationResponse) Reset() { *x = WorkflowCreationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[17] + mi := &file_workflow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1181,7 +1236,7 @@ func (x *WorkflowCreationResponse) String() string { func (*WorkflowCreationResponse) ProtoMessage() {} func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[17] + mi := &file_workflow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1194,7 +1249,7 @@ func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationResponse.ProtoReflect.Descriptor instead. func (*WorkflowCreationResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{17} + return file_workflow_proto_rawDescGZIP(), []int{18} } func (x *WorkflowCreationResponse) GetName() string { @@ -1224,7 +1279,7 @@ type WorkflowUpdateRequest struct { func (x *WorkflowUpdateRequest) Reset() { *x = WorkflowUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[18] + mi := &file_workflow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1237,7 +1292,7 @@ func (x *WorkflowUpdateRequest) String() string { func (*WorkflowUpdateRequest) ProtoMessage() {} func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[18] + mi := &file_workflow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1250,7 +1305,7 @@ func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateRequest.ProtoReflect.Descriptor instead. func (*WorkflowUpdateRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{18} + return file_workflow_proto_rawDescGZIP(), []int{19} } func (x *WorkflowUpdateRequest) GetName() string { @@ -1286,7 +1341,7 @@ type WorkflowUpdateResponse struct { func (x *WorkflowUpdateResponse) Reset() { *x = WorkflowUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1299,7 +1354,7 @@ func (x *WorkflowUpdateResponse) String() string { func (*WorkflowUpdateResponse) ProtoMessage() {} func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1312,7 +1367,7 @@ func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateResponse.ProtoReflect.Descriptor instead. func (*WorkflowUpdateResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{19} + return file_workflow_proto_rawDescGZIP(), []int{20} } func (x *WorkflowUpdateResponse) GetName() string { @@ -1341,7 +1396,7 @@ type WorkflowDeleteRequest struct { func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1409,7 @@ func (x *WorkflowDeleteRequest) String() string { func (*WorkflowDeleteRequest) ProtoMessage() {} func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1422,7 @@ func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{20} + return file_workflow_proto_rawDescGZIP(), []int{21} } func (x *WorkflowDeleteRequest) GetWorkflowName() string { @@ -1396,7 +1451,7 @@ type WorkflowDeleteResponse struct { func (x *WorkflowDeleteResponse) Reset() { *x = WorkflowDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1409,7 +1464,7 @@ func (x *WorkflowDeleteResponse) String() string { func (*WorkflowDeleteResponse) ProtoMessage() {} func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1422,7 +1477,7 @@ func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{21} + return file_workflow_proto_rawDescGZIP(), []int{22} } func (x *WorkflowDeleteResponse) GetName() string { @@ -1451,7 +1506,7 @@ type WorkflowGetRequest struct { func (x *WorkflowGetRequest) Reset() { *x = WorkflowGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1464,7 +1519,7 @@ func (x *WorkflowGetRequest) String() string { func (*WorkflowGetRequest) ProtoMessage() {} func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1477,7 +1532,7 @@ func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{22} + return file_workflow_proto_rawDescGZIP(), []int{23} } func (x *WorkflowGetRequest) GetWorkflowName() string { @@ -1506,7 +1561,7 @@ type WorkflowGetResponse struct { func (x *WorkflowGetResponse) Reset() { *x = WorkflowGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1519,7 +1574,7 @@ func (x *WorkflowGetResponse) String() string { func (*WorkflowGetResponse) ProtoMessage() {} func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1532,7 +1587,7 @@ func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{23} + return file_workflow_proto_rawDescGZIP(), []int{24} } func (x *WorkflowGetResponse) GetName() string { @@ -1560,7 +1615,7 @@ type WorkflowListRequest struct { func (x *WorkflowListRequest) Reset() { *x = WorkflowListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1573,7 +1628,7 @@ func (x *WorkflowListRequest) String() string { func (*WorkflowListRequest) ProtoMessage() {} func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1586,7 +1641,7 @@ func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. func (*WorkflowListRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{24} + return file_workflow_proto_rawDescGZIP(), []int{25} } func (x *WorkflowListRequest) GetNamespace() string { @@ -1607,7 +1662,7 @@ type WorkflowListResponse struct { func (x *WorkflowListResponse) Reset() { *x = WorkflowListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1620,7 +1675,7 @@ func (x *WorkflowListResponse) String() string { func (*WorkflowListResponse) ProtoMessage() {} func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1633,7 +1688,7 @@ func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. func (*WorkflowListResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{25} + return file_workflow_proto_rawDescGZIP(), []int{26} } func (x *WorkflowListResponse) GetWorkflows() []*WorkflowGetResponse { @@ -1655,7 +1710,7 @@ type WorkflowCreationError struct { func (x *WorkflowCreationError) Reset() { *x = WorkflowCreationError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1668,7 +1723,7 @@ func (x *WorkflowCreationError) String() string { func (*WorkflowCreationError) ProtoMessage() {} func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1681,7 +1736,7 @@ func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationError.ProtoReflect.Descriptor instead. func (*WorkflowCreationError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{26} + return file_workflow_proto_rawDescGZIP(), []int{27} } func (x *WorkflowCreationError) GetName() string { @@ -1710,7 +1765,7 @@ type WorkflowUpdateError struct { func (x *WorkflowUpdateError) Reset() { *x = WorkflowUpdateError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[27] + mi := &file_workflow_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1723,7 +1778,7 @@ func (x *WorkflowUpdateError) String() string { func (*WorkflowUpdateError) ProtoMessage() {} func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[27] + mi := &file_workflow_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1736,7 +1791,7 @@ func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateError.ProtoReflect.Descriptor instead. func (*WorkflowUpdateError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{27} + return file_workflow_proto_rawDescGZIP(), []int{28} } func (x *WorkflowUpdateError) GetName() string { @@ -1765,7 +1820,7 @@ type WorkflowDeleteError struct { func (x *WorkflowDeleteError) Reset() { *x = WorkflowDeleteError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[28] + mi := &file_workflow_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1778,7 +1833,7 @@ func (x *WorkflowDeleteError) String() string { func (*WorkflowDeleteError) ProtoMessage() {} func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[28] + mi := &file_workflow_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1791,7 +1846,7 @@ func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteError.ProtoReflect.Descriptor instead. func (*WorkflowDeleteError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{28} + return file_workflow_proto_rawDescGZIP(), []int{29} } func (x *WorkflowDeleteError) GetName() string { @@ -1820,7 +1875,7 @@ type WorkflowGetError struct { func (x *WorkflowGetError) Reset() { *x = WorkflowGetError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[29] + mi := &file_workflow_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1833,7 +1888,7 @@ func (x *WorkflowGetError) String() string { func (*WorkflowGetError) ProtoMessage() {} func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[29] + mi := &file_workflow_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1846,7 +1901,7 @@ func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetError.ProtoReflect.Descriptor instead. func (*WorkflowGetError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{29} + return file_workflow_proto_rawDescGZIP(), []int{30} } func (x *WorkflowGetError) GetName() string { @@ -1875,7 +1930,7 @@ type WorkflowListError struct { func (x *WorkflowListError) Reset() { *x = WorkflowListError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[30] + mi := &file_workflow_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +1943,7 @@ func (x *WorkflowListError) String() string { func (*WorkflowListError) ProtoMessage() {} func (x *WorkflowListError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[30] + mi := &file_workflow_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1901,7 +1956,7 @@ func (x *WorkflowListError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListError.ProtoReflect.Descriptor instead. func (*WorkflowListError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{30} + return file_workflow_proto_rawDescGZIP(), []int{31} } func (x *WorkflowListError) GetName() string { @@ -2122,126 +2177,140 @@ var file_workflow_proto_rawDesc = []byte{ 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xcc, - 0x02, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xcf, + 0x02, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, + 0x02, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, + 0x05, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x22, 0xd7, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5b, + 0x0a, 0x19, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, + 0x17, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, 0x0a, 0x18, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, + 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x15, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, - 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, - 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, - 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x05, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, - 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x67, 0x0a, - 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, + 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x64, 0x0a, 0x15, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x48, 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, - 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x62, - 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, - 0x64, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x10, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x11, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, - 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x60, - 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, - 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, - 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x31, 0x5a, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x70, 0x79, + 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, 0x2d, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2256,7 +2325,7 @@ func file_workflow_proto_rawDescGZIP() []byte { return file_workflow_proto_rawDescData } -var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_workflow_proto_goTypes = []interface{}{ (*Archive)(nil), // 0: workflow.Archive (*ArtifactS3)(nil), // 1: workflow.ArtifactS3 @@ -2274,62 +2343,64 @@ var file_workflow_proto_goTypes = []interface{}{ (*Workflow)(nil), // 13: workflow.Workflow (*CronSpec)(nil), // 14: workflow.CronSpec (*CronWorkflow)(nil), // 15: workflow.CronWorkflow - (*WorkflowCreationRequest)(nil), // 16: workflow.WorkflowCreationRequest - (*WorkflowCreationResponse)(nil), // 17: workflow.WorkflowCreationResponse - (*WorkflowUpdateRequest)(nil), // 18: workflow.WorkflowUpdateRequest - (*WorkflowUpdateResponse)(nil), // 19: workflow.WorkflowUpdateResponse - (*WorkflowDeleteRequest)(nil), // 20: workflow.WorkflowDeleteRequest - (*WorkflowDeleteResponse)(nil), // 21: workflow.WorkflowDeleteResponse - (*WorkflowGetRequest)(nil), // 22: workflow.WorkflowGetRequest - (*WorkflowGetResponse)(nil), // 23: workflow.WorkflowGetResponse - (*WorkflowListRequest)(nil), // 24: workflow.WorkflowListRequest - (*WorkflowListResponse)(nil), // 25: workflow.WorkflowListResponse - (*WorkflowCreationError)(nil), // 26: workflow.WorkflowCreationError - (*WorkflowUpdateError)(nil), // 27: workflow.WorkflowUpdateError - (*WorkflowDeleteError)(nil), // 28: workflow.WorkflowDeleteError - (*WorkflowGetError)(nil), // 29: workflow.WorkflowGetError - (*WorkflowListError)(nil), // 30: workflow.WorkflowListError - nil, // 31: workflow.Archive.NoneEntry - nil, // 32: workflow.Arguments.ParametersEntry - nil, // 33: workflow.Arguments.ArtifactsEntry - nil, // 34: workflow.ScriptTemplate.ResourcesEntry - nil, // 35: workflow.Template.MetadataEntry - nil, // 36: workflow.Metadata.LabelsEntry + (*WorkflowCreation)(nil), // 16: workflow.WorkflowCreation + (*WorkflowCreationRequest)(nil), // 17: workflow.WorkflowCreationRequest + (*WorkflowCreationResponse)(nil), // 18: workflow.WorkflowCreationResponse + (*WorkflowUpdateRequest)(nil), // 19: workflow.WorkflowUpdateRequest + (*WorkflowUpdateResponse)(nil), // 20: workflow.WorkflowUpdateResponse + (*WorkflowDeleteRequest)(nil), // 21: workflow.WorkflowDeleteRequest + (*WorkflowDeleteResponse)(nil), // 22: workflow.WorkflowDeleteResponse + (*WorkflowGetRequest)(nil), // 23: workflow.WorkflowGetRequest + (*WorkflowGetResponse)(nil), // 24: workflow.WorkflowGetResponse + (*WorkflowListRequest)(nil), // 25: workflow.WorkflowListRequest + (*WorkflowListResponse)(nil), // 26: workflow.WorkflowListResponse + (*WorkflowCreationError)(nil), // 27: workflow.WorkflowCreationError + (*WorkflowUpdateError)(nil), // 28: workflow.WorkflowUpdateError + (*WorkflowDeleteError)(nil), // 29: workflow.WorkflowDeleteError + (*WorkflowGetError)(nil), // 30: workflow.WorkflowGetError + (*WorkflowListError)(nil), // 31: workflow.WorkflowListError + nil, // 32: workflow.Archive.NoneEntry + nil, // 33: workflow.Arguments.ParametersEntry + nil, // 34: workflow.Arguments.ArtifactsEntry + nil, // 35: workflow.ScriptTemplate.ResourcesEntry + nil, // 36: workflow.Template.MetadataEntry + nil, // 37: workflow.Metadata.LabelsEntry } var file_workflow_proto_depIdxs = []int32{ - 31, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry + 32, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry 0, // 1: workflow.Artifact.archive:type_name -> workflow.Archive 1, // 2: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 5, // 3: workflow.Inputs.parameters:type_name -> workflow.Parameter 2, // 4: workflow.Inputs.artifacts:type_name -> workflow.Artifact 5, // 5: workflow.Outputs.parameters:type_name -> workflow.Parameter 2, // 6: workflow.Outputs.artifacts:type_name -> workflow.Artifact - 32, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry - 33, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry + 33, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry + 34, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry 6, // 9: workflow.DagTasks.arguments:type_name -> workflow.Arguments 7, // 10: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks - 34, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry - 35, // 12: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry + 35, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry + 36, // 12: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry 3, // 13: workflow.Template.inputs:type_name -> workflow.Inputs 4, // 14: workflow.Template.outputs:type_name -> workflow.Outputs 8, // 15: workflow.Template.dag:type_name -> workflow.DagTemplate 9, // 16: workflow.Template.script:type_name -> workflow.ScriptTemplate 6, // 17: workflow.Spec.arguments:type_name -> workflow.Arguments 10, // 18: workflow.Spec.templates:type_name -> workflow.Template - 36, // 19: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry + 37, // 19: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry 12, // 20: workflow.Workflow.metadata:type_name -> workflow.Metadata 11, // 21: workflow.Workflow.spec:type_name -> workflow.Spec 11, // 22: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec 12, // 23: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata 14, // 24: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec - 13, // 25: workflow.WorkflowCreationRequest.workflow:type_name -> workflow.Workflow - 13, // 26: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow - 23, // 27: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse - 28, // [28:28] is the sub-list for method output_type - 28, // [28:28] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 13, // 25: workflow.WorkflowCreation.workflow:type_name -> workflow.Workflow + 16, // 26: workflow.WorkflowCreationRequest.workflow_creation_request:type_name -> workflow.WorkflowCreation + 13, // 27: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow + 24, // 28: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse + 29, // [29:29] is the sub-list for method output_type + 29, // [29:29] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_workflow_proto_init() } @@ -2531,7 +2602,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationRequest); i { + switch v := v.(*WorkflowCreation); i { case 0: return &v.state case 1: @@ -2543,7 +2614,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationResponse); i { + switch v := v.(*WorkflowCreationRequest); i { case 0: return &v.state case 1: @@ -2555,7 +2626,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateRequest); i { + switch v := v.(*WorkflowCreationResponse); i { case 0: return &v.state case 1: @@ -2567,7 +2638,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateResponse); i { + switch v := v.(*WorkflowUpdateRequest); i { case 0: return &v.state case 1: @@ -2579,7 +2650,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteRequest); i { + switch v := v.(*WorkflowUpdateResponse); i { case 0: return &v.state case 1: @@ -2591,7 +2662,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteResponse); i { + switch v := v.(*WorkflowDeleteRequest); i { case 0: return &v.state case 1: @@ -2603,7 +2674,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetRequest); i { + switch v := v.(*WorkflowDeleteResponse); i { case 0: return &v.state case 1: @@ -2615,7 +2686,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetResponse); i { + switch v := v.(*WorkflowGetRequest); i { case 0: return &v.state case 1: @@ -2627,7 +2698,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowListRequest); i { + switch v := v.(*WorkflowGetResponse); i { case 0: return &v.state case 1: @@ -2639,7 +2710,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowListResponse); i { + switch v := v.(*WorkflowListRequest); i { case 0: return &v.state case 1: @@ -2651,7 +2722,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationError); i { + switch v := v.(*WorkflowListResponse); i { case 0: return &v.state case 1: @@ -2663,7 +2734,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateError); i { + switch v := v.(*WorkflowCreationError); i { case 0: return &v.state case 1: @@ -2675,7 +2746,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteError); i { + switch v := v.(*WorkflowUpdateError); i { case 0: return &v.state case 1: @@ -2687,7 +2758,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetError); i { + switch v := v.(*WorkflowDeleteError); i { case 0: return &v.state case 1: @@ -2699,6 +2770,18 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowGetError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListError); i { case 0: return &v.state @@ -2730,18 +2813,19 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[22].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[23].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[24].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[25].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[27].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[28].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[29].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[31].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_proto_rawDesc, NumEnums: 0, - NumMessages: 37, + NumMessages: 38, NumExtensions: 0, NumServices: 0, }, diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go index 42f7bb6..6f9222e 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go @@ -35,6 +35,9 @@ var ( _ = sort.Sort ) +// define the regex for a UUID once up-front +var _workflow_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") + // Validate checks the field values on Archive with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -2339,22 +2342,22 @@ var _ interface { ErrorName() string } = CronWorkflowValidationError{} -// Validate checks the field values on WorkflowCreationRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowCreationRequest) Validate() error { +// Validate checks the field values on WorkflowCreation with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreation) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowCreationRequest with the -// rules defined in the proto definition for this message. If any rules are +// ValidateAll checks the field values on WorkflowCreation with the rules +// defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowCreationRequestMultiError, or nil if none found. -func (m *WorkflowCreationRequest) ValidateAll() error { +// WorkflowCreationMultiError, or nil if none found. +func (m *WorkflowCreation) ValidateAll() error { return m.validate(true) } -func (m *WorkflowCreationRequest) validate(all bool) error { +func (m *WorkflowCreation) validate(all bool) error { if m == nil { return nil } @@ -2370,7 +2373,19 @@ func (m *WorkflowCreationRequest) validate(all bool) error { } if m.UserUid != nil { - // no validation rules for UserUid + + if err := m._validateUuid(m.GetUserUid()); err != nil { + err = WorkflowCreationValidationError{ + field: "UserUid", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } + } if m.Namespace != nil { @@ -2387,7 +2402,7 @@ func (m *WorkflowCreationRequest) validate(all bool) error { switch v := interface{}(m.GetWorkflow()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowCreationRequestValidationError{ + errors = append(errors, WorkflowCreationValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2395,7 +2410,7 @@ func (m *WorkflowCreationRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, WorkflowCreationRequestValidationError{ + errors = append(errors, WorkflowCreationValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2404,7 +2419,7 @@ func (m *WorkflowCreationRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return WorkflowCreationRequestValidationError{ + return WorkflowCreationValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2414,6 +2429,163 @@ func (m *WorkflowCreationRequest) validate(all bool) error { } + if len(errors) > 0 { + return WorkflowCreationMultiError(errors) + } + + return nil +} + +func (m *WorkflowCreation) _validateUuid(uuid string) error { + if matched := _workflow_uuidPattern.MatchString(uuid); !matched { + return errors.New("invalid uuid format") + } + + return nil +} + +// WorkflowCreationMultiError is an error wrapping multiple validation errors +// returned by WorkflowCreation.ValidateAll() if the designated constraints +// aren't met. +type WorkflowCreationMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowCreationMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowCreationMultiError) AllErrors() []error { return m } + +// WorkflowCreationValidationError is the validation error returned by +// WorkflowCreation.Validate if the designated constraints aren't met. +type WorkflowCreationValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowCreationValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowCreationValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowCreationValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowCreationValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowCreationValidationError) ErrorName() string { return "WorkflowCreationValidationError" } + +// Error satisfies the builtin error interface +func (e WorkflowCreationValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowCreation.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowCreationValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowCreationValidationError{} + +// Validate checks the field values on WorkflowCreationRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreationRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowCreationRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowCreationRequestMultiError, or nil if none found. +func (m *WorkflowCreationRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowCreationRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.WorkspaceId != nil { + + if err := m._validateUuid(m.GetWorkspaceId()); err != nil { + err = WorkflowCreationRequestValidationError{ + field: "WorkspaceId", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + if m.WorkflowCreationRequest != nil { + + if all { + switch v := interface{}(m.GetWorkflowCreationRequest()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowCreationRequestValidationError{ + field: "WorkflowCreationRequest", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowCreationRequestValidationError{ + field: "WorkflowCreationRequest", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetWorkflowCreationRequest()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowCreationRequestValidationError{ + field: "WorkflowCreationRequest", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if len(errors) > 0 { return WorkflowCreationRequestMultiError(errors) } @@ -2421,6 +2593,14 @@ func (m *WorkflowCreationRequest) validate(all bool) error { return nil } +func (m *WorkflowCreationRequest) _validateUuid(uuid string) error { + if matched := _workflow_uuidPattern.MatchString(uuid); !matched { + return errors.New("invalid uuid format") + } + + return nil +} + // WorkflowCreationRequestMultiError is an error wrapping multiple validation // errors returned by WorkflowCreationRequest.ValidateAll() if the designated // constraints aren't met. diff --git a/protos/workflow.proto b/protos/workflow.proto index 437cea3..fd97130 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -115,15 +115,20 @@ message CronWorkflow { * Argo workflow CRUD resources */ -message WorkflowCreationRequest { +message WorkflowCreation { optional string name = 1; optional string description = 2; - optional string user_uid = 3; + optional string user_uid = 3 [(validate.rules).string.uuid = true]; optional string namespace = 4; optional bool serverDryRun = 5; optional Workflow workflow = 6; } +message WorkflowCreationRequest { + optional string workspace_id = 1 [(validate.rules).string.uuid = true]; + optional WorkflowCreation workflow_creation_request = 2; +} + message WorkflowCreationResponse { optional string name = 1; optional string message = 2; diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index 49e0e8a..4b9c678 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -5,6 +5,7 @@ from google.protobuf.message import Message # type: ignore from pydantic import BaseModel from pydantic import Field +from uuid import UUID import typing @@ -92,14 +93,18 @@ class CronWorkflow(BaseModel): metadata: Metadata = Field() spec: CronSpec = Field() -class WorkflowCreationRequest(BaseModel): +class WorkflowCreation(BaseModel): name: typing.Optional[str] = Field(default="") description: typing.Optional[str] = Field(default="") - user_uid: typing.Optional[str] = Field(default="") + user_uid: typing.Optional[UUID] = Field(default="") namespace: typing.Optional[str] = Field(default="") serverDryRun: typing.Optional[bool] = Field(default=False) workflow: typing.Optional[Workflow] = Field(default=None) +class WorkflowCreationRequest(BaseModel): + workspace_id: typing.Optional[UUID] = Field(default="") + workflow_creation_request: typing.Optional[WorkflowCreation] = Field(default=None) + class WorkflowCreationResponse(BaseModel): name: typing.Optional[str] = Field(default="") message: typing.Optional[str] = Field(default="") diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index c5dac48..58d2598 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x8d\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08user_uid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x90\x02\n\x10WorkflowCreation\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"\xb1\x01\n\x17WorkflowCreationRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x42\n\x19workflow_creation_request\x18\x02 \x01(\x0b\x32\x1a.workflow.WorkflowCreationH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x1c\n\x1a_workflow_creation_request\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,6 +35,10 @@ _globals['_TEMPLATE_METADATAENTRY']._serialized_options = b'8\001' _globals['_METADATA_LABELSENTRY']._loaded_options = None _globals['_METADATA_LABELSENTRY']._serialized_options = b'8\001' + _globals['_WORKFLOWCREATION'].fields_by_name['user_uid']._loaded_options = None + _globals['_WORKFLOWCREATION'].fields_by_name['user_uid']._serialized_options = b'\372B\005r\003\260\001\001' + _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['workspace_id']._loaded_options = None + _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' _globals['_ARCHIVE']._serialized_start=44 _globals['_ARCHIVE']._serialized_end=141 _globals['_ARCHIVE_NONEENTRY']._serialized_start=98 @@ -79,34 +83,36 @@ _globals['_CRONSPEC']._serialized_end=2541 _globals['_CRONWORKFLOW']._serialized_start=2543 _globals['_CRONWORKFLOW']._serialized_end=2629 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=2632 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=2901 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=2903 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=2991 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=2994 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3139 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3141 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3227 - _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3229 - _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3336 - _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3338 - _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3424 - _globals['_WORKFLOWGETREQUEST']._serialized_start=3426 - _globals['_WORKFLOWGETREQUEST']._serialized_end=3530 - _globals['_WORKFLOWGETRESPONSE']._serialized_start=3532 - _globals['_WORKFLOWGETRESPONSE']._serialized_end=3615 - _globals['_WORKFLOWLISTREQUEST']._serialized_start=3617 - _globals['_WORKFLOWLISTREQUEST']._serialized_end=3676 - _globals['_WORKFLOWLISTRESPONSE']._serialized_start=3678 - _globals['_WORKFLOWLISTRESPONSE']._serialized_end=3750 - _globals['_WORKFLOWCREATIONERROR']._serialized_start=3752 - _globals['_WORKFLOWCREATIONERROR']._serialized_end=3837 - _globals['_WORKFLOWUPDATEERROR']._serialized_start=3839 - _globals['_WORKFLOWUPDATEERROR']._serialized_end=3922 - _globals['_WORKFLOWDELETEERROR']._serialized_start=3924 - _globals['_WORKFLOWDELETEERROR']._serialized_end=4007 - _globals['_WORKFLOWGETERROR']._serialized_start=4009 - _globals['_WORKFLOWGETERROR']._serialized_end=4089 - _globals['_WORKFLOWLISTERROR']._serialized_start=4091 - _globals['_WORKFLOWLISTERROR']._serialized_end=4172 + _globals['_WORKFLOWCREATION']._serialized_start=2632 + _globals['_WORKFLOWCREATION']._serialized_end=2904 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=2907 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3084 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3086 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3174 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=3177 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3322 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3324 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3410 + _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3412 + _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3519 + _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3521 + _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3607 + _globals['_WORKFLOWGETREQUEST']._serialized_start=3609 + _globals['_WORKFLOWGETREQUEST']._serialized_end=3713 + _globals['_WORKFLOWGETRESPONSE']._serialized_start=3715 + _globals['_WORKFLOWGETRESPONSE']._serialized_end=3798 + _globals['_WORKFLOWLISTREQUEST']._serialized_start=3800 + _globals['_WORKFLOWLISTREQUEST']._serialized_end=3859 + _globals['_WORKFLOWLISTRESPONSE']._serialized_start=3861 + _globals['_WORKFLOWLISTRESPONSE']._serialized_end=3933 + _globals['_WORKFLOWCREATIONERROR']._serialized_start=3935 + _globals['_WORKFLOWCREATIONERROR']._serialized_end=4020 + _globals['_WORKFLOWUPDATEERROR']._serialized_start=4022 + _globals['_WORKFLOWUPDATEERROR']._serialized_end=4105 + _globals['_WORKFLOWDELETEERROR']._serialized_start=4107 + _globals['_WORKFLOWDELETEERROR']._serialized_end=4190 + _globals['_WORKFLOWGETERROR']._serialized_start=4192 + _globals['_WORKFLOWGETERROR']._serialized_end=4272 + _globals['_WORKFLOWLISTERROR']._serialized_start=4274 + _globals['_WORKFLOWLISTERROR']._serialized_end=4355 # @@protoc_insertion_point(module_scope) From 46dcc426eb3756b1df75c2ee2687969dacdd0892 Mon Sep 17 00:00:00 2001 From: "Loic L." Date: Wed, 15 May 2024 08:50:18 +0200 Subject: [PATCH 09/11] fix: ContainerTemplate --- .../naas-models/go/workflow/workflow.pb.go | 928 ++++++++++-------- .../go/workflow/workflow.pb.validate.go | 136 ++- protos/workflow.proto | 34 +- python/naas_models/pydantic/workflow_p2p.py | 17 +- python/naas_models/workflow_pb2.py | 108 +- 5 files changed, 755 insertions(+), 468 deletions(-) diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go index ccc6ac5..96938ad 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go @@ -635,22 +635,19 @@ func (x *ScriptTemplate) GetSource() string { return "" } -type Template struct { +type ContainerTemplate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Container *string `protobuf:"bytes,2,opt,name=container,proto3,oneof" json:"container,omitempty"` - Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Inputs *Inputs `protobuf:"bytes,4,opt,name=inputs,proto3,oneof" json:"inputs,omitempty"` - Outputs *Outputs `protobuf:"bytes,5,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` - Dag *DagTemplate `protobuf:"bytes,6,opt,name=dag,proto3,oneof" json:"dag,omitempty"` - Script *ScriptTemplate `protobuf:"bytes,7,opt,name=script,proto3,oneof" json:"script,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` + Command map[string]string `protobuf:"bytes,3,rep,name=command,proto3" json:"command,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Args map[string]string `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *Template) Reset() { - *x = Template{} +func (x *ContainerTemplate) Reset() { + *x = ContainerTemplate{} if protoimpl.UnsafeEnabled { mi := &file_workflow_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -658,13 +655,13 @@ func (x *Template) Reset() { } } -func (x *Template) String() string { +func (x *ContainerTemplate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Template) ProtoMessage() {} +func (*ContainerTemplate) ProtoMessage() {} -func (x *Template) ProtoReflect() protoreflect.Message { +func (x *ContainerTemplate) ProtoReflect() protoreflect.Message { mi := &file_workflow_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -676,32 +673,94 @@ func (x *Template) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Template.ProtoReflect.Descriptor instead. -func (*Template) Descriptor() ([]byte, []int) { +// Deprecated: Use ContainerTemplate.ProtoReflect.Descriptor instead. +func (*ContainerTemplate) Descriptor() ([]byte, []int) { return file_workflow_proto_rawDescGZIP(), []int{10} } -func (x *Template) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ContainerTemplate) GetName() string { + if x != nil { + return x.Name } return "" } -func (x *Template) GetContainer() string { - if x != nil && x.Container != nil { - return *x.Container +func (x *ContainerTemplate) GetImage() string { + if x != nil { + return x.Image } return "" } -func (x *Template) GetMetadata() map[string]string { +func (x *ContainerTemplate) GetCommand() map[string]string { if x != nil { - return x.Metadata + return x.Command + } + return nil +} + +func (x *ContainerTemplate) GetArgs() map[string]string { + if x != nil { + return x.Args } return nil } +type Template struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Inputs *Inputs `protobuf:"bytes,2,opt,name=inputs,proto3,oneof" json:"inputs,omitempty"` + Outputs *Outputs `protobuf:"bytes,3,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` + Dag *DagTemplate `protobuf:"bytes,4,opt,name=dag,proto3,oneof" json:"dag,omitempty"` + Script *ScriptTemplate `protobuf:"bytes,5,opt,name=script,proto3,oneof" json:"script,omitempty"` + TtlStrategy *string `protobuf:"bytes,6,opt,name=ttlStrategy,proto3,oneof" json:"ttlStrategy,omitempty"` + Container *string `protobuf:"bytes,7,opt,name=container,proto3,oneof" json:"container,omitempty"` + PodGC *string `protobuf:"bytes,8,opt,name=podGC,proto3,oneof" json:"podGC,omitempty"` + Metadata map[string]string `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Template) Reset() { + *x = Template{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Template) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Template) ProtoMessage() {} + +func (x *Template) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Template.ProtoReflect.Descriptor instead. +func (*Template) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{11} +} + +func (x *Template) GetName() string { + if x != nil { + return x.Name + } + return "" +} + func (x *Template) GetInputs() *Inputs { if x != nil { return x.Inputs @@ -730,20 +789,48 @@ func (x *Template) GetScript() *ScriptTemplate { return nil } +func (x *Template) GetTtlStrategy() string { + if x != nil && x.TtlStrategy != nil { + return *x.TtlStrategy + } + return "" +} + +func (x *Template) GetContainer() string { + if x != nil && x.Container != nil { + return *x.Container + } + return "" +} + +func (x *Template) GetPodGC() string { + if x != nil && x.PodGC != nil { + return *x.PodGC + } + return "" +} + +func (x *Template) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + type Spec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entrypoint string `protobuf:"bytes,1,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` - Arguments *Arguments `protobuf:"bytes,2,opt,name=arguments,proto3,oneof" json:"arguments,omitempty"` + Arguments *Arguments `protobuf:"bytes,1,opt,name=arguments,proto3,oneof" json:"arguments,omitempty"` + Entrypoint string `protobuf:"bytes,2,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` Templates []*Template `protobuf:"bytes,3,rep,name=templates,proto3" json:"templates,omitempty"` } func (x *Spec) Reset() { *x = Spec{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[11] + mi := &file_workflow_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -756,7 +843,7 @@ func (x *Spec) String() string { func (*Spec) ProtoMessage() {} func (x *Spec) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[11] + mi := &file_workflow_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -769,21 +856,21 @@ func (x *Spec) ProtoReflect() protoreflect.Message { // Deprecated: Use Spec.ProtoReflect.Descriptor instead. func (*Spec) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{11} + return file_workflow_proto_rawDescGZIP(), []int{12} } -func (x *Spec) GetEntrypoint() string { +func (x *Spec) GetArguments() *Arguments { if x != nil { - return x.Entrypoint + return x.Arguments } - return "" + return nil } -func (x *Spec) GetArguments() *Arguments { +func (x *Spec) GetEntrypoint() string { if x != nil { - return x.Arguments + return x.Entrypoint } - return nil + return "" } func (x *Spec) GetTemplates() []*Template { @@ -798,15 +885,16 @@ type Metadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GenerateName *string `protobuf:"bytes,1,opt,name=generateName,proto3,oneof" json:"generateName,omitempty"` - Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + GenerateName *string `protobuf:"bytes,2,opt,name=generateName,proto3,oneof" json:"generateName,omitempty"` + Namespace *string `protobuf:"bytes,3,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Metadata) Reset() { *x = Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -819,7 +907,7 @@ func (x *Metadata) String() string { func (*Metadata) ProtoMessage() {} func (x *Metadata) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -832,7 +920,14 @@ func (x *Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Metadata.ProtoReflect.Descriptor instead. func (*Metadata) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{12} + return file_workflow_proto_rawDescGZIP(), []int{13} +} + +func (x *Metadata) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" } func (x *Metadata) GetGenerateName() string { @@ -868,7 +963,7 @@ type Workflow struct { func (x *Workflow) Reset() { *x = Workflow{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -881,7 +976,7 @@ func (x *Workflow) String() string { func (*Workflow) ProtoMessage() {} func (x *Workflow) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -894,7 +989,7 @@ func (x *Workflow) ProtoReflect() protoreflect.Message { // Deprecated: Use Workflow.ProtoReflect.Descriptor instead. func (*Workflow) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{13} + return file_workflow_proto_rawDescGZIP(), []int{14} } func (x *Workflow) GetMetadata() *Metadata { @@ -929,7 +1024,7 @@ type CronSpec struct { func (x *CronSpec) Reset() { *x = CronSpec{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -942,7 +1037,7 @@ func (x *CronSpec) String() string { func (*CronSpec) ProtoMessage() {} func (x *CronSpec) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -955,7 +1050,7 @@ func (x *CronSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use CronSpec.ProtoReflect.Descriptor instead. func (*CronSpec) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{14} + return file_workflow_proto_rawDescGZIP(), []int{15} } func (x *CronSpec) GetSchedule() string { @@ -1026,7 +1121,7 @@ type CronWorkflow struct { func (x *CronWorkflow) Reset() { *x = CronWorkflow{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +1134,7 @@ func (x *CronWorkflow) String() string { func (*CronWorkflow) ProtoMessage() {} func (x *CronWorkflow) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +1147,7 @@ func (x *CronWorkflow) ProtoReflect() protoreflect.Message { // Deprecated: Use CronWorkflow.ProtoReflect.Descriptor instead. func (*CronWorkflow) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{15} + return file_workflow_proto_rawDescGZIP(), []int{16} } func (x *CronWorkflow) GetMetadata() *Metadata { @@ -1085,7 +1180,7 @@ type WorkflowCreation struct { func (x *WorkflowCreation) Reset() { *x = WorkflowCreation{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[16] + mi := &file_workflow_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +1193,7 @@ func (x *WorkflowCreation) String() string { func (*WorkflowCreation) ProtoMessage() {} func (x *WorkflowCreation) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[16] + mi := &file_workflow_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +1206,7 @@ func (x *WorkflowCreation) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreation.ProtoReflect.Descriptor instead. func (*WorkflowCreation) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{16} + return file_workflow_proto_rawDescGZIP(), []int{17} } func (x *WorkflowCreation) GetName() string { @@ -1168,7 +1263,7 @@ type WorkflowCreationRequest struct { func (x *WorkflowCreationRequest) Reset() { *x = WorkflowCreationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[17] + mi := &file_workflow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1181,7 +1276,7 @@ func (x *WorkflowCreationRequest) String() string { func (*WorkflowCreationRequest) ProtoMessage() {} func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[17] + mi := &file_workflow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1194,7 +1289,7 @@ func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{17} + return file_workflow_proto_rawDescGZIP(), []int{18} } func (x *WorkflowCreationRequest) GetWorkspaceId() string { @@ -1223,7 +1318,7 @@ type WorkflowCreationResponse struct { func (x *WorkflowCreationResponse) Reset() { *x = WorkflowCreationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[18] + mi := &file_workflow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1236,7 +1331,7 @@ func (x *WorkflowCreationResponse) String() string { func (*WorkflowCreationResponse) ProtoMessage() {} func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[18] + mi := &file_workflow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1249,7 +1344,7 @@ func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationResponse.ProtoReflect.Descriptor instead. func (*WorkflowCreationResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{18} + return file_workflow_proto_rawDescGZIP(), []int{19} } func (x *WorkflowCreationResponse) GetName() string { @@ -1279,7 +1374,7 @@ type WorkflowUpdateRequest struct { func (x *WorkflowUpdateRequest) Reset() { *x = WorkflowUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1292,7 +1387,7 @@ func (x *WorkflowUpdateRequest) String() string { func (*WorkflowUpdateRequest) ProtoMessage() {} func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1305,7 +1400,7 @@ func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateRequest.ProtoReflect.Descriptor instead. func (*WorkflowUpdateRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{19} + return file_workflow_proto_rawDescGZIP(), []int{20} } func (x *WorkflowUpdateRequest) GetName() string { @@ -1341,7 +1436,7 @@ type WorkflowUpdateResponse struct { func (x *WorkflowUpdateResponse) Reset() { *x = WorkflowUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1449,7 @@ func (x *WorkflowUpdateResponse) String() string { func (*WorkflowUpdateResponse) ProtoMessage() {} func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1462,7 @@ func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateResponse.ProtoReflect.Descriptor instead. func (*WorkflowUpdateResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{20} + return file_workflow_proto_rawDescGZIP(), []int{21} } func (x *WorkflowUpdateResponse) GetName() string { @@ -1396,7 +1491,7 @@ type WorkflowDeleteRequest struct { func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1409,7 +1504,7 @@ func (x *WorkflowDeleteRequest) String() string { func (*WorkflowDeleteRequest) ProtoMessage() {} func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1422,7 +1517,7 @@ func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{21} + return file_workflow_proto_rawDescGZIP(), []int{22} } func (x *WorkflowDeleteRequest) GetWorkflowName() string { @@ -1451,7 +1546,7 @@ type WorkflowDeleteResponse struct { func (x *WorkflowDeleteResponse) Reset() { *x = WorkflowDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1464,7 +1559,7 @@ func (x *WorkflowDeleteResponse) String() string { func (*WorkflowDeleteResponse) ProtoMessage() {} func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1477,7 +1572,7 @@ func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{22} + return file_workflow_proto_rawDescGZIP(), []int{23} } func (x *WorkflowDeleteResponse) GetName() string { @@ -1506,7 +1601,7 @@ type WorkflowGetRequest struct { func (x *WorkflowGetRequest) Reset() { *x = WorkflowGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1519,7 +1614,7 @@ func (x *WorkflowGetRequest) String() string { func (*WorkflowGetRequest) ProtoMessage() {} func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1532,7 +1627,7 @@ func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{23} + return file_workflow_proto_rawDescGZIP(), []int{24} } func (x *WorkflowGetRequest) GetWorkflowName() string { @@ -1561,7 +1656,7 @@ type WorkflowGetResponse struct { func (x *WorkflowGetResponse) Reset() { *x = WorkflowGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1574,7 +1669,7 @@ func (x *WorkflowGetResponse) String() string { func (*WorkflowGetResponse) ProtoMessage() {} func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1587,7 +1682,7 @@ func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{24} + return file_workflow_proto_rawDescGZIP(), []int{25} } func (x *WorkflowGetResponse) GetName() string { @@ -1615,7 +1710,7 @@ type WorkflowListRequest struct { func (x *WorkflowListRequest) Reset() { *x = WorkflowListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1628,7 +1723,7 @@ func (x *WorkflowListRequest) String() string { func (*WorkflowListRequest) ProtoMessage() {} func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1641,7 +1736,7 @@ func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. func (*WorkflowListRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{25} + return file_workflow_proto_rawDescGZIP(), []int{26} } func (x *WorkflowListRequest) GetNamespace() string { @@ -1662,7 +1757,7 @@ type WorkflowListResponse struct { func (x *WorkflowListResponse) Reset() { *x = WorkflowListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1675,7 +1770,7 @@ func (x *WorkflowListResponse) String() string { func (*WorkflowListResponse) ProtoMessage() {} func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1688,7 +1783,7 @@ func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. func (*WorkflowListResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{26} + return file_workflow_proto_rawDescGZIP(), []int{27} } func (x *WorkflowListResponse) GetWorkflows() []*WorkflowGetResponse { @@ -1710,7 +1805,7 @@ type WorkflowCreationError struct { func (x *WorkflowCreationError) Reset() { *x = WorkflowCreationError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[27] + mi := &file_workflow_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1723,7 +1818,7 @@ func (x *WorkflowCreationError) String() string { func (*WorkflowCreationError) ProtoMessage() {} func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[27] + mi := &file_workflow_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1736,7 +1831,7 @@ func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationError.ProtoReflect.Descriptor instead. func (*WorkflowCreationError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{27} + return file_workflow_proto_rawDescGZIP(), []int{28} } func (x *WorkflowCreationError) GetName() string { @@ -1765,7 +1860,7 @@ type WorkflowUpdateError struct { func (x *WorkflowUpdateError) Reset() { *x = WorkflowUpdateError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[28] + mi := &file_workflow_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1778,7 +1873,7 @@ func (x *WorkflowUpdateError) String() string { func (*WorkflowUpdateError) ProtoMessage() {} func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[28] + mi := &file_workflow_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1791,7 +1886,7 @@ func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowUpdateError.ProtoReflect.Descriptor instead. func (*WorkflowUpdateError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{28} + return file_workflow_proto_rawDescGZIP(), []int{29} } func (x *WorkflowUpdateError) GetName() string { @@ -1820,7 +1915,7 @@ type WorkflowDeleteError struct { func (x *WorkflowDeleteError) Reset() { *x = WorkflowDeleteError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[29] + mi := &file_workflow_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1833,7 +1928,7 @@ func (x *WorkflowDeleteError) String() string { func (*WorkflowDeleteError) ProtoMessage() {} func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[29] + mi := &file_workflow_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1846,7 +1941,7 @@ func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteError.ProtoReflect.Descriptor instead. func (*WorkflowDeleteError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{29} + return file_workflow_proto_rawDescGZIP(), []int{30} } func (x *WorkflowDeleteError) GetName() string { @@ -1875,7 +1970,7 @@ type WorkflowGetError struct { func (x *WorkflowGetError) Reset() { *x = WorkflowGetError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[30] + mi := &file_workflow_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +1983,7 @@ func (x *WorkflowGetError) String() string { func (*WorkflowGetError) ProtoMessage() {} func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[30] + mi := &file_workflow_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1901,7 +1996,7 @@ func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetError.ProtoReflect.Descriptor instead. func (*WorkflowGetError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{30} + return file_workflow_proto_rawDescGZIP(), []int{31} } func (x *WorkflowGetError) GetName() string { @@ -1930,7 +2025,7 @@ type WorkflowListError struct { func (x *WorkflowListError) Reset() { *x = WorkflowListError{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[31] + mi := &file_workflow_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1943,7 +2038,7 @@ func (x *WorkflowListError) String() string { func (*WorkflowListError) ProtoMessage() {} func (x *WorkflowListError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[31] + mi := &file_workflow_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1956,7 +2051,7 @@ func (x *WorkflowListError) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListError.ProtoReflect.Descriptor instead. func (*WorkflowListError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{31} + return file_workflow_proto_rawDescGZIP(), []int{32} } func (x *WorkflowListError) GetName() string { @@ -2079,238 +2174,264 @@ var file_workflow_proto_rawDesc = []byte{ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xc8, 0x03, 0x0a, 0x08, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x73, 0x48, 0x02, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x03, 0x64, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x04, 0x52, 0x03, 0x64, 0x61, 0x67, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x05, 0x52, 0x06, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, - 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x09, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, - 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, - 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, - 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, - 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1a, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, - 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, - 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, - 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, - 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, - 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, 0x0c, 0x43, 0x72, 0x6f, 0x6e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x11, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, + 0x39, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x72, 0x67, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x96, 0x04, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x03, 0x64, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x64, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x06, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x74, + 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x06, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xcf, - 0x02, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, - 0x02, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, - 0x05, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, - 0x52, 0x75, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x22, 0xd7, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5b, - 0x0a, 0x19, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, - 0x17, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1c, 0x0a, 0x1a, - 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, 0x0a, 0x18, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x22, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x17, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, + 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x04, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, + 0x65, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, + 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, 0x0c, 0x43, 0x72, + 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x22, 0xcf, 0x02, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0xb0, 0x01, 0x01, 0x48, 0x02, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, + 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x48, 0x05, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xd7, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x19, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x01, 0x52, 0x17, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, + 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x48, 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, + 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, - 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x15, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, - 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x64, 0x0a, 0x15, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x22, 0x64, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, + 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x10, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x11, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x31, 0x5a, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x70, 0x79, - 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, 0x2d, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, + 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0x60, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, + 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2325,7 +2446,7 @@ func file_workflow_proto_rawDescGZIP() []byte { return file_workflow_proto_rawDescData } -var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_workflow_proto_goTypes = []interface{}{ (*Archive)(nil), // 0: workflow.Archive (*ArtifactS3)(nil), // 1: workflow.ArtifactS3 @@ -2337,70 +2458,75 @@ var file_workflow_proto_goTypes = []interface{}{ (*DagTasks)(nil), // 7: workflow.DagTasks (*DagTemplate)(nil), // 8: workflow.DagTemplate (*ScriptTemplate)(nil), // 9: workflow.ScriptTemplate - (*Template)(nil), // 10: workflow.Template - (*Spec)(nil), // 11: workflow.Spec - (*Metadata)(nil), // 12: workflow.Metadata - (*Workflow)(nil), // 13: workflow.Workflow - (*CronSpec)(nil), // 14: workflow.CronSpec - (*CronWorkflow)(nil), // 15: workflow.CronWorkflow - (*WorkflowCreation)(nil), // 16: workflow.WorkflowCreation - (*WorkflowCreationRequest)(nil), // 17: workflow.WorkflowCreationRequest - (*WorkflowCreationResponse)(nil), // 18: workflow.WorkflowCreationResponse - (*WorkflowUpdateRequest)(nil), // 19: workflow.WorkflowUpdateRequest - (*WorkflowUpdateResponse)(nil), // 20: workflow.WorkflowUpdateResponse - (*WorkflowDeleteRequest)(nil), // 21: workflow.WorkflowDeleteRequest - (*WorkflowDeleteResponse)(nil), // 22: workflow.WorkflowDeleteResponse - (*WorkflowGetRequest)(nil), // 23: workflow.WorkflowGetRequest - (*WorkflowGetResponse)(nil), // 24: workflow.WorkflowGetResponse - (*WorkflowListRequest)(nil), // 25: workflow.WorkflowListRequest - (*WorkflowListResponse)(nil), // 26: workflow.WorkflowListResponse - (*WorkflowCreationError)(nil), // 27: workflow.WorkflowCreationError - (*WorkflowUpdateError)(nil), // 28: workflow.WorkflowUpdateError - (*WorkflowDeleteError)(nil), // 29: workflow.WorkflowDeleteError - (*WorkflowGetError)(nil), // 30: workflow.WorkflowGetError - (*WorkflowListError)(nil), // 31: workflow.WorkflowListError - nil, // 32: workflow.Archive.NoneEntry - nil, // 33: workflow.Arguments.ParametersEntry - nil, // 34: workflow.Arguments.ArtifactsEntry - nil, // 35: workflow.ScriptTemplate.ResourcesEntry - nil, // 36: workflow.Template.MetadataEntry - nil, // 37: workflow.Metadata.LabelsEntry + (*ContainerTemplate)(nil), // 10: workflow.ContainerTemplate + (*Template)(nil), // 11: workflow.Template + (*Spec)(nil), // 12: workflow.Spec + (*Metadata)(nil), // 13: workflow.Metadata + (*Workflow)(nil), // 14: workflow.Workflow + (*CronSpec)(nil), // 15: workflow.CronSpec + (*CronWorkflow)(nil), // 16: workflow.CronWorkflow + (*WorkflowCreation)(nil), // 17: workflow.WorkflowCreation + (*WorkflowCreationRequest)(nil), // 18: workflow.WorkflowCreationRequest + (*WorkflowCreationResponse)(nil), // 19: workflow.WorkflowCreationResponse + (*WorkflowUpdateRequest)(nil), // 20: workflow.WorkflowUpdateRequest + (*WorkflowUpdateResponse)(nil), // 21: workflow.WorkflowUpdateResponse + (*WorkflowDeleteRequest)(nil), // 22: workflow.WorkflowDeleteRequest + (*WorkflowDeleteResponse)(nil), // 23: workflow.WorkflowDeleteResponse + (*WorkflowGetRequest)(nil), // 24: workflow.WorkflowGetRequest + (*WorkflowGetResponse)(nil), // 25: workflow.WorkflowGetResponse + (*WorkflowListRequest)(nil), // 26: workflow.WorkflowListRequest + (*WorkflowListResponse)(nil), // 27: workflow.WorkflowListResponse + (*WorkflowCreationError)(nil), // 28: workflow.WorkflowCreationError + (*WorkflowUpdateError)(nil), // 29: workflow.WorkflowUpdateError + (*WorkflowDeleteError)(nil), // 30: workflow.WorkflowDeleteError + (*WorkflowGetError)(nil), // 31: workflow.WorkflowGetError + (*WorkflowListError)(nil), // 32: workflow.WorkflowListError + nil, // 33: workflow.Archive.NoneEntry + nil, // 34: workflow.Arguments.ParametersEntry + nil, // 35: workflow.Arguments.ArtifactsEntry + nil, // 36: workflow.ScriptTemplate.ResourcesEntry + nil, // 37: workflow.ContainerTemplate.CommandEntry + nil, // 38: workflow.ContainerTemplate.ArgsEntry + nil, // 39: workflow.Template.MetadataEntry + nil, // 40: workflow.Metadata.LabelsEntry } var file_workflow_proto_depIdxs = []int32{ - 32, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry + 33, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry 0, // 1: workflow.Artifact.archive:type_name -> workflow.Archive 1, // 2: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 5, // 3: workflow.Inputs.parameters:type_name -> workflow.Parameter 2, // 4: workflow.Inputs.artifacts:type_name -> workflow.Artifact 5, // 5: workflow.Outputs.parameters:type_name -> workflow.Parameter 2, // 6: workflow.Outputs.artifacts:type_name -> workflow.Artifact - 33, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry - 34, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry + 34, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry + 35, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry 6, // 9: workflow.DagTasks.arguments:type_name -> workflow.Arguments 7, // 10: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks - 35, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry - 36, // 12: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry - 3, // 13: workflow.Template.inputs:type_name -> workflow.Inputs - 4, // 14: workflow.Template.outputs:type_name -> workflow.Outputs - 8, // 15: workflow.Template.dag:type_name -> workflow.DagTemplate - 9, // 16: workflow.Template.script:type_name -> workflow.ScriptTemplate - 6, // 17: workflow.Spec.arguments:type_name -> workflow.Arguments - 10, // 18: workflow.Spec.templates:type_name -> workflow.Template - 37, // 19: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry - 12, // 20: workflow.Workflow.metadata:type_name -> workflow.Metadata - 11, // 21: workflow.Workflow.spec:type_name -> workflow.Spec - 11, // 22: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec - 12, // 23: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata - 14, // 24: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec - 13, // 25: workflow.WorkflowCreation.workflow:type_name -> workflow.Workflow - 16, // 26: workflow.WorkflowCreationRequest.workflow_creation_request:type_name -> workflow.WorkflowCreation - 13, // 27: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow - 24, // 28: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse - 29, // [29:29] is the sub-list for method output_type - 29, // [29:29] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 36, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry + 37, // 12: workflow.ContainerTemplate.command:type_name -> workflow.ContainerTemplate.CommandEntry + 38, // 13: workflow.ContainerTemplate.args:type_name -> workflow.ContainerTemplate.ArgsEntry + 3, // 14: workflow.Template.inputs:type_name -> workflow.Inputs + 4, // 15: workflow.Template.outputs:type_name -> workflow.Outputs + 8, // 16: workflow.Template.dag:type_name -> workflow.DagTemplate + 9, // 17: workflow.Template.script:type_name -> workflow.ScriptTemplate + 39, // 18: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry + 6, // 19: workflow.Spec.arguments:type_name -> workflow.Arguments + 11, // 20: workflow.Spec.templates:type_name -> workflow.Template + 40, // 21: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry + 13, // 22: workflow.Workflow.metadata:type_name -> workflow.Metadata + 12, // 23: workflow.Workflow.spec:type_name -> workflow.Spec + 12, // 24: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec + 13, // 25: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata + 15, // 26: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec + 14, // 27: workflow.WorkflowCreation.workflow:type_name -> workflow.Workflow + 17, // 28: workflow.WorkflowCreationRequest.workflow_creation_request:type_name -> workflow.WorkflowCreation + 14, // 29: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow + 25, // 30: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse + 31, // [31:31] is the sub-list for method output_type + 31, // [31:31] is the sub-list for method input_type + 31, // [31:31] is the sub-list for extension type_name + 31, // [31:31] is the sub-list for extension extendee + 0, // [0:31] is the sub-list for field type_name } func init() { file_workflow_proto_init() } @@ -2530,7 +2656,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Template); i { + switch v := v.(*ContainerTemplate); i { case 0: return &v.state case 1: @@ -2542,7 +2668,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Spec); i { + switch v := v.(*Template); i { case 0: return &v.state case 1: @@ -2554,7 +2680,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Metadata); i { + switch v := v.(*Spec); i { case 0: return &v.state case 1: @@ -2566,7 +2692,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Workflow); i { + switch v := v.(*Metadata); i { case 0: return &v.state case 1: @@ -2578,7 +2704,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CronSpec); i { + switch v := v.(*Workflow); i { case 0: return &v.state case 1: @@ -2590,7 +2716,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CronWorkflow); i { + switch v := v.(*CronSpec); i { case 0: return &v.state case 1: @@ -2602,7 +2728,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreation); i { + switch v := v.(*CronWorkflow); i { case 0: return &v.state case 1: @@ -2614,7 +2740,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationRequest); i { + switch v := v.(*WorkflowCreation); i { case 0: return &v.state case 1: @@ -2626,7 +2752,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationResponse); i { + switch v := v.(*WorkflowCreationRequest); i { case 0: return &v.state case 1: @@ -2638,7 +2764,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateRequest); i { + switch v := v.(*WorkflowCreationResponse); i { case 0: return &v.state case 1: @@ -2650,7 +2776,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateResponse); i { + switch v := v.(*WorkflowUpdateRequest); i { case 0: return &v.state case 1: @@ -2662,7 +2788,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteRequest); i { + switch v := v.(*WorkflowUpdateResponse); i { case 0: return &v.state case 1: @@ -2674,7 +2800,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteResponse); i { + switch v := v.(*WorkflowDeleteRequest); i { case 0: return &v.state case 1: @@ -2686,7 +2812,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetRequest); i { + switch v := v.(*WorkflowDeleteResponse); i { case 0: return &v.state case 1: @@ -2698,7 +2824,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetResponse); i { + switch v := v.(*WorkflowGetRequest); i { case 0: return &v.state case 1: @@ -2710,7 +2836,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowListRequest); i { + switch v := v.(*WorkflowGetResponse); i { case 0: return &v.state case 1: @@ -2722,7 +2848,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowListResponse); i { + switch v := v.(*WorkflowListRequest); i { case 0: return &v.state case 1: @@ -2734,7 +2860,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationError); i { + switch v := v.(*WorkflowListResponse); i { case 0: return &v.state case 1: @@ -2746,7 +2872,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateError); i { + switch v := v.(*WorkflowCreationError); i { case 0: return &v.state case 1: @@ -2758,7 +2884,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteError); i { + switch v := v.(*WorkflowUpdateError); i { case 0: return &v.state case 1: @@ -2770,7 +2896,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetError); i { + switch v := v.(*WorkflowDeleteError); i { case 0: return &v.state case 1: @@ -2782,6 +2908,18 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowGetError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workflow_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListError); i { case 0: return &v.state @@ -2800,11 +2938,10 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[7].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[8].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[9].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[10].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[11].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[12].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[14].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[15].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[17].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[18].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[19].OneofWrappers = []interface{}{} @@ -2814,18 +2951,19 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[23].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[24].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[25].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[26].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[28].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[29].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[30].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[32].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_proto_rawDesc, NumEnums: 0, - NumMessages: 38, + NumMessages: 41, NumExtensions: 0, NumServices: 0, }, diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go index 6f9222e..69cf0ec 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go @@ -1359,6 +1359,116 @@ var _ interface { ErrorName() string } = ScriptTemplateValidationError{} +// Validate checks the field values on ContainerTemplate with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ContainerTemplate) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ContainerTemplate with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ContainerTemplateMultiError, or nil if none found. +func (m *ContainerTemplate) ValidateAll() error { + return m.validate(true) +} + +func (m *ContainerTemplate) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + // no validation rules for Image + + // no validation rules for Command + + // no validation rules for Args + + if len(errors) > 0 { + return ContainerTemplateMultiError(errors) + } + + return nil +} + +// ContainerTemplateMultiError is an error wrapping multiple validation errors +// returned by ContainerTemplate.ValidateAll() if the designated constraints +// aren't met. +type ContainerTemplateMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ContainerTemplateMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ContainerTemplateMultiError) AllErrors() []error { return m } + +// ContainerTemplateValidationError is the validation error returned by +// ContainerTemplate.Validate if the designated constraints aren't met. +type ContainerTemplateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ContainerTemplateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ContainerTemplateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ContainerTemplateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ContainerTemplateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ContainerTemplateValidationError) ErrorName() string { + return "ContainerTemplateValidationError" +} + +// Error satisfies the builtin error interface +func (e ContainerTemplateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sContainerTemplate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ContainerTemplateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ContainerTemplateValidationError{} + // Validate checks the field values on Template with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -1381,15 +1491,9 @@ func (m *Template) validate(all bool) error { var errors []error - // no validation rules for Metadata - - if m.Name != nil { - // no validation rules for Name - } + // no validation rules for Name - if m.Container != nil { - // no validation rules for Container - } + // no validation rules for Metadata if m.Inputs != nil { @@ -1523,6 +1627,18 @@ func (m *Template) validate(all bool) error { } + if m.TtlStrategy != nil { + // no validation rules for TtlStrategy + } + + if m.Container != nil { + // no validation rules for Container + } + + if m.PodGC != nil { + // no validation rules for PodGC + } + if len(errors) > 0 { return TemplateMultiError(errors) } @@ -1791,6 +1907,10 @@ func (m *Metadata) validate(all bool) error { // no validation rules for Labels + if m.Name != nil { + // no validation rules for Name + } + if m.GenerateName != nil { // no validation rules for GenerateName } diff --git a/protos/workflow.proto b/protos/workflow.proto index fd97130..9a93365 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -68,26 +68,36 @@ message ScriptTemplate { optional string source = 4; } +message ContainerTemplate { + string name = 1; + string image = 2; + map command = 3; + map args = 4; +} + message Template { - optional string name = 1; - optional string container = 2; - map metadata = 3; - optional Inputs inputs = 4; - optional Outputs outputs = 5; - optional DagTemplate dag = 6; - optional ScriptTemplate script = 7; + string name = 1; + optional Inputs inputs = 2; + optional Outputs outputs = 3; + optional DagTemplate dag = 4; + optional ScriptTemplate script = 5; + optional string ttlStrategy = 6; + optional string container = 7; + optional string podGC = 8; + map metadata = 9; } message Spec { - string entrypoint = 1; - optional Arguments arguments = 2; + optional Arguments arguments = 1; + string entrypoint = 2; repeated Template templates = 3; } message Metadata { - optional string generateName = 1; - optional string namespace = 2; - map labels = 3; + optional string name = 1; + optional string generateName = 2; + optional string namespace = 3; + map labels = 4; } message Workflow { diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index 4b9c678..34cac6a 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -56,21 +56,30 @@ class ScriptTemplate(BaseModel): resources: typing.Dict[str, str] = Field(default_factory=dict) source: typing.Optional[str] = Field(default="") +class ContainerTemplate(BaseModel): + name: str = Field(default="") + image: str = Field(default="") + command: typing.Dict[str, str] = Field(default_factory=dict) + args: typing.Dict[str, str] = Field(default_factory=dict) + class Template(BaseModel): - name: typing.Optional[str] = Field(default="") - container: typing.Optional[str] = Field(default="") - metadata: typing.Dict[str, str] = Field(default_factory=dict) + name: str = Field(default="") inputs: typing.Optional[Inputs] = Field(default=None) outputs: typing.Optional[Outputs] = Field(default=None) dag: typing.Optional[DagTemplate] = Field(default=None) script: typing.Optional[ScriptTemplate] = Field(default=None) + ttlStrategy: typing.Optional[str] = Field(default="") + container: typing.Optional[str] = Field(default="") + podGC: typing.Optional[str] = Field(default="") + metadata: typing.Dict[str, str] = Field(default_factory=dict) class Spec(BaseModel): - entrypoint: str = Field(default="") arguments: typing.Optional[Arguments] = Field(default=None) + entrypoint: str = Field(default="") templates: typing.List[Template] = Field(default_factory=list) class Metadata(BaseModel): + name: typing.Optional[str] = Field(default="") generateName: typing.Optional[str] = Field(default="") namespace: typing.Optional[str] = Field(default="") labels: typing.Dict[str, str] = Field(default_factory=dict) diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index 58d2598..8f1e4b8 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\x83\x03\n\x08Template\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tcontainer\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x08metadata\x18\x03 \x03(\x0b\x32 .workflow.Template.MetadataEntry\x12%\n\x06inputs\x18\x04 \x01(\x0b\x32\x10.workflow.InputsH\x02\x88\x01\x01\x12\'\n\x07outputs\x18\x05 \x01(\x0b\x32\x11.workflow.OutputsH\x03\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x06 \x01(\x0b\x32\x15.workflow.DagTemplateH\x04\x88\x01\x01\x12-\n\x06script\x18\x07 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x05\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_containerB\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_script\"|\n\x04Spec\x12\x12\n\nentrypoint\x18\x01 \x01(\t\x12+\n\targuments\x18\x02 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xbb\x01\n\x08Metadata\x12\x19\n\x0cgenerateName\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x90\x02\n\x10WorkflowCreation\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"\xb1\x01\n\x17WorkflowCreationRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x42\n\x19workflow_creation_request\x18\x02 \x01(\x0b\x32\x1a.workflow.WorkflowCreationH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x1c\n\x1a_workflow_creation_request\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\xfd\x01\n\x11\x43ontainerTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x39\n\x07\x63ommand\x18\x03 \x03(\x0b\x32(.workflow.ContainerTemplate.CommandEntry\x12\x33\n\x04\x61rgs\x18\x04 \x03(\x0b\x32%.workflow.ContainerTemplate.ArgsEntry\x1a.\n\x0c\x43ommandEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbd\x03\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06inputs\x18\x02 \x01(\x0b\x32\x10.workflow.InputsH\x00\x88\x01\x01\x12\'\n\x07outputs\x18\x03 \x01(\x0b\x32\x11.workflow.OutputsH\x01\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x04 \x01(\x0b\x32\x15.workflow.DagTemplateH\x02\x88\x01\x01\x12-\n\x06script\x18\x05 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x03\x88\x01\x01\x12\x18\n\x0bttlStrategy\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x16\n\tcontainer\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x12\n\x05podGC\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x32\n\x08metadata\x18\t \x03(\x0b\x32 .workflow.Template.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_scriptB\x0e\n\x0c_ttlStrategyB\x0c\n\n_containerB\x08\n\x06_podGC\"|\n\x04Spec\x12+\n\targuments\x18\x01 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12\x12\n\nentrypoint\x18\x02 \x01(\t\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xd7\x01\n\x08Metadata\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cgenerateName\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12.\n\x06labels\x18\x04 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x90\x02\n\x10WorkflowCreation\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"\xb1\x01\n\x17WorkflowCreationRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x42\n\x19workflow_creation_request\x18\x02 \x01(\x0b\x32\x1a.workflow.WorkflowCreationH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x1c\n\x1a_workflow_creation_request\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,6 +31,10 @@ _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_options = b'8\001' _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._loaded_options = None _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_options = b'8\001' + _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._loaded_options = None + _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_options = b'8\001' + _globals['_CONTAINERTEMPLATE_ARGSENTRY']._loaded_options = None + _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_options = b'8\001' _globals['_TEMPLATE_METADATAENTRY']._loaded_options = None _globals['_TEMPLATE_METADATAENTRY']._serialized_options = b'8\001' _globals['_METADATA_LABELSENTRY']._loaded_options = None @@ -67,52 +71,58 @@ _globals['_SCRIPTTEMPLATE']._serialized_end=1378 _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_start=1309 _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_end=1357 - _globals['_TEMPLATE']._serialized_start=1381 - _globals['_TEMPLATE']._serialized_end=1768 - _globals['_TEMPLATE_METADATAENTRY']._serialized_start=1656 - _globals['_TEMPLATE_METADATAENTRY']._serialized_end=1703 - _globals['_SPEC']._serialized_start=1770 - _globals['_SPEC']._serialized_end=1894 - _globals['_METADATA']._serialized_start=1897 - _globals['_METADATA']._serialized_end=2084 - _globals['_METADATA_LABELSENTRY']._serialized_start=2008 - _globals['_METADATA_LABELSENTRY']._serialized_end=2053 - _globals['_WORKFLOW']._serialized_start=2086 - _globals['_WORKFLOW']._serialized_end=2164 - _globals['_CRONSPEC']._serialized_start=2167 - _globals['_CRONSPEC']._serialized_end=2541 - _globals['_CRONWORKFLOW']._serialized_start=2543 - _globals['_CRONWORKFLOW']._serialized_end=2629 - _globals['_WORKFLOWCREATION']._serialized_start=2632 - _globals['_WORKFLOWCREATION']._serialized_end=2904 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=2907 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3084 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3086 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3174 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=3177 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3322 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3324 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3410 - _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3412 - _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3519 - _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3521 - _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3607 - _globals['_WORKFLOWGETREQUEST']._serialized_start=3609 - _globals['_WORKFLOWGETREQUEST']._serialized_end=3713 - _globals['_WORKFLOWGETRESPONSE']._serialized_start=3715 - _globals['_WORKFLOWGETRESPONSE']._serialized_end=3798 - _globals['_WORKFLOWLISTREQUEST']._serialized_start=3800 - _globals['_WORKFLOWLISTREQUEST']._serialized_end=3859 - _globals['_WORKFLOWLISTRESPONSE']._serialized_start=3861 - _globals['_WORKFLOWLISTRESPONSE']._serialized_end=3933 - _globals['_WORKFLOWCREATIONERROR']._serialized_start=3935 - _globals['_WORKFLOWCREATIONERROR']._serialized_end=4020 - _globals['_WORKFLOWUPDATEERROR']._serialized_start=4022 - _globals['_WORKFLOWUPDATEERROR']._serialized_end=4105 - _globals['_WORKFLOWDELETEERROR']._serialized_start=4107 - _globals['_WORKFLOWDELETEERROR']._serialized_end=4190 - _globals['_WORKFLOWGETERROR']._serialized_start=4192 - _globals['_WORKFLOWGETERROR']._serialized_end=4272 - _globals['_WORKFLOWLISTERROR']._serialized_start=4274 - _globals['_WORKFLOWLISTERROR']._serialized_end=4355 + _globals['_CONTAINERTEMPLATE']._serialized_start=1381 + _globals['_CONTAINERTEMPLATE']._serialized_end=1634 + _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_start=1543 + _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_end=1589 + _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_start=1591 + _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_end=1634 + _globals['_TEMPLATE']._serialized_start=1637 + _globals['_TEMPLATE']._serialized_end=2082 + _globals['_TEMPLATE_METADATAENTRY']._serialized_start=1953 + _globals['_TEMPLATE_METADATAENTRY']._serialized_end=2000 + _globals['_SPEC']._serialized_start=2084 + _globals['_SPEC']._serialized_end=2208 + _globals['_METADATA']._serialized_start=2211 + _globals['_METADATA']._serialized_end=2426 + _globals['_METADATA_LABELSENTRY']._serialized_start=2341 + _globals['_METADATA_LABELSENTRY']._serialized_end=2386 + _globals['_WORKFLOW']._serialized_start=2428 + _globals['_WORKFLOW']._serialized_end=2506 + _globals['_CRONSPEC']._serialized_start=2509 + _globals['_CRONSPEC']._serialized_end=2883 + _globals['_CRONWORKFLOW']._serialized_start=2885 + _globals['_CRONWORKFLOW']._serialized_end=2971 + _globals['_WORKFLOWCREATION']._serialized_start=2974 + _globals['_WORKFLOWCREATION']._serialized_end=3246 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=3249 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3426 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3428 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3516 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=3519 + _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3664 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3666 + _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3752 + _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3754 + _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3861 + _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3863 + _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3949 + _globals['_WORKFLOWGETREQUEST']._serialized_start=3951 + _globals['_WORKFLOWGETREQUEST']._serialized_end=4055 + _globals['_WORKFLOWGETRESPONSE']._serialized_start=4057 + _globals['_WORKFLOWGETRESPONSE']._serialized_end=4140 + _globals['_WORKFLOWLISTREQUEST']._serialized_start=4142 + _globals['_WORKFLOWLISTREQUEST']._serialized_end=4201 + _globals['_WORKFLOWLISTRESPONSE']._serialized_start=4203 + _globals['_WORKFLOWLISTRESPONSE']._serialized_end=4275 + _globals['_WORKFLOWCREATIONERROR']._serialized_start=4277 + _globals['_WORKFLOWCREATIONERROR']._serialized_end=4362 + _globals['_WORKFLOWUPDATEERROR']._serialized_start=4364 + _globals['_WORKFLOWUPDATEERROR']._serialized_end=4447 + _globals['_WORKFLOWDELETEERROR']._serialized_start=4449 + _globals['_WORKFLOWDELETEERROR']._serialized_end=4532 + _globals['_WORKFLOWGETERROR']._serialized_start=4534 + _globals['_WORKFLOWGETERROR']._serialized_end=4614 + _globals['_WORKFLOWLISTERROR']._serialized_start=4616 + _globals['_WORKFLOWLISTERROR']._serialized_end=4697 # @@protoc_insertion_point(module_scope) From f842f0d3c314ab5c4e47b48743d86dc8630ab41a Mon Sep 17 00:00:00 2001 From: "Loic L." Date: Wed, 22 May 2024 13:49:51 +0200 Subject: [PATCH 10/11] feat: workflow proto update --- .../naas-models/go/workflow/workflow.pb.go | 2044 +++++++--------- .../go/workflow/workflow.pb.validate.go | 2080 +++++++---------- protos/workflow.proto | 117 +- python/naas_models/pydantic/workflow_p2p.py | 85 +- python/naas_models/workflow_pb2.py | 168 +- 5 files changed, 1837 insertions(+), 2657 deletions(-) diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go index 96938ad..8da6bc7 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go @@ -21,6 +21,110 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type WorkflowError int32 + +const ( + WorkflowError_WORKFLOW_NO_ERROR WorkflowError = 0 + WorkflowError_INTERNAL_SERVER_ERROR WorkflowError = 1000 +) + +// Enum value maps for WorkflowError. +var ( + WorkflowError_name = map[int32]string{ + 0: "WORKFLOW_NO_ERROR", + 1000: "INTERNAL_SERVER_ERROR", + } + WorkflowError_value = map[string]int32{ + "WORKFLOW_NO_ERROR": 0, + "INTERNAL_SERVER_ERROR": 1000, + } +) + +func (x WorkflowError) Enum() *WorkflowError { + p := new(WorkflowError) + *p = x + return p +} + +func (x WorkflowError) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkflowError) Descriptor() protoreflect.EnumDescriptor { + return file_workflow_proto_enumTypes[0].Descriptor() +} + +func (WorkflowError) Type() protoreflect.EnumType { + return &file_workflow_proto_enumTypes[0] +} + +func (x WorkflowError) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkflowError.Descriptor instead. +func (WorkflowError) EnumDescriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{0} +} + +// * +// +// Errors +type WorkflowResponseError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code *WorkflowError `protobuf:"varint,1,opt,name=code,proto3,enum=workflow.WorkflowError,oneof" json:"code,omitempty"` + Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *WorkflowResponseError) Reset() { + *x = WorkflowResponseError{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowResponseError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowResponseError) ProtoMessage() {} + +func (x *WorkflowResponseError) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowResponseError.ProtoReflect.Descriptor instead. +func (*WorkflowResponseError) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{0} +} + +func (x *WorkflowResponseError) GetCode() WorkflowError { + if x != nil && x.Code != nil { + return *x.Code + } + return WorkflowError_WORKFLOW_NO_ERROR +} + +func (x *WorkflowResponseError) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + type Archive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -32,7 +136,7 @@ type Archive struct { func (x *Archive) Reset() { *x = Archive{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[0] + mi := &file_workflow_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +149,7 @@ func (x *Archive) String() string { func (*Archive) ProtoMessage() {} func (x *Archive) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[0] + mi := &file_workflow_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +162,7 @@ func (x *Archive) ProtoReflect() protoreflect.Message { // Deprecated: Use Archive.ProtoReflect.Descriptor instead. func (*Archive) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{0} + return file_workflow_proto_rawDescGZIP(), []int{1} } func (x *Archive) GetNone() map[string]string { @@ -80,7 +184,7 @@ type ArtifactS3 struct { func (x *ArtifactS3) Reset() { *x = ArtifactS3{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[1] + mi := &file_workflow_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +197,7 @@ func (x *ArtifactS3) String() string { func (*ArtifactS3) ProtoMessage() {} func (x *ArtifactS3) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[1] + mi := &file_workflow_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +210,7 @@ func (x *ArtifactS3) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactS3.ProtoReflect.Descriptor instead. func (*ArtifactS3) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{1} + return file_workflow_proto_rawDescGZIP(), []int{2} } func (x *ArtifactS3) GetKey() string { @@ -139,7 +243,7 @@ type Artifact struct { func (x *Artifact) Reset() { *x = Artifact{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[2] + mi := &file_workflow_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -152,7 +256,7 @@ func (x *Artifact) String() string { func (*Artifact) ProtoMessage() {} func (x *Artifact) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[2] + mi := &file_workflow_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -165,7 +269,7 @@ func (x *Artifact) ProtoReflect() protoreflect.Message { // Deprecated: Use Artifact.ProtoReflect.Descriptor instead. func (*Artifact) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{2} + return file_workflow_proto_rawDescGZIP(), []int{3} } func (x *Artifact) GetName() string { @@ -222,7 +326,7 @@ type Inputs struct { func (x *Inputs) Reset() { *x = Inputs{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[3] + mi := &file_workflow_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -235,7 +339,7 @@ func (x *Inputs) String() string { func (*Inputs) ProtoMessage() {} func (x *Inputs) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[3] + mi := &file_workflow_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -248,7 +352,7 @@ func (x *Inputs) ProtoReflect() protoreflect.Message { // Deprecated: Use Inputs.ProtoReflect.Descriptor instead. func (*Inputs) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{3} + return file_workflow_proto_rawDescGZIP(), []int{4} } func (x *Inputs) GetParameters() []*Parameter { @@ -277,7 +381,7 @@ type Outputs struct { func (x *Outputs) Reset() { *x = Outputs{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[4] + mi := &file_workflow_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -290,7 +394,7 @@ func (x *Outputs) String() string { func (*Outputs) ProtoMessage() {} func (x *Outputs) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[4] + mi := &file_workflow_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -303,7 +407,7 @@ func (x *Outputs) ProtoReflect() protoreflect.Message { // Deprecated: Use Outputs.ProtoReflect.Descriptor instead. func (*Outputs) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{4} + return file_workflow_proto_rawDescGZIP(), []int{5} } func (x *Outputs) GetParameters() []*Parameter { @@ -333,7 +437,7 @@ type Parameter struct { func (x *Parameter) Reset() { *x = Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[5] + mi := &file_workflow_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -346,7 +450,7 @@ func (x *Parameter) String() string { func (*Parameter) ProtoMessage() {} func (x *Parameter) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[5] + mi := &file_workflow_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -359,7 +463,7 @@ func (x *Parameter) ProtoReflect() protoreflect.Message { // Deprecated: Use Parameter.ProtoReflect.Descriptor instead. func (*Parameter) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{5} + return file_workflow_proto_rawDescGZIP(), []int{6} } func (x *Parameter) GetName() string { @@ -388,14 +492,16 @@ type Arguments struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters map[string]string `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Artifacts map[string]string `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // map parameters = 1; + Parameters []*Parameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty"` + // map artifacts = 2; + Artifacts []*Artifact `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty"` } func (x *Arguments) Reset() { *x = Arguments{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[6] + mi := &file_workflow_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -408,7 +514,7 @@ func (x *Arguments) String() string { func (*Arguments) ProtoMessage() {} func (x *Arguments) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[6] + mi := &file_workflow_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -421,17 +527,17 @@ func (x *Arguments) ProtoReflect() protoreflect.Message { // Deprecated: Use Arguments.ProtoReflect.Descriptor instead. func (*Arguments) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{6} + return file_workflow_proto_rawDescGZIP(), []int{7} } -func (x *Arguments) GetParameters() map[string]string { +func (x *Arguments) GetParameters() []*Parameter { if x != nil { return x.Parameters } return nil } -func (x *Arguments) GetArtifacts() map[string]string { +func (x *Arguments) GetArtifacts() []*Artifact { if x != nil { return x.Artifacts } @@ -452,7 +558,7 @@ type DagTasks struct { func (x *DagTasks) Reset() { *x = DagTasks{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[7] + mi := &file_workflow_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -465,7 +571,7 @@ func (x *DagTasks) String() string { func (*DagTasks) ProtoMessage() {} func (x *DagTasks) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[7] + mi := &file_workflow_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -478,7 +584,7 @@ func (x *DagTasks) ProtoReflect() protoreflect.Message { // Deprecated: Use DagTasks.ProtoReflect.Descriptor instead. func (*DagTasks) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{7} + return file_workflow_proto_rawDescGZIP(), []int{8} } func (x *DagTasks) GetName() string { @@ -521,7 +627,7 @@ type DagTemplate struct { func (x *DagTemplate) Reset() { *x = DagTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[8] + mi := &file_workflow_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -534,7 +640,7 @@ func (x *DagTemplate) String() string { func (*DagTemplate) ProtoMessage() {} func (x *DagTemplate) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[8] + mi := &file_workflow_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -547,7 +653,7 @@ func (x *DagTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use DagTemplate.ProtoReflect.Descriptor instead. func (*DagTemplate) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{8} + return file_workflow_proto_rawDescGZIP(), []int{9} } func (x *DagTemplate) GetTasks() []*DagTasks { @@ -578,7 +684,7 @@ type ScriptTemplate struct { func (x *ScriptTemplate) Reset() { *x = ScriptTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[9] + mi := &file_workflow_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -591,7 +697,7 @@ func (x *ScriptTemplate) String() string { func (*ScriptTemplate) ProtoMessage() {} func (x *ScriptTemplate) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[9] + mi := &file_workflow_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -604,7 +710,7 @@ func (x *ScriptTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use ScriptTemplate.ProtoReflect.Descriptor instead. func (*ScriptTemplate) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{9} + return file_workflow_proto_rawDescGZIP(), []int{10} } func (x *ScriptTemplate) GetImage() string { @@ -640,16 +746,16 @@ type ContainerTemplate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` - Command map[string]string `protobuf:"bytes,3,rep,name=command,proto3" json:"command,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Args map[string]string `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` + Command []string `protobuf:"bytes,3,rep,name=command,proto3" json:"command,omitempty"` + Args []string `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"` } func (x *ContainerTemplate) Reset() { *x = ContainerTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[10] + mi := &file_workflow_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -662,7 +768,7 @@ func (x *ContainerTemplate) String() string { func (*ContainerTemplate) ProtoMessage() {} func (x *ContainerTemplate) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[10] + mi := &file_workflow_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -675,7 +781,7 @@ func (x *ContainerTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerTemplate.ProtoReflect.Descriptor instead. func (*ContainerTemplate) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{10} + return file_workflow_proto_rawDescGZIP(), []int{11} } func (x *ContainerTemplate) GetName() string { @@ -692,14 +798,14 @@ func (x *ContainerTemplate) GetImage() string { return "" } -func (x *ContainerTemplate) GetCommand() map[string]string { +func (x *ContainerTemplate) GetCommand() []string { if x != nil { return x.Command } return nil } -func (x *ContainerTemplate) GetArgs() map[string]string { +func (x *ContainerTemplate) GetArgs() []string { if x != nil { return x.Args } @@ -711,21 +817,21 @@ type Template struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Inputs *Inputs `protobuf:"bytes,2,opt,name=inputs,proto3,oneof" json:"inputs,omitempty"` - Outputs *Outputs `protobuf:"bytes,3,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` - Dag *DagTemplate `protobuf:"bytes,4,opt,name=dag,proto3,oneof" json:"dag,omitempty"` - Script *ScriptTemplate `protobuf:"bytes,5,opt,name=script,proto3,oneof" json:"script,omitempty"` - TtlStrategy *string `protobuf:"bytes,6,opt,name=ttlStrategy,proto3,oneof" json:"ttlStrategy,omitempty"` - Container *string `protobuf:"bytes,7,opt,name=container,proto3,oneof" json:"container,omitempty"` - PodGC *string `protobuf:"bytes,8,opt,name=podGC,proto3,oneof" json:"podGC,omitempty"` - Metadata map[string]string `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Inputs *Inputs `protobuf:"bytes,2,opt,name=inputs,proto3,oneof" json:"inputs,omitempty"` + Outputs *Outputs `protobuf:"bytes,3,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` + Dag *DagTemplate `protobuf:"bytes,4,opt,name=dag,proto3,oneof" json:"dag,omitempty"` + Script *ScriptTemplate `protobuf:"bytes,5,opt,name=script,proto3,oneof" json:"script,omitempty"` + TtlStrategy *string `protobuf:"bytes,6,opt,name=ttlStrategy,proto3,oneof" json:"ttlStrategy,omitempty"` + Container *ContainerTemplate `protobuf:"bytes,7,opt,name=container,proto3,oneof" json:"container,omitempty"` + PodGC *string `protobuf:"bytes,8,opt,name=podGC,proto3,oneof" json:"podGC,omitempty"` + Metadata map[string]string `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Template) Reset() { *x = Template{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[11] + mi := &file_workflow_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -738,7 +844,7 @@ func (x *Template) String() string { func (*Template) ProtoMessage() {} func (x *Template) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[11] + mi := &file_workflow_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -751,7 +857,7 @@ func (x *Template) ProtoReflect() protoreflect.Message { // Deprecated: Use Template.ProtoReflect.Descriptor instead. func (*Template) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{11} + return file_workflow_proto_rawDescGZIP(), []int{12} } func (x *Template) GetName() string { @@ -796,11 +902,11 @@ func (x *Template) GetTtlStrategy() string { return "" } -func (x *Template) GetContainer() string { - if x != nil && x.Container != nil { - return *x.Container +func (x *Template) GetContainer() *ContainerTemplate { + if x != nil { + return x.Container } - return "" + return nil } func (x *Template) GetPodGC() string { @@ -823,14 +929,14 @@ type Spec struct { unknownFields protoimpl.UnknownFields Arguments *Arguments `protobuf:"bytes,1,opt,name=arguments,proto3,oneof" json:"arguments,omitempty"` - Entrypoint string `protobuf:"bytes,2,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` + Entrypoint *string `protobuf:"bytes,2,opt,name=entrypoint,proto3,oneof" json:"entrypoint,omitempty"` Templates []*Template `protobuf:"bytes,3,rep,name=templates,proto3" json:"templates,omitempty"` } func (x *Spec) Reset() { *x = Spec{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -843,7 +949,7 @@ func (x *Spec) String() string { func (*Spec) ProtoMessage() {} func (x *Spec) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[12] + mi := &file_workflow_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -856,7 +962,7 @@ func (x *Spec) ProtoReflect() protoreflect.Message { // Deprecated: Use Spec.ProtoReflect.Descriptor instead. func (*Spec) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{12} + return file_workflow_proto_rawDescGZIP(), []int{13} } func (x *Spec) GetArguments() *Arguments { @@ -867,8 +973,8 @@ func (x *Spec) GetArguments() *Arguments { } func (x *Spec) GetEntrypoint() string { - if x != nil { - return x.Entrypoint + if x != nil && x.Entrypoint != nil { + return *x.Entrypoint } return "" } @@ -894,7 +1000,7 @@ type Metadata struct { func (x *Metadata) Reset() { *x = Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +1013,7 @@ func (x *Metadata) String() string { func (*Metadata) ProtoMessage() {} func (x *Metadata) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[13] + mi := &file_workflow_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +1026,7 @@ func (x *Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Metadata.ProtoReflect.Descriptor instead. func (*Metadata) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{13} + return file_workflow_proto_rawDescGZIP(), []int{14} } func (x *Metadata) GetName() string { @@ -951,6 +1057,93 @@ func (x *Metadata) GetLabels() map[string]string { return nil } +type WorkflowStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Phase *string `protobuf:"bytes,2,opt,name=phase,proto3,oneof" json:"phase,omitempty"` + StartedAt *string `protobuf:"bytes,3,opt,name=startedAt,proto3,oneof" json:"startedAt,omitempty"` + FinishedAt *string `protobuf:"bytes,4,opt,name=finishedAt,proto3,oneof" json:"finishedAt,omitempty"` + Progress *string `protobuf:"bytes,5,opt,name=progress,proto3,oneof" json:"progress,omitempty"` + Outputs *string `protobuf:"bytes,6,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` // #TODO +} + +func (x *WorkflowStatus) Reset() { + *x = WorkflowStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_workflow_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowStatus) ProtoMessage() {} + +func (x *WorkflowStatus) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowStatus.ProtoReflect.Descriptor instead. +func (*WorkflowStatus) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{15} +} + +func (x *WorkflowStatus) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WorkflowStatus) GetPhase() string { + if x != nil && x.Phase != nil { + return *x.Phase + } + return "" +} + +func (x *WorkflowStatus) GetStartedAt() string { + if x != nil && x.StartedAt != nil { + return *x.StartedAt + } + return "" +} + +func (x *WorkflowStatus) GetFinishedAt() string { + if x != nil && x.FinishedAt != nil { + return *x.FinishedAt + } + return "" +} + +func (x *WorkflowStatus) GetProgress() string { + if x != nil && x.Progress != nil { + return *x.Progress + } + return "" +} + +func (x *WorkflowStatus) GetOutputs() string { + if x != nil && x.Outputs != nil { + return *x.Outputs + } + return "" +} + type Workflow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -963,7 +1156,7 @@ type Workflow struct { func (x *Workflow) Reset() { *x = Workflow{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -976,7 +1169,7 @@ func (x *Workflow) String() string { func (*Workflow) ProtoMessage() {} func (x *Workflow) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[14] + mi := &file_workflow_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -989,7 +1182,7 @@ func (x *Workflow) ProtoReflect() protoreflect.Message { // Deprecated: Use Workflow.ProtoReflect.Descriptor instead. func (*Workflow) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{14} + return file_workflow_proto_rawDescGZIP(), []int{16} } func (x *Workflow) GetMetadata() *Metadata { @@ -1024,7 +1217,7 @@ type CronSpec struct { func (x *CronSpec) Reset() { *x = CronSpec{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1037,7 +1230,7 @@ func (x *CronSpec) String() string { func (*CronSpec) ProtoMessage() {} func (x *CronSpec) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[15] + mi := &file_workflow_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1050,7 +1243,7 @@ func (x *CronSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use CronSpec.ProtoReflect.Descriptor instead. func (*CronSpec) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{15} + return file_workflow_proto_rawDescGZIP(), []int{17} } func (x *CronSpec) GetSchedule() string { @@ -1121,7 +1314,7 @@ type CronWorkflow struct { func (x *CronWorkflow) Reset() { *x = CronWorkflow{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[16] + mi := &file_workflow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1134,7 +1327,7 @@ func (x *CronWorkflow) String() string { func (*CronWorkflow) ProtoMessage() {} func (x *CronWorkflow) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[16] + mi := &file_workflow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1147,7 +1340,7 @@ func (x *CronWorkflow) ProtoReflect() protoreflect.Message { // Deprecated: Use CronWorkflow.ProtoReflect.Descriptor instead. func (*CronWorkflow) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{16} + return file_workflow_proto_rawDescGZIP(), []int{18} } func (x *CronWorkflow) GetMetadata() *Metadata { @@ -1164,7 +1357,7 @@ func (x *CronWorkflow) GetSpec() *CronSpec { return nil } -type WorkflowCreation struct { +type WorkflowCreationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1174,26 +1367,27 @@ type WorkflowCreation struct { UserUid *string `protobuf:"bytes,3,opt,name=user_uid,json=userUid,proto3,oneof" json:"user_uid,omitempty"` Namespace *string `protobuf:"bytes,4,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` ServerDryRun *bool `protobuf:"varint,5,opt,name=serverDryRun,proto3,oneof" json:"serverDryRun,omitempty"` - Workflow *Workflow `protobuf:"bytes,6,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + Token *string `protobuf:"bytes,6,opt,name=token,proto3,oneof" json:"token,omitempty"` + Workflow *Workflow `protobuf:"bytes,7,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` } -func (x *WorkflowCreation) Reset() { - *x = WorkflowCreation{} +func (x *WorkflowCreationRequest) Reset() { + *x = WorkflowCreationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[17] + mi := &file_workflow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowCreation) String() string { +func (x *WorkflowCreationRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowCreation) ProtoMessage() {} +func (*WorkflowCreationRequest) ProtoMessage() {} -func (x *WorkflowCreation) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[17] +func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1204,134 +1398,86 @@ func (x *WorkflowCreation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowCreation.ProtoReflect.Descriptor instead. -func (*WorkflowCreation) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{17} +// Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. +func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{19} } -func (x *WorkflowCreation) GetName() string { +func (x *WorkflowCreationRequest) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *WorkflowCreation) GetDescription() string { +func (x *WorkflowCreationRequest) GetDescription() string { if x != nil && x.Description != nil { return *x.Description } return "" } -func (x *WorkflowCreation) GetUserUid() string { +func (x *WorkflowCreationRequest) GetUserUid() string { if x != nil && x.UserUid != nil { return *x.UserUid } return "" } -func (x *WorkflowCreation) GetNamespace() string { +func (x *WorkflowCreationRequest) GetNamespace() string { if x != nil && x.Namespace != nil { return *x.Namespace } return "" } -func (x *WorkflowCreation) GetServerDryRun() bool { +func (x *WorkflowCreationRequest) GetServerDryRun() bool { if x != nil && x.ServerDryRun != nil { return *x.ServerDryRun } return false } -func (x *WorkflowCreation) GetWorkflow() *Workflow { +func (x *WorkflowCreationRequest) GetToken() string { + if x != nil && x.Token != nil { + return *x.Token + } + return "" +} + +func (x *WorkflowCreationRequest) GetWorkflow() *Workflow { if x != nil { return x.Workflow } return nil } -type WorkflowCreationRequest struct { +type WorkflowCreationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` - WorkflowCreationRequest *WorkflowCreation `protobuf:"bytes,2,opt,name=workflow_creation_request,json=workflowCreationRequest,proto3,oneof" json:"workflow_creation_request,omitempty"` + Workflow *WorkflowStatus `protobuf:"bytes,1,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + Error *WorkflowError `protobuf:"varint,2,opt,name=error,proto3,enum=workflow.WorkflowError,oneof" json:"error,omitempty"` } -func (x *WorkflowCreationRequest) Reset() { - *x = WorkflowCreationRequest{} +func (x *WorkflowCreationResponse) Reset() { + *x = WorkflowCreationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[18] + mi := &file_workflow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowCreationRequest) String() string { +func (x *WorkflowCreationResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowCreationRequest) ProtoMessage() {} - -func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. -func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{18} -} - -func (x *WorkflowCreationRequest) GetWorkspaceId() string { - if x != nil && x.WorkspaceId != nil { - return *x.WorkspaceId - } - return "" -} - -func (x *WorkflowCreationRequest) GetWorkflowCreationRequest() *WorkflowCreation { - if x != nil { - return x.WorkflowCreationRequest - } - return nil -} - -type WorkflowCreationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` -} - -func (x *WorkflowCreationResponse) Reset() { - *x = WorkflowCreationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowCreationResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowCreationResponse) ProtoMessage() {} +func (*WorkflowCreationResponse) ProtoMessage() {} func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1344,139 +1490,21 @@ func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationResponse.ProtoReflect.Descriptor instead. func (*WorkflowCreationResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{19} -} - -func (x *WorkflowCreationResponse) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *WorkflowCreationResponse) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message - } - return "" -} - -type WorkflowUpdateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - Workflow *Workflow `protobuf:"bytes,3,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` -} - -func (x *WorkflowUpdateRequest) Reset() { - *x = WorkflowUpdateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowUpdateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowUpdateRequest) ProtoMessage() {} - -func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowUpdateRequest.ProtoReflect.Descriptor instead. -func (*WorkflowUpdateRequest) Descriptor() ([]byte, []int) { return file_workflow_proto_rawDescGZIP(), []int{20} } -func (x *WorkflowUpdateRequest) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *WorkflowUpdateRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -func (x *WorkflowUpdateRequest) GetWorkflow() *Workflow { +func (x *WorkflowCreationResponse) GetWorkflow() *WorkflowStatus { if x != nil { return x.Workflow } return nil } -type WorkflowUpdateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` -} - -func (x *WorkflowUpdateResponse) Reset() { - *x = WorkflowUpdateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *WorkflowCreationResponse) GetError() WorkflowError { + if x != nil && x.Error != nil { + return *x.Error } -} - -func (x *WorkflowUpdateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowUpdateResponse) ProtoMessage() {} - -func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowUpdateResponse.ProtoReflect.Descriptor instead. -func (*WorkflowUpdateResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{21} -} - -func (x *WorkflowUpdateResponse) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *WorkflowUpdateResponse) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message - } - return "" + return WorkflowError_WORKFLOW_NO_ERROR } type WorkflowDeleteRequest struct { @@ -1484,14 +1512,14 @@ type WorkflowDeleteRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkflowName *string `protobuf:"bytes,1,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` - Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` + WorkflowName *string `protobuf:"bytes,2,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` } func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1501,276 +1529,10 @@ func (x *WorkflowDeleteRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowDeleteRequest) ProtoMessage() {} - -func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. -func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{22} -} - -func (x *WorkflowDeleteRequest) GetWorkflowName() string { - if x != nil && x.WorkflowName != nil { - return *x.WorkflowName - } - return "" -} - -func (x *WorkflowDeleteRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type WorkflowDeleteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` -} - -func (x *WorkflowDeleteResponse) Reset() { - *x = WorkflowDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowDeleteResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowDeleteResponse) ProtoMessage() {} - -func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. -func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{23} -} - -func (x *WorkflowDeleteResponse) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *WorkflowDeleteResponse) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message - } - return "" -} - -type WorkflowGetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - WorkflowName *string `protobuf:"bytes,1,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` - Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` -} - -func (x *WorkflowGetRequest) Reset() { - *x = WorkflowGetRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowGetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowGetRequest) ProtoMessage() {} - -func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. -func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{24} -} - -func (x *WorkflowGetRequest) GetWorkflowName() string { - if x != nil && x.WorkflowName != nil { - return *x.WorkflowName - } - return "" -} - -func (x *WorkflowGetRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type WorkflowGetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` -} - -func (x *WorkflowGetResponse) Reset() { - *x = WorkflowGetResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowGetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowGetResponse) ProtoMessage() {} - -func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. -func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{25} -} - -func (x *WorkflowGetResponse) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *WorkflowGetResponse) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message - } - return "" -} - -type WorkflowListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace *string `protobuf:"bytes,1,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` -} - -func (x *WorkflowListRequest) Reset() { - *x = WorkflowListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowListRequest) ProtoMessage() {} - -func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. -func (*WorkflowListRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{26} -} - -func (x *WorkflowListRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type WorkflowListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Workflows []*WorkflowGetResponse `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` -} - -func (x *WorkflowListResponse) Reset() { - *x = WorkflowListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkflowListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkflowListResponse) ProtoMessage() {} +func (*WorkflowDeleteRequest) ProtoMessage() {} -func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[27] +func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1781,44 +1543,51 @@ func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. -func (*WorkflowListResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{27} +// Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. +func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{21} } -func (x *WorkflowListResponse) GetWorkflows() []*WorkflowGetResponse { - if x != nil { - return x.Workflows +func (x *WorkflowDeleteRequest) GetWorkspaceId() string { + if x != nil && x.WorkspaceId != nil { + return *x.WorkspaceId } - return nil + return "" } -type WorkflowCreationError struct { +func (x *WorkflowDeleteRequest) GetWorkflowName() string { + if x != nil && x.WorkflowName != nil { + return *x.WorkflowName + } + return "" +} + +type WorkflowDeleteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` + Workflow *WorkflowStatus `protobuf:"bytes,1,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + Error *WorkflowError `protobuf:"varint,2,opt,name=error,proto3,enum=workflow.WorkflowError,oneof" json:"error,omitempty"` } -func (x *WorkflowCreationError) Reset() { - *x = WorkflowCreationError{} +func (x *WorkflowDeleteResponse) Reset() { + *x = WorkflowDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[28] + mi := &file_workflow_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowCreationError) String() string { +func (x *WorkflowDeleteResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowCreationError) ProtoMessage() {} +func (*WorkflowDeleteResponse) ProtoMessage() {} -func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[28] +func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1829,51 +1598,51 @@ func (x *WorkflowCreationError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowCreationError.ProtoReflect.Descriptor instead. -func (*WorkflowCreationError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{28} +// Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. +func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{22} } -func (x *WorkflowCreationError) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *WorkflowDeleteResponse) GetWorkflow() *WorkflowStatus { + if x != nil { + return x.Workflow } - return "" + return nil } -func (x *WorkflowCreationError) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message +func (x *WorkflowDeleteResponse) GetError() WorkflowError { + if x != nil && x.Error != nil { + return *x.Error } - return "" + return WorkflowError_WORKFLOW_NO_ERROR } -type WorkflowUpdateError struct { +type WorkflowGetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` + WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` + WorkflowName *string `protobuf:"bytes,2,opt,name=workflow_name,json=workflowName,proto3,oneof" json:"workflow_name,omitempty"` } -func (x *WorkflowUpdateError) Reset() { - *x = WorkflowUpdateError{} +func (x *WorkflowGetRequest) Reset() { + *x = WorkflowGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[29] + mi := &file_workflow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowUpdateError) String() string { +func (x *WorkflowGetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowUpdateError) ProtoMessage() {} +func (*WorkflowGetRequest) ProtoMessage() {} -func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[29] +func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1884,51 +1653,51 @@ func (x *WorkflowUpdateError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowUpdateError.ProtoReflect.Descriptor instead. -func (*WorkflowUpdateError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{29} +// Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. +func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{23} } -func (x *WorkflowUpdateError) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *WorkflowGetRequest) GetWorkspaceId() string { + if x != nil && x.WorkspaceId != nil { + return *x.WorkspaceId } return "" } -func (x *WorkflowUpdateError) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message +func (x *WorkflowGetRequest) GetWorkflowName() string { + if x != nil && x.WorkflowName != nil { + return *x.WorkflowName } return "" } -type WorkflowDeleteError struct { +type WorkflowGetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` + Workflow *WorkflowStatus `protobuf:"bytes,1,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + Error *WorkflowResponseError `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` } -func (x *WorkflowDeleteError) Reset() { - *x = WorkflowDeleteError{} +func (x *WorkflowGetResponse) Reset() { + *x = WorkflowGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[30] + mi := &file_workflow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowDeleteError) String() string { +func (x *WorkflowGetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowDeleteError) ProtoMessage() {} +func (*WorkflowGetResponse) ProtoMessage() {} -func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[30] +func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1939,51 +1708,50 @@ func (x *WorkflowDeleteError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowDeleteError.ProtoReflect.Descriptor instead. -func (*WorkflowDeleteError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{30} +// Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. +func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{24} } -func (x *WorkflowDeleteError) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *WorkflowGetResponse) GetWorkflow() *WorkflowStatus { + if x != nil { + return x.Workflow } - return "" + return nil } -func (x *WorkflowDeleteError) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message +func (x *WorkflowGetResponse) GetError() *WorkflowResponseError { + if x != nil { + return x.Error } - return "" + return nil } -type WorkflowGetError struct { +type WorkflowListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` + WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` } -func (x *WorkflowGetError) Reset() { - *x = WorkflowGetError{} +func (x *WorkflowListRequest) Reset() { + *x = WorkflowListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[31] + mi := &file_workflow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowGetError) String() string { +func (x *WorkflowListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowGetError) ProtoMessage() {} +func (*WorkflowListRequest) ProtoMessage() {} -func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[31] +func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1994,51 +1762,44 @@ func (x *WorkflowGetError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowGetError.ProtoReflect.Descriptor instead. -func (*WorkflowGetError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{31} -} - -func (x *WorkflowGetError) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. +func (*WorkflowListRequest) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{25} } -func (x *WorkflowGetError) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message +func (x *WorkflowListRequest) GetWorkspaceId() string { + if x != nil && x.WorkspaceId != nil { + return *x.WorkspaceId } return "" } -type WorkflowListError struct { +type WorkflowListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - Message *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"` + Workflows []*WorkflowStatus `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` + Error *WorkflowResponseError `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` } -func (x *WorkflowListError) Reset() { - *x = WorkflowListError{} +func (x *WorkflowListResponse) Reset() { + *x = WorkflowListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[32] + mi := &file_workflow_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WorkflowListError) String() string { +func (x *WorkflowListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WorkflowListError) ProtoMessage() {} +func (*WorkflowListResponse) ProtoMessage() {} -func (x *WorkflowListError) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[32] +func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { + mi := &file_workflow_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2049,23 +1810,23 @@ func (x *WorkflowListError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WorkflowListError.ProtoReflect.Descriptor instead. -func (*WorkflowListError) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{32} +// Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. +func (*WorkflowListResponse) Descriptor() ([]byte, []int) { + return file_workflow_proto_rawDescGZIP(), []int{26} } -func (x *WorkflowListError) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *WorkflowListResponse) GetWorkflows() []*WorkflowStatus { + if x != nil { + return x.Workflows } - return "" + return nil } -func (x *WorkflowListError) GetMessage() string { - if x != nil && x.Message != nil { - return *x.Message +func (x *WorkflowListResponse) GetError() *WorkflowResponseError { + if x != nil { + return x.Error } - return "" + return nil } var File_workflow_proto protoreflect.FileDescriptor @@ -2073,362 +1834,332 @@ var File_workflow_proto protoreflect.FileDescriptor var file_workflow_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x1a, 0x0e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x07, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x53, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x12, 0x15, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x66, 0x72, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x48, 0x04, 0x52, 0x07, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x48, 0x05, 0x52, 0x02, 0x73, 0x33, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x73, 0x33, 0x22, 0x6f, 0x0a, 0x06, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x70, 0x0a, 0x07, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x7d, 0x0a, 0x09, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, - 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x09, - 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7d, 0x0a, 0x15, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x17, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x73, 0x0a, 0x07, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x53, + 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x12, 0x15, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x48, 0x04, 0x52, 0x07, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x33, 0x48, 0x05, 0x52, 0x02, 0x73, 0x33, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x73, 0x33, 0x22, 0x6f, 0x0a, 0x06, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x70, 0x0a, 0x07, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x7d, 0x0a, 0x09, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x72, 0x0a, 0x09, 0x41, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0xab, + 0x01, 0x0a, 0x08, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x40, - 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, - 0x0a, 0x08, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x48, 0x01, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x0b, 0x44, - 0x61, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xfc, 0x01, 0x0a, - 0x0e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, - 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x11, + 0x74, 0x73, 0x48, 0x01, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x0b, + 0x44, 0x61, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xfc, 0x01, + 0x0a, 0x0e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, - 0x39, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x72, 0x67, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x96, 0x04, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x2d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x73, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x30, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2c, 0x0a, 0x03, 0x64, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x64, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x35, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x06, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x74, - 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, - 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x06, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x22, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x6e, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x17, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, - 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, - 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0xb3, 0x04, 0x0a, 0x08, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x48, 0x00, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x48, 0x01, 0x52, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x03, 0x64, + 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x61, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, + 0x02, 0x52, 0x03, 0x64, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x74, 0x74, 0x6c, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x74, 0x6c, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x6f, 0x64, 0x47, 0x43, 0x22, + 0xb2, 0x01, 0x0a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x48, 0x00, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x09, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x70, 0x68, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x05, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x68, + 0x61, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, + 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, + 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, + 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, + 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, + 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x04, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, - 0x65, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, - 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, - 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, 0x0c, 0x43, 0x72, - 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x22, 0xcf, 0x02, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, - 0xb0, 0x01, 0x01, 0x48, 0x02, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, - 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x48, 0x05, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xd7, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, + 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, + 0x0c, 0x43, 0x72, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, + 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xfb, 0x02, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x02, 0x52, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, + 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x06, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x22, 0xa0, 0x01, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x5b, 0x0a, 0x19, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x01, 0x52, 0x17, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, - 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x48, 0x02, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, - 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, - 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x53, 0x0a, 0x14, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x22, 0x64, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x13, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, - 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x60, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x9e, 0x01, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x22, 0x93, 0x01, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, + 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, 0x0a, 0x13, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x36, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x42, 0x0a, + 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x15, + 0x0a, 0x11, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xe8, + 0x07, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, @@ -2446,87 +2177,84 @@ func file_workflow_proto_rawDescGZIP() []byte { return file_workflow_proto_rawDescData } -var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 31) var file_workflow_proto_goTypes = []interface{}{ - (*Archive)(nil), // 0: workflow.Archive - (*ArtifactS3)(nil), // 1: workflow.ArtifactS3 - (*Artifact)(nil), // 2: workflow.Artifact - (*Inputs)(nil), // 3: workflow.Inputs - (*Outputs)(nil), // 4: workflow.Outputs - (*Parameter)(nil), // 5: workflow.Parameter - (*Arguments)(nil), // 6: workflow.Arguments - (*DagTasks)(nil), // 7: workflow.DagTasks - (*DagTemplate)(nil), // 8: workflow.DagTemplate - (*ScriptTemplate)(nil), // 9: workflow.ScriptTemplate - (*ContainerTemplate)(nil), // 10: workflow.ContainerTemplate - (*Template)(nil), // 11: workflow.Template - (*Spec)(nil), // 12: workflow.Spec - (*Metadata)(nil), // 13: workflow.Metadata - (*Workflow)(nil), // 14: workflow.Workflow - (*CronSpec)(nil), // 15: workflow.CronSpec - (*CronWorkflow)(nil), // 16: workflow.CronWorkflow - (*WorkflowCreation)(nil), // 17: workflow.WorkflowCreation - (*WorkflowCreationRequest)(nil), // 18: workflow.WorkflowCreationRequest - (*WorkflowCreationResponse)(nil), // 19: workflow.WorkflowCreationResponse - (*WorkflowUpdateRequest)(nil), // 20: workflow.WorkflowUpdateRequest - (*WorkflowUpdateResponse)(nil), // 21: workflow.WorkflowUpdateResponse + (WorkflowError)(0), // 0: workflow.WorkflowError + (*WorkflowResponseError)(nil), // 1: workflow.WorkflowResponseError + (*Archive)(nil), // 2: workflow.Archive + (*ArtifactS3)(nil), // 3: workflow.ArtifactS3 + (*Artifact)(nil), // 4: workflow.Artifact + (*Inputs)(nil), // 5: workflow.Inputs + (*Outputs)(nil), // 6: workflow.Outputs + (*Parameter)(nil), // 7: workflow.Parameter + (*Arguments)(nil), // 8: workflow.Arguments + (*DagTasks)(nil), // 9: workflow.DagTasks + (*DagTemplate)(nil), // 10: workflow.DagTemplate + (*ScriptTemplate)(nil), // 11: workflow.ScriptTemplate + (*ContainerTemplate)(nil), // 12: workflow.ContainerTemplate + (*Template)(nil), // 13: workflow.Template + (*Spec)(nil), // 14: workflow.Spec + (*Metadata)(nil), // 15: workflow.Metadata + (*WorkflowStatus)(nil), // 16: workflow.WorkflowStatus + (*Workflow)(nil), // 17: workflow.Workflow + (*CronSpec)(nil), // 18: workflow.CronSpec + (*CronWorkflow)(nil), // 19: workflow.CronWorkflow + (*WorkflowCreationRequest)(nil), // 20: workflow.WorkflowCreationRequest + (*WorkflowCreationResponse)(nil), // 21: workflow.WorkflowCreationResponse (*WorkflowDeleteRequest)(nil), // 22: workflow.WorkflowDeleteRequest (*WorkflowDeleteResponse)(nil), // 23: workflow.WorkflowDeleteResponse (*WorkflowGetRequest)(nil), // 24: workflow.WorkflowGetRequest (*WorkflowGetResponse)(nil), // 25: workflow.WorkflowGetResponse (*WorkflowListRequest)(nil), // 26: workflow.WorkflowListRequest (*WorkflowListResponse)(nil), // 27: workflow.WorkflowListResponse - (*WorkflowCreationError)(nil), // 28: workflow.WorkflowCreationError - (*WorkflowUpdateError)(nil), // 29: workflow.WorkflowUpdateError - (*WorkflowDeleteError)(nil), // 30: workflow.WorkflowDeleteError - (*WorkflowGetError)(nil), // 31: workflow.WorkflowGetError - (*WorkflowListError)(nil), // 32: workflow.WorkflowListError - nil, // 33: workflow.Archive.NoneEntry - nil, // 34: workflow.Arguments.ParametersEntry - nil, // 35: workflow.Arguments.ArtifactsEntry - nil, // 36: workflow.ScriptTemplate.ResourcesEntry - nil, // 37: workflow.ContainerTemplate.CommandEntry - nil, // 38: workflow.ContainerTemplate.ArgsEntry - nil, // 39: workflow.Template.MetadataEntry - nil, // 40: workflow.Metadata.LabelsEntry + nil, // 28: workflow.Archive.NoneEntry + nil, // 29: workflow.ScriptTemplate.ResourcesEntry + nil, // 30: workflow.Template.MetadataEntry + nil, // 31: workflow.Metadata.LabelsEntry } var file_workflow_proto_depIdxs = []int32{ - 33, // 0: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry - 0, // 1: workflow.Artifact.archive:type_name -> workflow.Archive - 1, // 2: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 - 5, // 3: workflow.Inputs.parameters:type_name -> workflow.Parameter - 2, // 4: workflow.Inputs.artifacts:type_name -> workflow.Artifact - 5, // 5: workflow.Outputs.parameters:type_name -> workflow.Parameter - 2, // 6: workflow.Outputs.artifacts:type_name -> workflow.Artifact - 34, // 7: workflow.Arguments.parameters:type_name -> workflow.Arguments.ParametersEntry - 35, // 8: workflow.Arguments.artifacts:type_name -> workflow.Arguments.ArtifactsEntry - 6, // 9: workflow.DagTasks.arguments:type_name -> workflow.Arguments - 7, // 10: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks - 36, // 11: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry - 37, // 12: workflow.ContainerTemplate.command:type_name -> workflow.ContainerTemplate.CommandEntry - 38, // 13: workflow.ContainerTemplate.args:type_name -> workflow.ContainerTemplate.ArgsEntry - 3, // 14: workflow.Template.inputs:type_name -> workflow.Inputs - 4, // 15: workflow.Template.outputs:type_name -> workflow.Outputs - 8, // 16: workflow.Template.dag:type_name -> workflow.DagTemplate - 9, // 17: workflow.Template.script:type_name -> workflow.ScriptTemplate - 39, // 18: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry - 6, // 19: workflow.Spec.arguments:type_name -> workflow.Arguments - 11, // 20: workflow.Spec.templates:type_name -> workflow.Template - 40, // 21: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry - 13, // 22: workflow.Workflow.metadata:type_name -> workflow.Metadata - 12, // 23: workflow.Workflow.spec:type_name -> workflow.Spec - 12, // 24: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec - 13, // 25: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata - 15, // 26: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec - 14, // 27: workflow.WorkflowCreation.workflow:type_name -> workflow.Workflow - 17, // 28: workflow.WorkflowCreationRequest.workflow_creation_request:type_name -> workflow.WorkflowCreation - 14, // 29: workflow.WorkflowUpdateRequest.workflow:type_name -> workflow.Workflow - 25, // 30: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowGetResponse - 31, // [31:31] is the sub-list for method output_type - 31, // [31:31] is the sub-list for method input_type - 31, // [31:31] is the sub-list for extension type_name - 31, // [31:31] is the sub-list for extension extendee - 0, // [0:31] is the sub-list for field type_name + 0, // 0: workflow.WorkflowResponseError.code:type_name -> workflow.WorkflowError + 28, // 1: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry + 2, // 2: workflow.Artifact.archive:type_name -> workflow.Archive + 3, // 3: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 + 7, // 4: workflow.Inputs.parameters:type_name -> workflow.Parameter + 4, // 5: workflow.Inputs.artifacts:type_name -> workflow.Artifact + 7, // 6: workflow.Outputs.parameters:type_name -> workflow.Parameter + 4, // 7: workflow.Outputs.artifacts:type_name -> workflow.Artifact + 7, // 8: workflow.Arguments.parameters:type_name -> workflow.Parameter + 4, // 9: workflow.Arguments.artifacts:type_name -> workflow.Artifact + 8, // 10: workflow.DagTasks.arguments:type_name -> workflow.Arguments + 9, // 11: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks + 29, // 12: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry + 5, // 13: workflow.Template.inputs:type_name -> workflow.Inputs + 6, // 14: workflow.Template.outputs:type_name -> workflow.Outputs + 10, // 15: workflow.Template.dag:type_name -> workflow.DagTemplate + 11, // 16: workflow.Template.script:type_name -> workflow.ScriptTemplate + 12, // 17: workflow.Template.container:type_name -> workflow.ContainerTemplate + 30, // 18: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry + 8, // 19: workflow.Spec.arguments:type_name -> workflow.Arguments + 13, // 20: workflow.Spec.templates:type_name -> workflow.Template + 31, // 21: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry + 15, // 22: workflow.Workflow.metadata:type_name -> workflow.Metadata + 14, // 23: workflow.Workflow.spec:type_name -> workflow.Spec + 14, // 24: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec + 15, // 25: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata + 18, // 26: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec + 17, // 27: workflow.WorkflowCreationRequest.workflow:type_name -> workflow.Workflow + 16, // 28: workflow.WorkflowCreationResponse.workflow:type_name -> workflow.WorkflowStatus + 0, // 29: workflow.WorkflowCreationResponse.error:type_name -> workflow.WorkflowError + 16, // 30: workflow.WorkflowDeleteResponse.workflow:type_name -> workflow.WorkflowStatus + 0, // 31: workflow.WorkflowDeleteResponse.error:type_name -> workflow.WorkflowError + 16, // 32: workflow.WorkflowGetResponse.workflow:type_name -> workflow.WorkflowStatus + 1, // 33: workflow.WorkflowGetResponse.error:type_name -> workflow.WorkflowResponseError + 16, // 34: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowStatus + 1, // 35: workflow.WorkflowListResponse.error:type_name -> workflow.WorkflowResponseError + 36, // [36:36] is the sub-list for method output_type + 36, // [36:36] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name } func init() { file_workflow_proto_init() } @@ -2536,7 +2264,7 @@ func file_workflow_proto_init() { } if !protoimpl.UnsafeEnabled { file_workflow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Archive); i { + switch v := v.(*WorkflowResponseError); i { case 0: return &v.state case 1: @@ -2548,7 +2276,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactS3); i { + switch v := v.(*Archive); i { case 0: return &v.state case 1: @@ -2560,7 +2288,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Artifact); i { + switch v := v.(*ArtifactS3); i { case 0: return &v.state case 1: @@ -2572,7 +2300,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Inputs); i { + switch v := v.(*Artifact); i { case 0: return &v.state case 1: @@ -2584,7 +2312,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Outputs); i { + switch v := v.(*Inputs); i { case 0: return &v.state case 1: @@ -2596,7 +2324,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Parameter); i { + switch v := v.(*Outputs); i { case 0: return &v.state case 1: @@ -2608,7 +2336,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Arguments); i { + switch v := v.(*Parameter); i { case 0: return &v.state case 1: @@ -2620,7 +2348,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DagTasks); i { + switch v := v.(*Arguments); i { case 0: return &v.state case 1: @@ -2632,7 +2360,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DagTemplate); i { + switch v := v.(*DagTasks); i { case 0: return &v.state case 1: @@ -2644,7 +2372,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScriptTemplate); i { + switch v := v.(*DagTemplate); i { case 0: return &v.state case 1: @@ -2656,7 +2384,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerTemplate); i { + switch v := v.(*ScriptTemplate); i { case 0: return &v.state case 1: @@ -2668,7 +2396,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Template); i { + switch v := v.(*ContainerTemplate); i { case 0: return &v.state case 1: @@ -2680,7 +2408,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Spec); i { + switch v := v.(*Template); i { case 0: return &v.state case 1: @@ -2692,7 +2420,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Metadata); i { + switch v := v.(*Spec); i { case 0: return &v.state case 1: @@ -2704,7 +2432,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Workflow); i { + switch v := v.(*Metadata); i { case 0: return &v.state case 1: @@ -2716,7 +2444,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CronSpec); i { + switch v := v.(*WorkflowStatus); i { case 0: return &v.state case 1: @@ -2728,7 +2456,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CronWorkflow); i { + switch v := v.(*Workflow); i { case 0: return &v.state case 1: @@ -2740,7 +2468,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreation); i { + switch v := v.(*CronSpec); i { case 0: return &v.state case 1: @@ -2752,7 +2480,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationRequest); i { + switch v := v.(*CronWorkflow); i { case 0: return &v.state case 1: @@ -2764,7 +2492,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationResponse); i { + switch v := v.(*WorkflowCreationRequest); i { case 0: return &v.state case 1: @@ -2776,7 +2504,7 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateRequest); i { + switch v := v.(*WorkflowCreationResponse); i { case 0: return &v.state case 1: @@ -2788,18 +2516,6 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowDeleteRequest); i { case 0: return &v.state @@ -2811,7 +2527,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowDeleteResponse); i { case 0: return &v.state @@ -2823,7 +2539,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowGetRequest); i { case 0: return &v.state @@ -2835,7 +2551,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowGetResponse); i { case 0: return &v.state @@ -2847,7 +2563,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListRequest); i { case 0: return &v.state @@ -2859,7 +2575,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListResponse); i { case 0: return &v.state @@ -2871,79 +2587,19 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowCreationError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowUpdateError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowDeleteError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowGetError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowListError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } - file_workflow_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[0].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[2].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[5].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[6].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[8].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[9].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[10].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[12].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[14].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[15].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[17].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[18].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[19].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[20].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[21].OneofWrappers = []interface{}{} @@ -2952,23 +2608,19 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[24].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[25].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[26].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[28].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[29].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[30].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[31].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[32].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_proto_rawDesc, - NumEnums: 0, - NumMessages: 41, + NumEnums: 1, + NumMessages: 31, NumExtensions: 0, NumServices: 0, }, GoTypes: file_workflow_proto_goTypes, DependencyIndexes: file_workflow_proto_depIdxs, + EnumInfos: file_workflow_proto_enumTypes, MessageInfos: file_workflow_proto_msgTypes, }.Build() File_workflow_proto = out.File diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go index 69cf0ec..204f40e 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go @@ -38,6 +38,116 @@ var ( // define the regex for a UUID once up-front var _workflow_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") +// Validate checks the field values on WorkflowResponseError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowResponseError) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkflowResponseError with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkflowResponseErrorMultiError, or nil if none found. +func (m *WorkflowResponseError) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkflowResponseError) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Code != nil { + // no validation rules for Code + } + + if m.Message != nil { + // no validation rules for Message + } + + if len(errors) > 0 { + return WorkflowResponseErrorMultiError(errors) + } + + return nil +} + +// WorkflowResponseErrorMultiError is an error wrapping multiple validation +// errors returned by WorkflowResponseError.ValidateAll() if the designated +// constraints aren't met. +type WorkflowResponseErrorMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowResponseErrorMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowResponseErrorMultiError) AllErrors() []error { return m } + +// WorkflowResponseErrorValidationError is the validation error returned by +// WorkflowResponseError.Validate if the designated constraints aren't met. +type WorkflowResponseErrorValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowResponseErrorValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowResponseErrorValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowResponseErrorValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowResponseErrorValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowResponseErrorValidationError) ErrorName() string { + return "WorkflowResponseErrorValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkflowResponseErrorValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowResponseError.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowResponseErrorValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowResponseErrorValidationError{} + // Validate checks the field values on Archive with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -891,9 +1001,73 @@ func (m *Arguments) validate(all bool) error { var errors []error - // no validation rules for Parameters + for idx, item := range m.GetParameters() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ArgumentsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ArgumentsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ArgumentsValidationError{ + field: fmt.Sprintf("Parameters[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetArtifacts() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ArgumentsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ArgumentsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ArgumentsValidationError{ + field: fmt.Sprintf("Artifacts[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } - // no validation rules for Artifacts + } if len(errors) > 0 { return ArgumentsMultiError(errors) @@ -1385,10 +1559,6 @@ func (m *ContainerTemplate) validate(all bool) error { // no validation rules for Image - // no validation rules for Command - - // no validation rules for Args - if len(errors) > 0 { return ContainerTemplateMultiError(errors) } @@ -1632,7 +1802,36 @@ func (m *Template) validate(all bool) error { } if m.Container != nil { - // no validation rules for Container + + if all { + switch v := interface{}(m.GetContainer()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Container", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TemplateValidationError{ + field: "Container", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetContainer()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TemplateValidationError{ + field: "Container", + reason: "embedded message failed validation", + cause: err, + } + } + } + } if m.PodGC != nil { @@ -1737,8 +1936,6 @@ func (m *Spec) validate(all bool) error { var errors []error - // no validation rules for Entrypoint - for idx, item := range m.GetTemplates() { _, _ = idx, item @@ -1806,6 +2003,10 @@ func (m *Spec) validate(all bool) error { } + if m.Entrypoint != nil { + // no validation rules for Entrypoint + } + if len(errors) > 0 { return SpecMultiError(errors) } @@ -1996,99 +2197,223 @@ var _ interface { ErrorName() string } = MetadataValidationError{} -// Validate checks the field values on Workflow with the rules defined in the -// proto definition for this message. If any rules are violated, the first +// Validate checks the field values on WorkflowStatus with the rules defined in +// the proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. -func (m *Workflow) Validate() error { +func (m *WorkflowStatus) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on Workflow with the rules defined in -// the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in WorkflowMultiError, or nil -// if none found. -func (m *Workflow) ValidateAll() error { +// ValidateAll checks the field values on WorkflowStatus with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkflowStatusMultiError, +// or nil if none found. +func (m *WorkflowStatus) ValidateAll() error { return m.validate(true) } -func (m *Workflow) validate(all bool) error { +func (m *WorkflowStatus) validate(all bool) error { if m == nil { return nil } var errors []error - if all { - switch v := interface{}(m.GetMetadata()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return WorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - } - } + if m.Name != nil { + // no validation rules for Name } - if all { - switch v := interface{}(m.GetSpec()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return WorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - } - } + if m.Phase != nil { + // no validation rules for Phase + } + + if m.StartedAt != nil { + // no validation rules for StartedAt + } + + if m.FinishedAt != nil { + // no validation rules for FinishedAt + } + + if m.Progress != nil { + // no validation rules for Progress + } + + if m.Outputs != nil { + // no validation rules for Outputs } if len(errors) > 0 { - return WorkflowMultiError(errors) + return WorkflowStatusMultiError(errors) } return nil } -// WorkflowMultiError is an error wrapping multiple validation errors returned -// by Workflow.ValidateAll() if the designated constraints aren't met. -type WorkflowMultiError []error +// WorkflowStatusMultiError is an error wrapping multiple validation errors +// returned by WorkflowStatus.ValidateAll() if the designated constraints +// aren't met. +type WorkflowStatusMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowMultiError) Error() string { +func (m WorkflowStatusMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkflowStatusMultiError) AllErrors() []error { return m } + +// WorkflowStatusValidationError is the validation error returned by +// WorkflowStatus.Validate if the designated constraints aren't met. +type WorkflowStatusValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkflowStatusValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkflowStatusValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkflowStatusValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkflowStatusValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkflowStatusValidationError) ErrorName() string { return "WorkflowStatusValidationError" } + +// Error satisfies the builtin error interface +func (e WorkflowStatusValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkflowStatus.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkflowStatusValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkflowStatusValidationError{} + +// Validate checks the field values on Workflow with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Workflow) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Workflow with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkflowMultiError, or nil +// if none found. +func (m *Workflow) ValidateAll() error { + return m.validate(true) +} + +func (m *Workflow) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetMetadata()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetSpec()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowValidationError{ + field: "Spec", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return WorkflowMultiError(errors) + } + + return nil +} + +// WorkflowMultiError is an error wrapping multiple validation errors returned +// by Workflow.ValidateAll() if the designated constraints aren't met. +type WorkflowMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkflowMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -2462,22 +2787,22 @@ var _ interface { ErrorName() string } = CronWorkflowValidationError{} -// Validate checks the field values on WorkflowCreation with the rules defined -// in the proto definition for this message. If any rules are violated, the -// first error encountered is returned, or nil if there are no violations. -func (m *WorkflowCreation) Validate() error { +// Validate checks the field values on WorkflowCreationRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowCreationRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowCreation with the rules -// defined in the proto definition for this message. If any rules are +// ValidateAll checks the field values on WorkflowCreationRequest with the +// rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowCreationMultiError, or nil if none found. -func (m *WorkflowCreation) ValidateAll() error { +// WorkflowCreationRequestMultiError, or nil if none found. +func (m *WorkflowCreationRequest) ValidateAll() error { return m.validate(true) } -func (m *WorkflowCreation) validate(all bool) error { +func (m *WorkflowCreationRequest) validate(all bool) error { if m == nil { return nil } @@ -2495,7 +2820,7 @@ func (m *WorkflowCreation) validate(all bool) error { if m.UserUid != nil { if err := m._validateUuid(m.GetUserUid()); err != nil { - err = WorkflowCreationValidationError{ + err = WorkflowCreationRequestValidationError{ field: "UserUid", reason: "value must be a valid UUID", cause: err, @@ -2516,13 +2841,17 @@ func (m *WorkflowCreation) validate(all bool) error { // no validation rules for ServerDryRun } + if m.Token != nil { + // no validation rules for Token + } + if m.Workflow != nil { if all { switch v := interface{}(m.GetWorkflow()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowCreationValidationError{ + errors = append(errors, WorkflowCreationRequestValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2530,7 +2859,7 @@ func (m *WorkflowCreation) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, WorkflowCreationValidationError{ + errors = append(errors, WorkflowCreationRequestValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2539,7 +2868,7 @@ func (m *WorkflowCreation) validate(all bool) error { } } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return WorkflowCreationValidationError{ + return WorkflowCreationRequestValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2550,13 +2879,13 @@ func (m *WorkflowCreation) validate(all bool) error { } if len(errors) > 0 { - return WorkflowCreationMultiError(errors) + return WorkflowCreationRequestMultiError(errors) } return nil } -func (m *WorkflowCreation) _validateUuid(uuid string) error { +func (m *WorkflowCreationRequest) _validateUuid(uuid string) error { if matched := _workflow_uuidPattern.MatchString(uuid); !matched { return errors.New("invalid uuid format") } @@ -2564,13 +2893,13 @@ func (m *WorkflowCreation) _validateUuid(uuid string) error { return nil } -// WorkflowCreationMultiError is an error wrapping multiple validation errors -// returned by WorkflowCreation.ValidateAll() if the designated constraints -// aren't met. -type WorkflowCreationMultiError []error +// WorkflowCreationRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowCreationRequest.ValidateAll() if the designated +// constraints aren't met. +type WorkflowCreationRequestMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowCreationMultiError) Error() string { +func (m WorkflowCreationRequestMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -2579,11 +2908,11 @@ func (m WorkflowCreationMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowCreationMultiError) AllErrors() []error { return m } +func (m WorkflowCreationRequestMultiError) AllErrors() []error { return m } -// WorkflowCreationValidationError is the validation error returned by -// WorkflowCreation.Validate if the designated constraints aren't met. -type WorkflowCreationValidationError struct { +// WorkflowCreationRequestValidationError is the validation error returned by +// WorkflowCreationRequest.Validate if the designated constraints aren't met. +type WorkflowCreationRequestValidationError struct { field string reason string cause error @@ -2591,22 +2920,24 @@ type WorkflowCreationValidationError struct { } // Field function returns field value. -func (e WorkflowCreationValidationError) Field() string { return e.field } +func (e WorkflowCreationRequestValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowCreationValidationError) Reason() string { return e.reason } +func (e WorkflowCreationRequestValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowCreationValidationError) Cause() error { return e.cause } +func (e WorkflowCreationRequestValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowCreationValidationError) Key() bool { return e.key } +func (e WorkflowCreationRequestValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowCreationValidationError) ErrorName() string { return "WorkflowCreationValidationError" } +func (e WorkflowCreationRequestValidationError) ErrorName() string { + return "WorkflowCreationRequestValidationError" +} // Error satisfies the builtin error interface -func (e WorkflowCreationValidationError) Error() string { +func (e WorkflowCreationRequestValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -2618,14 +2949,14 @@ func (e WorkflowCreationValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowCreation.%s: %s%s", + "invalid %sWorkflowCreationRequest.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowCreationValidationError{} +var _ error = WorkflowCreationRequestValidationError{} var _ interface { Field() string @@ -2633,71 +2964,55 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowCreationValidationError{} +} = WorkflowCreationRequestValidationError{} -// Validate checks the field values on WorkflowCreationRequest with the rules +// Validate checks the field values on WorkflowCreationResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowCreationRequest) Validate() error { +func (m *WorkflowCreationResponse) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowCreationRequest with the +// ValidateAll checks the field values on WorkflowCreationResponse with the // rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowCreationRequestMultiError, or nil if none found. -func (m *WorkflowCreationRequest) ValidateAll() error { +// WorkflowCreationResponseMultiError, or nil if none found. +func (m *WorkflowCreationResponse) ValidateAll() error { return m.validate(true) } -func (m *WorkflowCreationRequest) validate(all bool) error { +func (m *WorkflowCreationResponse) validate(all bool) error { if m == nil { return nil } var errors []error - if m.WorkspaceId != nil { - - if err := m._validateUuid(m.GetWorkspaceId()); err != nil { - err = WorkflowCreationRequestValidationError{ - field: "WorkspaceId", - reason: "value must be a valid UUID", - cause: err, - } - if !all { - return err - } - errors = append(errors, err) - } - - } - - if m.WorkflowCreationRequest != nil { + if m.Workflow != nil { if all { - switch v := interface{}(m.GetWorkflowCreationRequest()).(type) { + switch v := interface{}(m.GetWorkflow()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowCreationRequestValidationError{ - field: "WorkflowCreationRequest", + errors = append(errors, WorkflowCreationResponseValidationError{ + field: "Workflow", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, WorkflowCreationRequestValidationError{ - field: "WorkflowCreationRequest", + errors = append(errors, WorkflowCreationResponseValidationError{ + field: "Workflow", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetWorkflowCreationRequest()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return WorkflowCreationRequestValidationError{ - field: "WorkflowCreationRequest", + return WorkflowCreationResponseValidationError{ + field: "Workflow", reason: "embedded message failed validation", cause: err, } @@ -2706,28 +3021,24 @@ func (m *WorkflowCreationRequest) validate(all bool) error { } - if len(errors) > 0 { - return WorkflowCreationRequestMultiError(errors) + if m.Error != nil { + // no validation rules for Error } - return nil -} - -func (m *WorkflowCreationRequest) _validateUuid(uuid string) error { - if matched := _workflow_uuidPattern.MatchString(uuid); !matched { - return errors.New("invalid uuid format") + if len(errors) > 0 { + return WorkflowCreationResponseMultiError(errors) } return nil } -// WorkflowCreationRequestMultiError is an error wrapping multiple validation -// errors returned by WorkflowCreationRequest.ValidateAll() if the designated +// WorkflowCreationResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowCreationResponse.ValidateAll() if the designated // constraints aren't met. -type WorkflowCreationRequestMultiError []error +type WorkflowCreationResponseMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowCreationRequestMultiError) Error() string { +func (m WorkflowCreationResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -2736,11 +3047,11 @@ func (m WorkflowCreationRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowCreationRequestMultiError) AllErrors() []error { return m } +func (m WorkflowCreationResponseMultiError) AllErrors() []error { return m } -// WorkflowCreationRequestValidationError is the validation error returned by -// WorkflowCreationRequest.Validate if the designated constraints aren't met. -type WorkflowCreationRequestValidationError struct { +// WorkflowCreationResponseValidationError is the validation error returned by +// WorkflowCreationResponse.Validate if the designated constraints aren't met. +type WorkflowCreationResponseValidationError struct { field string reason string cause error @@ -2748,24 +3059,24 @@ type WorkflowCreationRequestValidationError struct { } // Field function returns field value. -func (e WorkflowCreationRequestValidationError) Field() string { return e.field } +func (e WorkflowCreationResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowCreationRequestValidationError) Reason() string { return e.reason } +func (e WorkflowCreationResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowCreationRequestValidationError) Cause() error { return e.cause } +func (e WorkflowCreationResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowCreationRequestValidationError) Key() bool { return e.key } +func (e WorkflowCreationResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowCreationRequestValidationError) ErrorName() string { - return "WorkflowCreationRequestValidationError" +func (e WorkflowCreationResponseValidationError) ErrorName() string { + return "WorkflowCreationResponseValidationError" } // Error satisfies the builtin error interface -func (e WorkflowCreationRequestValidationError) Error() string { +func (e WorkflowCreationResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -2777,14 +3088,14 @@ func (e WorkflowCreationRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowCreationRequest.%s: %s%s", + "invalid %sWorkflowCreationResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowCreationRequestValidationError{} +var _ error = WorkflowCreationResponseValidationError{} var _ interface { Field() string @@ -2792,52 +3103,72 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowCreationRequestValidationError{} +} = WorkflowCreationResponseValidationError{} -// Validate checks the field values on WorkflowCreationResponse with the rules +// Validate checks the field values on WorkflowDeleteRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowCreationResponse) Validate() error { +func (m *WorkflowDeleteRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowCreationResponse with the -// rules defined in the proto definition for this message. If any rules are +// ValidateAll checks the field values on WorkflowDeleteRequest with the rules +// defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowCreationResponseMultiError, or nil if none found. -func (m *WorkflowCreationResponse) ValidateAll() error { +// WorkflowDeleteRequestMultiError, or nil if none found. +func (m *WorkflowDeleteRequest) ValidateAll() error { return m.validate(true) } -func (m *WorkflowCreationResponse) validate(all bool) error { +func (m *WorkflowDeleteRequest) validate(all bool) error { if m == nil { return nil } var errors []error - if m.Name != nil { - // no validation rules for Name + if m.WorkspaceId != nil { + + if err := m._validateUuid(m.GetWorkspaceId()); err != nil { + err = WorkflowDeleteRequestValidationError{ + field: "WorkspaceId", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } + } - if m.Message != nil { - // no validation rules for Message + if m.WorkflowName != nil { + // no validation rules for WorkflowName } if len(errors) > 0 { - return WorkflowCreationResponseMultiError(errors) + return WorkflowDeleteRequestMultiError(errors) } return nil } -// WorkflowCreationResponseMultiError is an error wrapping multiple validation -// errors returned by WorkflowCreationResponse.ValidateAll() if the designated +func (m *WorkflowDeleteRequest) _validateUuid(uuid string) error { + if matched := _workflow_uuidPattern.MatchString(uuid); !matched { + return errors.New("invalid uuid format") + } + + return nil +} + +// WorkflowDeleteRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowDeleteRequest.ValidateAll() if the designated // constraints aren't met. -type WorkflowCreationResponseMultiError []error +type WorkflowDeleteRequestMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowCreationResponseMultiError) Error() string { +func (m WorkflowDeleteRequestMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -2846,11 +3177,11 @@ func (m WorkflowCreationResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowCreationResponseMultiError) AllErrors() []error { return m } +func (m WorkflowDeleteRequestMultiError) AllErrors() []error { return m } -// WorkflowCreationResponseValidationError is the validation error returned by -// WorkflowCreationResponse.Validate if the designated constraints aren't met. -type WorkflowCreationResponseValidationError struct { +// WorkflowDeleteRequestValidationError is the validation error returned by +// WorkflowDeleteRequest.Validate if the designated constraints aren't met. +type WorkflowDeleteRequestValidationError struct { field string reason string cause error @@ -2858,24 +3189,24 @@ type WorkflowCreationResponseValidationError struct { } // Field function returns field value. -func (e WorkflowCreationResponseValidationError) Field() string { return e.field } +func (e WorkflowDeleteRequestValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowCreationResponseValidationError) Reason() string { return e.reason } +func (e WorkflowDeleteRequestValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowCreationResponseValidationError) Cause() error { return e.cause } +func (e WorkflowDeleteRequestValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowCreationResponseValidationError) Key() bool { return e.key } +func (e WorkflowDeleteRequestValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowCreationResponseValidationError) ErrorName() string { - return "WorkflowCreationResponseValidationError" +func (e WorkflowDeleteRequestValidationError) ErrorName() string { + return "WorkflowDeleteRequestValidationError" } // Error satisfies the builtin error interface -func (e WorkflowCreationResponseValidationError) Error() string { +func (e WorkflowDeleteRequestValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -2887,14 +3218,14 @@ func (e WorkflowCreationResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowCreationResponse.%s: %s%s", + "invalid %sWorkflowDeleteRequest.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowCreationResponseValidationError{} +var _ error = WorkflowDeleteRequestValidationError{} var _ interface { Field() string @@ -2902,45 +3233,37 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowCreationResponseValidationError{} +} = WorkflowDeleteRequestValidationError{} -// Validate checks the field values on WorkflowUpdateRequest with the rules +// Validate checks the field values on WorkflowDeleteResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowUpdateRequest) Validate() error { +func (m *WorkflowDeleteResponse) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowUpdateRequest with the rules +// ValidateAll checks the field values on WorkflowDeleteResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowUpdateRequestMultiError, or nil if none found. -func (m *WorkflowUpdateRequest) ValidateAll() error { +// WorkflowDeleteResponseMultiError, or nil if none found. +func (m *WorkflowDeleteResponse) ValidateAll() error { return m.validate(true) } -func (m *WorkflowUpdateRequest) validate(all bool) error { +func (m *WorkflowDeleteResponse) validate(all bool) error { if m == nil { return nil } var errors []error - if m.Name != nil { - // no validation rules for Name - } - - if m.Namespace != nil { - // no validation rules for Namespace - } - if m.Workflow != nil { if all { switch v := interface{}(m.GetWorkflow()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowUpdateRequestValidationError{ + errors = append(errors, WorkflowDeleteResponseValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2948,7 +3271,7 @@ func (m *WorkflowUpdateRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, WorkflowUpdateRequestValidationError{ + errors = append(errors, WorkflowDeleteResponseValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2957,7 +3280,7 @@ func (m *WorkflowUpdateRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return WorkflowUpdateRequestValidationError{ + return WorkflowDeleteResponseValidationError{ field: "Workflow", reason: "embedded message failed validation", cause: err, @@ -2967,20 +3290,24 @@ func (m *WorkflowUpdateRequest) validate(all bool) error { } + if m.Error != nil { + // no validation rules for Error + } + if len(errors) > 0 { - return WorkflowUpdateRequestMultiError(errors) + return WorkflowDeleteResponseMultiError(errors) } return nil } -// WorkflowUpdateRequestMultiError is an error wrapping multiple validation -// errors returned by WorkflowUpdateRequest.ValidateAll() if the designated +// WorkflowDeleteResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowDeleteResponse.ValidateAll() if the designated // constraints aren't met. -type WorkflowUpdateRequestMultiError []error +type WorkflowDeleteResponseMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowUpdateRequestMultiError) Error() string { +func (m WorkflowDeleteResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -2989,11 +3316,11 @@ func (m WorkflowUpdateRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowUpdateRequestMultiError) AllErrors() []error { return m } +func (m WorkflowDeleteResponseMultiError) AllErrors() []error { return m } -// WorkflowUpdateRequestValidationError is the validation error returned by -// WorkflowUpdateRequest.Validate if the designated constraints aren't met. -type WorkflowUpdateRequestValidationError struct { +// WorkflowDeleteResponseValidationError is the validation error returned by +// WorkflowDeleteResponse.Validate if the designated constraints aren't met. +type WorkflowDeleteResponseValidationError struct { field string reason string cause error @@ -3001,24 +3328,24 @@ type WorkflowUpdateRequestValidationError struct { } // Field function returns field value. -func (e WorkflowUpdateRequestValidationError) Field() string { return e.field } +func (e WorkflowDeleteResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowUpdateRequestValidationError) Reason() string { return e.reason } +func (e WorkflowDeleteResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowUpdateRequestValidationError) Cause() error { return e.cause } +func (e WorkflowDeleteResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowUpdateRequestValidationError) Key() bool { return e.key } +func (e WorkflowDeleteResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowUpdateRequestValidationError) ErrorName() string { - return "WorkflowUpdateRequestValidationError" +func (e WorkflowDeleteResponseValidationError) ErrorName() string { + return "WorkflowDeleteResponseValidationError" } // Error satisfies the builtin error interface -func (e WorkflowUpdateRequestValidationError) Error() string { +func (e WorkflowDeleteResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -3030,14 +3357,14 @@ func (e WorkflowUpdateRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowUpdateRequest.%s: %s%s", + "invalid %sWorkflowDeleteResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowUpdateRequestValidationError{} +var _ error = WorkflowDeleteResponseValidationError{} var _ interface { Field() string @@ -3045,52 +3372,72 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowUpdateRequestValidationError{} +} = WorkflowDeleteResponseValidationError{} -// Validate checks the field values on WorkflowUpdateResponse with the rules +// Validate checks the field values on WorkflowGetRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowUpdateResponse) Validate() error { +func (m *WorkflowGetRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowUpdateResponse with the rules +// ValidateAll checks the field values on WorkflowGetRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowUpdateResponseMultiError, or nil if none found. -func (m *WorkflowUpdateResponse) ValidateAll() error { +// WorkflowGetRequestMultiError, or nil if none found. +func (m *WorkflowGetRequest) ValidateAll() error { return m.validate(true) } -func (m *WorkflowUpdateResponse) validate(all bool) error { +func (m *WorkflowGetRequest) validate(all bool) error { if m == nil { return nil } var errors []error - if m.Name != nil { - // no validation rules for Name + if m.WorkspaceId != nil { + + if err := m._validateUuid(m.GetWorkspaceId()); err != nil { + err = WorkflowGetRequestValidationError{ + field: "WorkspaceId", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } + } - if m.Message != nil { - // no validation rules for Message + if m.WorkflowName != nil { + // no validation rules for WorkflowName } if len(errors) > 0 { - return WorkflowUpdateResponseMultiError(errors) + return WorkflowGetRequestMultiError(errors) } return nil } -// WorkflowUpdateResponseMultiError is an error wrapping multiple validation -// errors returned by WorkflowUpdateResponse.ValidateAll() if the designated -// constraints aren't met. -type WorkflowUpdateResponseMultiError []error +func (m *WorkflowGetRequest) _validateUuid(uuid string) error { + if matched := _workflow_uuidPattern.MatchString(uuid); !matched { + return errors.New("invalid uuid format") + } + + return nil +} + +// WorkflowGetRequestMultiError is an error wrapping multiple validation errors +// returned by WorkflowGetRequest.ValidateAll() if the designated constraints +// aren't met. +type WorkflowGetRequestMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowUpdateResponseMultiError) Error() string { +func (m WorkflowGetRequestMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -3099,11 +3446,11 @@ func (m WorkflowUpdateResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowUpdateResponseMultiError) AllErrors() []error { return m } +func (m WorkflowGetRequestMultiError) AllErrors() []error { return m } -// WorkflowUpdateResponseValidationError is the validation error returned by -// WorkflowUpdateResponse.Validate if the designated constraints aren't met. -type WorkflowUpdateResponseValidationError struct { +// WorkflowGetRequestValidationError is the validation error returned by +// WorkflowGetRequest.Validate if the designated constraints aren't met. +type WorkflowGetRequestValidationError struct { field string reason string cause error @@ -3111,24 +3458,24 @@ type WorkflowUpdateResponseValidationError struct { } // Field function returns field value. -func (e WorkflowUpdateResponseValidationError) Field() string { return e.field } +func (e WorkflowGetRequestValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowUpdateResponseValidationError) Reason() string { return e.reason } +func (e WorkflowGetRequestValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowUpdateResponseValidationError) Cause() error { return e.cause } +func (e WorkflowGetRequestValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowUpdateResponseValidationError) Key() bool { return e.key } +func (e WorkflowGetRequestValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowUpdateResponseValidationError) ErrorName() string { - return "WorkflowUpdateResponseValidationError" +func (e WorkflowGetRequestValidationError) ErrorName() string { + return "WorkflowGetRequestValidationError" } // Error satisfies the builtin error interface -func (e WorkflowUpdateResponseValidationError) Error() string { +func (e WorkflowGetRequestValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -3140,14 +3487,14 @@ func (e WorkflowUpdateResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowUpdateResponse.%s: %s%s", + "invalid %sWorkflowGetRequest.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowUpdateResponseValidationError{} +var _ error = WorkflowGetRequestValidationError{} var _ interface { Field() string @@ -3155,52 +3502,110 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowUpdateResponseValidationError{} +} = WorkflowGetRequestValidationError{} -// Validate checks the field values on WorkflowDeleteRequest with the rules +// Validate checks the field values on WorkflowGetResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowDeleteRequest) Validate() error { +func (m *WorkflowGetResponse) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowDeleteRequest with the rules +// ValidateAll checks the field values on WorkflowGetResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowDeleteRequestMultiError, or nil if none found. -func (m *WorkflowDeleteRequest) ValidateAll() error { +// WorkflowGetResponseMultiError, or nil if none found. +func (m *WorkflowGetResponse) ValidateAll() error { return m.validate(true) } -func (m *WorkflowDeleteRequest) validate(all bool) error { +func (m *WorkflowGetResponse) validate(all bool) error { if m == nil { return nil } var errors []error - if m.WorkflowName != nil { - // no validation rules for WorkflowName + if m.Workflow != nil { + + if all { + switch v := interface{}(m.GetWorkflow()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowGetResponseValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowGetResponseValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetWorkflow()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowGetResponseValidationError{ + field: "Workflow", + reason: "embedded message failed validation", + cause: err, + } + } + } + } - if m.Namespace != nil { - // no validation rules for Namespace + if m.Error != nil { + + if all { + switch v := interface{}(m.GetError()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowGetResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowGetResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetError()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowGetResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + } + } + } + } if len(errors) > 0 { - return WorkflowDeleteRequestMultiError(errors) + return WorkflowGetResponseMultiError(errors) } return nil } -// WorkflowDeleteRequestMultiError is an error wrapping multiple validation -// errors returned by WorkflowDeleteRequest.ValidateAll() if the designated +// WorkflowGetResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowGetResponse.ValidateAll() if the designated // constraints aren't met. -type WorkflowDeleteRequestMultiError []error +type WorkflowGetResponseMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowDeleteRequestMultiError) Error() string { +func (m WorkflowGetResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -3209,803 +3614,11 @@ func (m WorkflowDeleteRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowDeleteRequestMultiError) AllErrors() []error { return m } +func (m WorkflowGetResponseMultiError) AllErrors() []error { return m } -// WorkflowDeleteRequestValidationError is the validation error returned by -// WorkflowDeleteRequest.Validate if the designated constraints aren't met. -type WorkflowDeleteRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowDeleteRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowDeleteRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowDeleteRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowDeleteRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowDeleteRequestValidationError) ErrorName() string { - return "WorkflowDeleteRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowDeleteRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowDeleteRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowDeleteRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowDeleteRequestValidationError{} - -// Validate checks the field values on WorkflowDeleteResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowDeleteResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowDeleteResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowDeleteResponseMultiError, or nil if none found. -func (m *WorkflowDeleteResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowDeleteResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.Name != nil { - // no validation rules for Name - } - - if m.Message != nil { - // no validation rules for Message - } - - if len(errors) > 0 { - return WorkflowDeleteResponseMultiError(errors) - } - - return nil -} - -// WorkflowDeleteResponseMultiError is an error wrapping multiple validation -// errors returned by WorkflowDeleteResponse.ValidateAll() if the designated -// constraints aren't met. -type WorkflowDeleteResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowDeleteResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowDeleteResponseMultiError) AllErrors() []error { return m } - -// WorkflowDeleteResponseValidationError is the validation error returned by -// WorkflowDeleteResponse.Validate if the designated constraints aren't met. -type WorkflowDeleteResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowDeleteResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowDeleteResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowDeleteResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowDeleteResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowDeleteResponseValidationError) ErrorName() string { - return "WorkflowDeleteResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowDeleteResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowDeleteResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowDeleteResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowDeleteResponseValidationError{} - -// Validate checks the field values on WorkflowGetRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowGetRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowGetRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowGetRequestMultiError, or nil if none found. -func (m *WorkflowGetRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowGetRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.WorkflowName != nil { - // no validation rules for WorkflowName - } - - if m.Namespace != nil { - // no validation rules for Namespace - } - - if len(errors) > 0 { - return WorkflowGetRequestMultiError(errors) - } - - return nil -} - -// WorkflowGetRequestMultiError is an error wrapping multiple validation errors -// returned by WorkflowGetRequest.ValidateAll() if the designated constraints -// aren't met. -type WorkflowGetRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowGetRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowGetRequestMultiError) AllErrors() []error { return m } - -// WorkflowGetRequestValidationError is the validation error returned by -// WorkflowGetRequest.Validate if the designated constraints aren't met. -type WorkflowGetRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowGetRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowGetRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowGetRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowGetRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowGetRequestValidationError) ErrorName() string { - return "WorkflowGetRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowGetRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowGetRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowGetRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowGetRequestValidationError{} - -// Validate checks the field values on WorkflowGetResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowGetResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowGetResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowGetResponseMultiError, or nil if none found. -func (m *WorkflowGetResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowGetResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.Name != nil { - // no validation rules for Name - } - - if m.Message != nil { - // no validation rules for Message - } - - if len(errors) > 0 { - return WorkflowGetResponseMultiError(errors) - } - - return nil -} - -// WorkflowGetResponseMultiError is an error wrapping multiple validation -// errors returned by WorkflowGetResponse.ValidateAll() if the designated -// constraints aren't met. -type WorkflowGetResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowGetResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowGetResponseMultiError) AllErrors() []error { return m } - -// WorkflowGetResponseValidationError is the validation error returned by -// WorkflowGetResponse.Validate if the designated constraints aren't met. -type WorkflowGetResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowGetResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowGetResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowGetResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowGetResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowGetResponseValidationError) ErrorName() string { - return "WorkflowGetResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowGetResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowGetResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowGetResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowGetResponseValidationError{} - -// Validate checks the field values on WorkflowListRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowListRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowListRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowListRequestMultiError, or nil if none found. -func (m *WorkflowListRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowListRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.Namespace != nil { - // no validation rules for Namespace - } - - if len(errors) > 0 { - return WorkflowListRequestMultiError(errors) - } - - return nil -} - -// WorkflowListRequestMultiError is an error wrapping multiple validation -// errors returned by WorkflowListRequest.ValidateAll() if the designated -// constraints aren't met. -type WorkflowListRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowListRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowListRequestMultiError) AllErrors() []error { return m } - -// WorkflowListRequestValidationError is the validation error returned by -// WorkflowListRequest.Validate if the designated constraints aren't met. -type WorkflowListRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowListRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowListRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowListRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowListRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowListRequestValidationError) ErrorName() string { - return "WorkflowListRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowListRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowListRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowListRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowListRequestValidationError{} - -// Validate checks the field values on WorkflowListResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowListResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowListResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowListResponseMultiError, or nil if none found. -func (m *WorkflowListResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowListResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - for idx, item := range m.GetWorkflows() { - _, _ = idx, item - - if all { - switch v := interface{}(item).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowListResponseValidationError{ - field: fmt.Sprintf("Workflows[%v]", idx), - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, WorkflowListResponseValidationError{ - field: fmt.Sprintf("Workflows[%v]", idx), - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return WorkflowListResponseValidationError{ - field: fmt.Sprintf("Workflows[%v]", idx), - reason: "embedded message failed validation", - cause: err, - } - } - } - - } - - if len(errors) > 0 { - return WorkflowListResponseMultiError(errors) - } - - return nil -} - -// WorkflowListResponseMultiError is an error wrapping multiple validation -// errors returned by WorkflowListResponse.ValidateAll() if the designated -// constraints aren't met. -type WorkflowListResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowListResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowListResponseMultiError) AllErrors() []error { return m } - -// WorkflowListResponseValidationError is the validation error returned by -// WorkflowListResponse.Validate if the designated constraints aren't met. -type WorkflowListResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowListResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowListResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowListResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowListResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowListResponseValidationError) ErrorName() string { - return "WorkflowListResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowListResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowListResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowListResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowListResponseValidationError{} - -// Validate checks the field values on WorkflowCreationError with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowCreationError) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowCreationError with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowCreationErrorMultiError, or nil if none found. -func (m *WorkflowCreationError) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowCreationError) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.Name != nil { - // no validation rules for Name - } - - if m.Message != nil { - // no validation rules for Message - } - - if len(errors) > 0 { - return WorkflowCreationErrorMultiError(errors) - } - - return nil -} - -// WorkflowCreationErrorMultiError is an error wrapping multiple validation -// errors returned by WorkflowCreationError.ValidateAll() if the designated -// constraints aren't met. -type WorkflowCreationErrorMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowCreationErrorMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowCreationErrorMultiError) AllErrors() []error { return m } - -// WorkflowCreationErrorValidationError is the validation error returned by -// WorkflowCreationError.Validate if the designated constraints aren't met. -type WorkflowCreationErrorValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowCreationErrorValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowCreationErrorValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowCreationErrorValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowCreationErrorValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowCreationErrorValidationError) ErrorName() string { - return "WorkflowCreationErrorValidationError" -} - -// Error satisfies the builtin error interface -func (e WorkflowCreationErrorValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowCreationError.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowCreationErrorValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowCreationErrorValidationError{} - -// Validate checks the field values on WorkflowUpdateError with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowUpdateError) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on WorkflowUpdateError with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowUpdateErrorMultiError, or nil if none found. -func (m *WorkflowUpdateError) ValidateAll() error { - return m.validate(true) -} - -func (m *WorkflowUpdateError) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if m.Name != nil { - // no validation rules for Name - } - - if m.Message != nil { - // no validation rules for Message - } - - if len(errors) > 0 { - return WorkflowUpdateErrorMultiError(errors) - } - - return nil -} - -// WorkflowUpdateErrorMultiError is an error wrapping multiple validation -// errors returned by WorkflowUpdateError.ValidateAll() if the designated -// constraints aren't met. -type WorkflowUpdateErrorMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowUpdateErrorMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowUpdateErrorMultiError) AllErrors() []error { return m } - -// WorkflowUpdateErrorValidationError is the validation error returned by -// WorkflowUpdateError.Validate if the designated constraints aren't met. -type WorkflowUpdateErrorValidationError struct { +// WorkflowGetResponseValidationError is the validation error returned by +// WorkflowGetResponse.Validate if the designated constraints aren't met. +type WorkflowGetResponseValidationError struct { field string reason string cause error @@ -4013,24 +3626,24 @@ type WorkflowUpdateErrorValidationError struct { } // Field function returns field value. -func (e WorkflowUpdateErrorValidationError) Field() string { return e.field } +func (e WorkflowGetResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowUpdateErrorValidationError) Reason() string { return e.reason } +func (e WorkflowGetResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowUpdateErrorValidationError) Cause() error { return e.cause } +func (e WorkflowGetResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowUpdateErrorValidationError) Key() bool { return e.key } +func (e WorkflowGetResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowUpdateErrorValidationError) ErrorName() string { - return "WorkflowUpdateErrorValidationError" +func (e WorkflowGetResponseValidationError) ErrorName() string { + return "WorkflowGetResponseValidationError" } // Error satisfies the builtin error interface -func (e WorkflowUpdateErrorValidationError) Error() string { +func (e WorkflowGetResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -4042,14 +3655,14 @@ func (e WorkflowUpdateErrorValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowUpdateError.%s: %s%s", + "invalid %sWorkflowGetResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowUpdateErrorValidationError{} +var _ error = WorkflowGetResponseValidationError{} var _ interface { Field() string @@ -4057,52 +3670,68 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowUpdateErrorValidationError{} +} = WorkflowGetResponseValidationError{} -// Validate checks the field values on WorkflowDeleteError with the rules +// Validate checks the field values on WorkflowListRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *WorkflowDeleteError) Validate() error { +func (m *WorkflowListRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowDeleteError with the rules +// ValidateAll checks the field values on WorkflowListRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowDeleteErrorMultiError, or nil if none found. -func (m *WorkflowDeleteError) ValidateAll() error { +// WorkflowListRequestMultiError, or nil if none found. +func (m *WorkflowListRequest) ValidateAll() error { return m.validate(true) } -func (m *WorkflowDeleteError) validate(all bool) error { +func (m *WorkflowListRequest) validate(all bool) error { if m == nil { return nil } var errors []error - if m.Name != nil { - // no validation rules for Name - } + if m.WorkspaceId != nil { + + if err := m._validateUuid(m.GetWorkspaceId()); err != nil { + err = WorkflowListRequestValidationError{ + field: "WorkspaceId", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } - if m.Message != nil { - // no validation rules for Message } if len(errors) > 0 { - return WorkflowDeleteErrorMultiError(errors) + return WorkflowListRequestMultiError(errors) + } + + return nil +} + +func (m *WorkflowListRequest) _validateUuid(uuid string) error { + if matched := _workflow_uuidPattern.MatchString(uuid); !matched { + return errors.New("invalid uuid format") } return nil } -// WorkflowDeleteErrorMultiError is an error wrapping multiple validation -// errors returned by WorkflowDeleteError.ValidateAll() if the designated +// WorkflowListRequestMultiError is an error wrapping multiple validation +// errors returned by WorkflowListRequest.ValidateAll() if the designated // constraints aren't met. -type WorkflowDeleteErrorMultiError []error +type WorkflowListRequestMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowDeleteErrorMultiError) Error() string { +func (m WorkflowListRequestMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -4111,11 +3740,11 @@ func (m WorkflowDeleteErrorMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowDeleteErrorMultiError) AllErrors() []error { return m } +func (m WorkflowListRequestMultiError) AllErrors() []error { return m } -// WorkflowDeleteErrorValidationError is the validation error returned by -// WorkflowDeleteError.Validate if the designated constraints aren't met. -type WorkflowDeleteErrorValidationError struct { +// WorkflowListRequestValidationError is the validation error returned by +// WorkflowListRequest.Validate if the designated constraints aren't met. +type WorkflowListRequestValidationError struct { field string reason string cause error @@ -4123,24 +3752,24 @@ type WorkflowDeleteErrorValidationError struct { } // Field function returns field value. -func (e WorkflowDeleteErrorValidationError) Field() string { return e.field } +func (e WorkflowListRequestValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowDeleteErrorValidationError) Reason() string { return e.reason } +func (e WorkflowListRequestValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowDeleteErrorValidationError) Cause() error { return e.cause } +func (e WorkflowListRequestValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowDeleteErrorValidationError) Key() bool { return e.key } +func (e WorkflowListRequestValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowDeleteErrorValidationError) ErrorName() string { - return "WorkflowDeleteErrorValidationError" +func (e WorkflowListRequestValidationError) ErrorName() string { + return "WorkflowListRequestValidationError" } // Error satisfies the builtin error interface -func (e WorkflowDeleteErrorValidationError) Error() string { +func (e WorkflowListRequestValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -4152,14 +3781,14 @@ func (e WorkflowDeleteErrorValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowDeleteError.%s: %s%s", + "invalid %sWorkflowListRequest.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowDeleteErrorValidationError{} +var _ error = WorkflowListRequestValidationError{} var _ interface { Field() string @@ -4167,160 +3796,111 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowDeleteErrorValidationError{} +} = WorkflowListRequestValidationError{} -// Validate checks the field values on WorkflowGetError with the rules defined -// in the proto definition for this message. If any rules are violated, the -// first error encountered is returned, or nil if there are no violations. -func (m *WorkflowGetError) Validate() error { +// Validate checks the field values on WorkflowListResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkflowListResponse) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on WorkflowGetError with the rules +// ValidateAll checks the field values on WorkflowListResponse with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// WorkflowGetErrorMultiError, or nil if none found. -func (m *WorkflowGetError) ValidateAll() error { +// WorkflowListResponseMultiError, or nil if none found. +func (m *WorkflowListResponse) ValidateAll() error { return m.validate(true) } -func (m *WorkflowGetError) validate(all bool) error { +func (m *WorkflowListResponse) validate(all bool) error { if m == nil { return nil } var errors []error - if m.Name != nil { - // no validation rules for Name - } - - if m.Message != nil { - // no validation rules for Message - } - - if len(errors) > 0 { - return WorkflowGetErrorMultiError(errors) - } - - return nil -} - -// WorkflowGetErrorMultiError is an error wrapping multiple validation errors -// returned by WorkflowGetError.ValidateAll() if the designated constraints -// aren't met. -type WorkflowGetErrorMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m WorkflowGetErrorMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m WorkflowGetErrorMultiError) AllErrors() []error { return m } - -// WorkflowGetErrorValidationError is the validation error returned by -// WorkflowGetError.Validate if the designated constraints aren't met. -type WorkflowGetErrorValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e WorkflowGetErrorValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e WorkflowGetErrorValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e WorkflowGetErrorValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e WorkflowGetErrorValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e WorkflowGetErrorValidationError) ErrorName() string { return "WorkflowGetErrorValidationError" } - -// Error satisfies the builtin error interface -func (e WorkflowGetErrorValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sWorkflowGetError.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = WorkflowGetErrorValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = WorkflowGetErrorValidationError{} - -// Validate checks the field values on WorkflowListError with the rules defined -// in the proto definition for this message. If any rules are violated, the -// first error encountered is returned, or nil if there are no violations. -func (m *WorkflowListError) Validate() error { - return m.validate(false) -} + for idx, item := range m.GetWorkflows() { + _, _ = idx, item -// ValidateAll checks the field values on WorkflowListError with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// WorkflowListErrorMultiError, or nil if none found. -func (m *WorkflowListError) ValidateAll() error { - return m.validate(true) -} + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowListResponseValidationError{ + field: fmt.Sprintf("Workflows[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } -func (m *WorkflowListError) validate(all bool) error { - if m == nil { - return nil } - var errors []error + if m.Error != nil { - if m.Name != nil { - // no validation rules for Name - } + if all { + switch v := interface{}(m.GetError()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowListResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetError()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowListResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + } + } + } - if m.Message != nil { - // no validation rules for Message } if len(errors) > 0 { - return WorkflowListErrorMultiError(errors) + return WorkflowListResponseMultiError(errors) } return nil } -// WorkflowListErrorMultiError is an error wrapping multiple validation errors -// returned by WorkflowListError.ValidateAll() if the designated constraints -// aren't met. -type WorkflowListErrorMultiError []error +// WorkflowListResponseMultiError is an error wrapping multiple validation +// errors returned by WorkflowListResponse.ValidateAll() if the designated +// constraints aren't met. +type WorkflowListResponseMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m WorkflowListErrorMultiError) Error() string { +func (m WorkflowListResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -4329,11 +3909,11 @@ func (m WorkflowListErrorMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m WorkflowListErrorMultiError) AllErrors() []error { return m } +func (m WorkflowListResponseMultiError) AllErrors() []error { return m } -// WorkflowListErrorValidationError is the validation error returned by -// WorkflowListError.Validate if the designated constraints aren't met. -type WorkflowListErrorValidationError struct { +// WorkflowListResponseValidationError is the validation error returned by +// WorkflowListResponse.Validate if the designated constraints aren't met. +type WorkflowListResponseValidationError struct { field string reason string cause error @@ -4341,24 +3921,24 @@ type WorkflowListErrorValidationError struct { } // Field function returns field value. -func (e WorkflowListErrorValidationError) Field() string { return e.field } +func (e WorkflowListResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e WorkflowListErrorValidationError) Reason() string { return e.reason } +func (e WorkflowListResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e WorkflowListErrorValidationError) Cause() error { return e.cause } +func (e WorkflowListResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e WorkflowListErrorValidationError) Key() bool { return e.key } +func (e WorkflowListResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e WorkflowListErrorValidationError) ErrorName() string { - return "WorkflowListErrorValidationError" +func (e WorkflowListResponseValidationError) ErrorName() string { + return "WorkflowListResponseValidationError" } // Error satisfies the builtin error interface -func (e WorkflowListErrorValidationError) Error() string { +func (e WorkflowListResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -4370,14 +3950,14 @@ func (e WorkflowListErrorValidationError) Error() string { } return fmt.Sprintf( - "invalid %sWorkflowListError.%s: %s%s", + "invalid %sWorkflowListResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = WorkflowListErrorValidationError{} +var _ error = WorkflowListResponseValidationError{} var _ interface { Field() string @@ -4385,4 +3965,4 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = WorkflowListErrorValidationError{} +} = WorkflowListResponseValidationError{} diff --git a/protos/workflow.proto b/protos/workflow.proto index 9a93365..2b3fbfa 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -6,6 +6,19 @@ option go_package = "github.com/jupyter-naas/naas-models/go/workflow"; import "validate.proto"; +/** +* Errors +*/ +message WorkflowResponseError { + optional WorkflowError code = 1; + optional string message = 2; +} + +enum WorkflowError{ + WORKFLOW_NO_ERROR = 0; + INTERNAL_SERVER_ERROR = 1000; +} + /** * Argo workflow custom resources */ @@ -45,8 +58,10 @@ message Parameter { } message Arguments { - map parameters = 1; - map artifacts = 2; + //map parameters = 1; + repeated Parameter parameters = 1; + //map artifacts = 2; + repeated Artifact artifacts = 2; } message DagTasks { @@ -71,8 +86,12 @@ message ScriptTemplate { message ContainerTemplate { string name = 1; string image = 2; - map command = 3; - map args = 4; + repeated string command = 3; + repeated string args = 4; + //map command = 3; + //map args = 4; + //optional string command = 3; + //optional string args = 4; } message Template { @@ -82,14 +101,14 @@ message Template { optional DagTemplate dag = 4; optional ScriptTemplate script = 5; optional string ttlStrategy = 6; - optional string container = 7; + optional ContainerTemplate container = 7; optional string podGC = 8; map metadata = 9; } message Spec { optional Arguments arguments = 1; - string entrypoint = 2; + optional string entrypoint = 2; repeated Template templates = 3; } @@ -100,6 +119,15 @@ message Metadata { map labels = 4; } +message WorkflowStatus { + optional string name = 1; + optional string phase = 2; + optional string startedAt = 3; + optional string finishedAt = 4; + optional string progress = 5; + optional string outputs = 6; // #TODO +} + message Workflow { Metadata metadata = 1; Spec spec = 2; @@ -125,89 +153,46 @@ message CronWorkflow { * Argo workflow CRUD resources */ -message WorkflowCreation { +message WorkflowCreationRequest { optional string name = 1; optional string description = 2; optional string user_uid = 3 [(validate.rules).string.uuid = true]; optional string namespace = 4; optional bool serverDryRun = 5; - optional Workflow workflow = 6; -} - -message WorkflowCreationRequest { - optional string workspace_id = 1 [(validate.rules).string.uuid = true]; - optional WorkflowCreation workflow_creation_request = 2; + optional string token = 6; + optional Workflow workflow = 7; } message WorkflowCreationResponse { - optional string name = 1; - optional string message = 2; -} - -message WorkflowUpdateRequest { - optional string name = 1; - optional string namespace = 2; - optional Workflow workflow = 3; -} - -message WorkflowUpdateResponse { - optional string name = 1; - optional string message = 2; + optional WorkflowStatus workflow = 1; + optional WorkflowError error = 2; } message WorkflowDeleteRequest { - optional string workflow_name = 1; - optional string namespace = 2; + optional string workspace_id = 1 [(validate.rules).string.uuid = true]; + optional string workflow_name = 2; } message WorkflowDeleteResponse { - optional string name = 1; - optional string message = 2; + optional WorkflowStatus workflow = 1; + optional WorkflowError error = 2; } message WorkflowGetRequest { - optional string workflow_name = 1; - optional string namespace = 2; + optional string workspace_id = 1 [(validate.rules).string.uuid = true]; + optional string workflow_name = 2; } message WorkflowGetResponse { - optional string name = 1; - optional string message = 2; + optional WorkflowStatus workflow = 1; + optional WorkflowResponseError error = 2; } message WorkflowListRequest { - optional string namespace = 1; + optional string workspace_id = 1 [(validate.rules).string.uuid = true]; } message WorkflowListResponse { - repeated WorkflowGetResponse workflows = 1; -} - -/** -* Errors -*/ - -message WorkflowCreationError { - optional string name = 1; - optional string message = 2; -} - -message WorkflowUpdateError { - optional string name = 1; - optional string message = 2; -} - -message WorkflowDeleteError { - optional string name = 1; - optional string message = 2; -} - -message WorkflowGetError { - optional string name = 1; - optional string message = 2; -} - -message WorkflowListError { - optional string name = 1; - optional string message = 2; -} + repeated WorkflowStatus workflows = 1; + optional WorkflowResponseError error = 2; +} \ No newline at end of file diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index 34cac6a..9e95536 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -2,12 +2,20 @@ # gen by protobuf_to_pydantic[v0.2.6.2](https://github.com/so1n/protobuf_to_pydantic) # Protobuf Version: 5.26.1 # Pydantic Version: 2.7.1 +from enum import IntEnum from google.protobuf.message import Message # type: ignore from pydantic import BaseModel from pydantic import Field from uuid import UUID import typing +class WorkflowError(IntEnum): + WORKFLOW_NO_ERROR = 0 + INTERNAL_SERVER_ERROR = 1000 + +class WorkflowResponseError(BaseModel): + code: typing.Optional[WorkflowError] = Field(default=0) + message: typing.Optional[str] = Field(default="") class Archive(BaseModel): none: typing.Dict[str, str] = Field(default_factory=dict) @@ -37,8 +45,8 @@ class Outputs(BaseModel): artifacts: typing.List[Artifact] = Field(default_factory=list) class Arguments(BaseModel): - parameters: typing.Dict[str, str] = Field(default_factory=dict) - artifacts: typing.Dict[str, str] = Field(default_factory=dict) + parameters: typing.List[Parameter] = Field(default_factory=list) + artifacts: typing.List[Artifact] = Field(default_factory=list) class DagTasks(BaseModel): name: str = Field(default="") @@ -59,8 +67,8 @@ class ScriptTemplate(BaseModel): class ContainerTemplate(BaseModel): name: str = Field(default="") image: str = Field(default="") - command: typing.Dict[str, str] = Field(default_factory=dict) - args: typing.Dict[str, str] = Field(default_factory=dict) + command: typing.List[str] = Field(default_factory=list) + args: typing.List[str] = Field(default_factory=list) class Template(BaseModel): name: str = Field(default="") @@ -69,13 +77,13 @@ class Template(BaseModel): dag: typing.Optional[DagTemplate] = Field(default=None) script: typing.Optional[ScriptTemplate] = Field(default=None) ttlStrategy: typing.Optional[str] = Field(default="") - container: typing.Optional[str] = Field(default="") + container: typing.Optional[ContainerTemplate] = Field(default=None) podGC: typing.Optional[str] = Field(default="") metadata: typing.Dict[str, str] = Field(default_factory=dict) class Spec(BaseModel): arguments: typing.Optional[Arguments] = Field(default=None) - entrypoint: str = Field(default="") + entrypoint: typing.Optional[str] = Field(default="") templates: typing.List[Template] = Field(default_factory=list) class Metadata(BaseModel): @@ -84,6 +92,14 @@ class Metadata(BaseModel): namespace: typing.Optional[str] = Field(default="") labels: typing.Dict[str, str] = Field(default_factory=dict) +class WorkflowStatus(BaseModel): + name: typing.Optional[str] = Field(default="") + phase: typing.Optional[str] = Field(default="") + startedAt: typing.Optional[str] = Field(default="") + finishedAt: typing.Optional[str] = Field(default="") + progress: typing.Optional[str] = Field(default="") + outputs: typing.Optional[str] = Field(default="") + class Workflow(BaseModel): metadata: Metadata = Field() spec: Spec = Field() @@ -102,69 +118,38 @@ class CronWorkflow(BaseModel): metadata: Metadata = Field() spec: CronSpec = Field() -class WorkflowCreation(BaseModel): +class WorkflowCreationRequest(BaseModel): name: typing.Optional[str] = Field(default="") description: typing.Optional[str] = Field(default="") user_uid: typing.Optional[UUID] = Field(default="") namespace: typing.Optional[str] = Field(default="") serverDryRun: typing.Optional[bool] = Field(default=False) + token: typing.Optional[str] = Field(default="") workflow: typing.Optional[Workflow] = Field(default=None) -class WorkflowCreationRequest(BaseModel): - workspace_id: typing.Optional[UUID] = Field(default="") - workflow_creation_request: typing.Optional[WorkflowCreation] = Field(default=None) - class WorkflowCreationResponse(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") - -class WorkflowUpdateRequest(BaseModel): - name: typing.Optional[str] = Field(default="") - namespace: typing.Optional[str] = Field(default="") - workflow: typing.Optional[Workflow] = Field(default=None) - -class WorkflowUpdateResponse(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") + workflow: typing.Optional[WorkflowStatus] = Field(default=None) + error: typing.Optional[WorkflowError] = Field(default=0) class WorkflowDeleteRequest(BaseModel): + workspace_id: typing.Optional[UUID] = Field(default="") workflow_name: typing.Optional[str] = Field(default="") - namespace: typing.Optional[str] = Field(default="") class WorkflowDeleteResponse(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") + workflow: typing.Optional[WorkflowStatus] = Field(default=None) + error: typing.Optional[WorkflowError] = Field(default=0) class WorkflowGetRequest(BaseModel): + workspace_id: typing.Optional[UUID] = Field(default="") workflow_name: typing.Optional[str] = Field(default="") - namespace: typing.Optional[str] = Field(default="") class WorkflowGetResponse(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") + workflow: typing.Optional[WorkflowStatus] = Field(default=None) + error: typing.Optional[WorkflowResponseError] = Field(default=None) class WorkflowListRequest(BaseModel): - namespace: typing.Optional[str] = Field(default="") + workspace_id: typing.Optional[UUID] = Field(default="") class WorkflowListResponse(BaseModel): - workflows: typing.List[WorkflowGetResponse] = Field(default_factory=list) - -class WorkflowCreationError(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") - -class WorkflowUpdateError(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") - -class WorkflowDeleteError(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") - -class WorkflowGetError(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") - -class WorkflowListError(BaseModel): - name: typing.Optional[str] = Field(default="") - message: typing.Optional[str] = Field(default="") + workflows: typing.List[WorkflowStatus] = Field(default_factory=list) + error: typing.Optional[WorkflowResponseError] = Field(default=None) diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index 8f1e4b8..abd2e3e 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"\xe0\x01\n\tArguments\x12\x37\n\nparameters\x18\x01 \x03(\x0b\x32#.workflow.Arguments.ParametersEntry\x12\x35\n\tartifacts\x18\x02 \x03(\x0b\x32\".workflow.Arguments.ArtifactsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x0e\x41rtifactsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"\xfd\x01\n\x11\x43ontainerTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x39\n\x07\x63ommand\x18\x03 \x03(\x0b\x32(.workflow.ContainerTemplate.CommandEntry\x12\x33\n\x04\x61rgs\x18\x04 \x03(\x0b\x32%.workflow.ContainerTemplate.ArgsEntry\x1a.\n\x0c\x43ommandEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbd\x03\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06inputs\x18\x02 \x01(\x0b\x32\x10.workflow.InputsH\x00\x88\x01\x01\x12\'\n\x07outputs\x18\x03 \x01(\x0b\x32\x11.workflow.OutputsH\x01\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x04 \x01(\x0b\x32\x15.workflow.DagTemplateH\x02\x88\x01\x01\x12-\n\x06script\x18\x05 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x03\x88\x01\x01\x12\x18\n\x0bttlStrategy\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x16\n\tcontainer\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x12\n\x05podGC\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x32\n\x08metadata\x18\t \x03(\x0b\x32 .workflow.Template.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_scriptB\x0e\n\x0c_ttlStrategyB\x0c\n\n_containerB\x08\n\x06_podGC\"|\n\x04Spec\x12+\n\targuments\x18\x01 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12\x12\n\nentrypoint\x18\x02 \x01(\t\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_arguments\"\xd7\x01\n\x08Metadata\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cgenerateName\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12.\n\x06labels\x18\x04 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0f\n\r_generateNameB\x0c\n\n_namespace\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\x90\x02\n\x10WorkflowCreation\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12)\n\x08workflow\x18\x06 \x01(\x0b\x32\x12.workflow.WorkflowH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"\xb1\x01\n\x17WorkflowCreationRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x42\n\x19workflow_creation_request\x18\x02 \x01(\x0b\x32\x1a.workflow.WorkflowCreationH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x1c\n\x1a_workflow_creation_request\"X\n\x18WorkflowCreationResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"\x91\x01\n\x15WorkflowUpdateRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12)\n\x08workflow\x18\x03 \x01(\x0b\x32\x12.workflow.WorkflowH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_namespaceB\x0b\n\t_workflow\"V\n\x16WorkflowUpdateResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"k\n\x15WorkflowDeleteRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"V\n\x16WorkflowDeleteResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"h\n\x12WorkflowGetRequest\x12\x1a\n\rworkflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_workflow_nameB\x0c\n\n_namespace\"S\n\x13WorkflowGetResponse\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\";\n\x13WorkflowListRequest\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_namespace\"H\n\x14WorkflowListResponse\x12\x30\n\tworkflows\x18\x01 \x03(\x0b\x32\x1d.workflow.WorkflowGetResponse\"U\n\x15WorkflowCreationError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowUpdateError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"S\n\x13WorkflowDeleteError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"P\n\x10WorkflowGetError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_message\"Q\n\x11WorkflowListError\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\n\n\x08_messageB1Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"n\n\x15WorkflowResponseError\x12*\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"[\n\tArguments\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"O\n\x11\x43ontainerTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\"\xda\x03\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06inputs\x18\x02 \x01(\x0b\x32\x10.workflow.InputsH\x00\x88\x01\x01\x12\'\n\x07outputs\x18\x03 \x01(\x0b\x32\x11.workflow.OutputsH\x01\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x04 \x01(\x0b\x32\x15.workflow.DagTemplateH\x02\x88\x01\x01\x12-\n\x06script\x18\x05 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x03\x88\x01\x01\x12\x18\n\x0bttlStrategy\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x33\n\tcontainer\x18\x07 \x01(\x0b\x32\x1b.workflow.ContainerTemplateH\x05\x88\x01\x01\x12\x12\n\x05podGC\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x32\n\x08metadata\x18\t \x03(\x0b\x32 .workflow.Template.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_scriptB\x0e\n\x0c_ttlStrategyB\x0c\n\n_containerB\x08\n\x06_podGC\"\x90\x01\n\x04Spec\x12+\n\targuments\x18\x01 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12\x17\n\nentrypoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_argumentsB\r\n\x0b_entrypoint\"\xd7\x01\n\x08Metadata\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cgenerateName\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12.\n\x06labels\x18\x04 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0f\n\r_generateNameB\x0c\n\n_namespace\"\xde\x01\n\x0eWorkflowStatus\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05phase\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tstartedAt\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nfinishedAt\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08progress\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07outputs\x18\x06 \x01(\tH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_phaseB\x0c\n\n_startedAtB\r\n\x0b_finishedAtB\x0b\n\t_progressB\n\n\x08_outputs\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\xb5\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x12\n\x05token\x18\x06 \x01(\tH\x05\x88\x01\x01\x12)\n\x08workflow\x18\x07 \x01(\x0b\x32\x12.workflow.WorkflowH\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x08\n\x06_tokenB\x0b\n\t_workflow\"\x8f\x01\n\x18WorkflowCreationResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12+\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"{\n\x15WorkflowDeleteRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x8d\x01\n\x16WorkflowDeleteResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12+\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"x\n\x12WorkflowGetRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x92\x01\n\x13WorkflowGetResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"K\n\x13WorkflowListRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x42\x0f\n\r_workspace_id\"\x82\x01\n\x14WorkflowListResponse\x12+\n\tworkflows\x18\x01 \x03(\x0b\x32\x18.workflow.WorkflowStatus\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error*B\n\rWorkflowError\x12\x15\n\x11WORKFLOW_NO_ERROR\x10\x00\x12\x1a\n\x15INTERNAL_SERVER_ERROR\x10\xe8\x07\x42\x31Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,104 +25,82 @@ _globals['DESCRIPTOR']._serialized_options = b'Z/github.com/jupyter-naas/naas-models/go/workflow' _globals['_ARCHIVE_NONEENTRY']._loaded_options = None _globals['_ARCHIVE_NONEENTRY']._serialized_options = b'8\001' - _globals['_ARGUMENTS_PARAMETERSENTRY']._loaded_options = None - _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_options = b'8\001' - _globals['_ARGUMENTS_ARTIFACTSENTRY']._loaded_options = None - _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_options = b'8\001' _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._loaded_options = None _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_options = b'8\001' - _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._loaded_options = None - _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_options = b'8\001' - _globals['_CONTAINERTEMPLATE_ARGSENTRY']._loaded_options = None - _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_options = b'8\001' _globals['_TEMPLATE_METADATAENTRY']._loaded_options = None _globals['_TEMPLATE_METADATAENTRY']._serialized_options = b'8\001' _globals['_METADATA_LABELSENTRY']._loaded_options = None _globals['_METADATA_LABELSENTRY']._serialized_options = b'8\001' - _globals['_WORKFLOWCREATION'].fields_by_name['user_uid']._loaded_options = None - _globals['_WORKFLOWCREATION'].fields_by_name['user_uid']._serialized_options = b'\372B\005r\003\260\001\001' - _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['workspace_id']._loaded_options = None - _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' - _globals['_ARCHIVE']._serialized_start=44 - _globals['_ARCHIVE']._serialized_end=141 - _globals['_ARCHIVE_NONEENTRY']._serialized_start=98 - _globals['_ARCHIVE_NONEENTRY']._serialized_end=141 - _globals['_ARTIFACTS3']._serialized_start=143 - _globals['_ARTIFACTS3']._serialized_end=213 - _globals['_ARTIFACT']._serialized_start=216 - _globals['_ARTIFACT']._serialized_end=437 - _globals['_INPUTS']._serialized_start=439 - _globals['_INPUTS']._serialized_end=527 - _globals['_OUTPUTS']._serialized_start=529 - _globals['_OUTPUTS']._serialized_end=618 - _globals['_PARAMETER']._serialized_start=620 - _globals['_PARAMETER']._serialized_end=723 - _globals['_ARGUMENTS']._serialized_start=726 - _globals['_ARGUMENTS']._serialized_end=950 - _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_start=851 - _globals['_ARGUMENTS_PARAMETERSENTRY']._serialized_end=900 - _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_start=902 - _globals['_ARGUMENTS_ARTIFACTSENTRY']._serialized_end=950 - _globals['_DAGTASKS']._serialized_start=953 - _globals['_DAGTASKS']._serialized_end=1088 - _globals['_DAGTEMPLATE']._serialized_start=1090 - _globals['_DAGTEMPLATE']._serialized_end=1170 - _globals['_SCRIPTTEMPLATE']._serialized_start=1173 - _globals['_SCRIPTTEMPLATE']._serialized_end=1378 - _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_start=1309 - _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_end=1357 - _globals['_CONTAINERTEMPLATE']._serialized_start=1381 - _globals['_CONTAINERTEMPLATE']._serialized_end=1634 - _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_start=1543 - _globals['_CONTAINERTEMPLATE_COMMANDENTRY']._serialized_end=1589 - _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_start=1591 - _globals['_CONTAINERTEMPLATE_ARGSENTRY']._serialized_end=1634 - _globals['_TEMPLATE']._serialized_start=1637 - _globals['_TEMPLATE']._serialized_end=2082 - _globals['_TEMPLATE_METADATAENTRY']._serialized_start=1953 - _globals['_TEMPLATE_METADATAENTRY']._serialized_end=2000 - _globals['_SPEC']._serialized_start=2084 - _globals['_SPEC']._serialized_end=2208 - _globals['_METADATA']._serialized_start=2211 - _globals['_METADATA']._serialized_end=2426 - _globals['_METADATA_LABELSENTRY']._serialized_start=2341 - _globals['_METADATA_LABELSENTRY']._serialized_end=2386 - _globals['_WORKFLOW']._serialized_start=2428 - _globals['_WORKFLOW']._serialized_end=2506 - _globals['_CRONSPEC']._serialized_start=2509 - _globals['_CRONSPEC']._serialized_end=2883 - _globals['_CRONWORKFLOW']._serialized_start=2885 - _globals['_CRONWORKFLOW']._serialized_end=2971 - _globals['_WORKFLOWCREATION']._serialized_start=2974 - _globals['_WORKFLOWCREATION']._serialized_end=3246 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=3249 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3426 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3428 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3516 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_start=3519 - _globals['_WORKFLOWUPDATEREQUEST']._serialized_end=3664 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_start=3666 - _globals['_WORKFLOWUPDATERESPONSE']._serialized_end=3752 - _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3754 - _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3861 - _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3863 - _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3949 - _globals['_WORKFLOWGETREQUEST']._serialized_start=3951 - _globals['_WORKFLOWGETREQUEST']._serialized_end=4055 - _globals['_WORKFLOWGETRESPONSE']._serialized_start=4057 - _globals['_WORKFLOWGETRESPONSE']._serialized_end=4140 - _globals['_WORKFLOWLISTREQUEST']._serialized_start=4142 - _globals['_WORKFLOWLISTREQUEST']._serialized_end=4201 - _globals['_WORKFLOWLISTRESPONSE']._serialized_start=4203 - _globals['_WORKFLOWLISTRESPONSE']._serialized_end=4275 - _globals['_WORKFLOWCREATIONERROR']._serialized_start=4277 - _globals['_WORKFLOWCREATIONERROR']._serialized_end=4362 - _globals['_WORKFLOWUPDATEERROR']._serialized_start=4364 - _globals['_WORKFLOWUPDATEERROR']._serialized_end=4447 - _globals['_WORKFLOWDELETEERROR']._serialized_start=4449 - _globals['_WORKFLOWDELETEERROR']._serialized_end=4532 - _globals['_WORKFLOWGETERROR']._serialized_start=4534 - _globals['_WORKFLOWGETERROR']._serialized_end=4614 - _globals['_WORKFLOWLISTERROR']._serialized_start=4616 - _globals['_WORKFLOWLISTERROR']._serialized_end=4697 + _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['user_uid']._loaded_options = None + _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['user_uid']._serialized_options = b'\372B\005r\003\260\001\001' + _globals['_WORKFLOWDELETEREQUEST'].fields_by_name['workspace_id']._loaded_options = None + _globals['_WORKFLOWDELETEREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' + _globals['_WORKFLOWGETREQUEST'].fields_by_name['workspace_id']._loaded_options = None + _globals['_WORKFLOWGETREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' + _globals['_WORKFLOWLISTREQUEST'].fields_by_name['workspace_id']._loaded_options = None + _globals['_WORKFLOWLISTREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' + _globals['_WORKFLOWERROR']._serialized_start=4259 + _globals['_WORKFLOWERROR']._serialized_end=4325 + _globals['_WORKFLOWRESPONSEERROR']._serialized_start=44 + _globals['_WORKFLOWRESPONSEERROR']._serialized_end=154 + _globals['_ARCHIVE']._serialized_start=156 + _globals['_ARCHIVE']._serialized_end=253 + _globals['_ARCHIVE_NONEENTRY']._serialized_start=210 + _globals['_ARCHIVE_NONEENTRY']._serialized_end=253 + _globals['_ARTIFACTS3']._serialized_start=255 + _globals['_ARTIFACTS3']._serialized_end=325 + _globals['_ARTIFACT']._serialized_start=328 + _globals['_ARTIFACT']._serialized_end=549 + _globals['_INPUTS']._serialized_start=551 + _globals['_INPUTS']._serialized_end=639 + _globals['_OUTPUTS']._serialized_start=641 + _globals['_OUTPUTS']._serialized_end=730 + _globals['_PARAMETER']._serialized_start=732 + _globals['_PARAMETER']._serialized_end=835 + _globals['_ARGUMENTS']._serialized_start=837 + _globals['_ARGUMENTS']._serialized_end=928 + _globals['_DAGTASKS']._serialized_start=931 + _globals['_DAGTASKS']._serialized_end=1066 + _globals['_DAGTEMPLATE']._serialized_start=1068 + _globals['_DAGTEMPLATE']._serialized_end=1148 + _globals['_SCRIPTTEMPLATE']._serialized_start=1151 + _globals['_SCRIPTTEMPLATE']._serialized_end=1356 + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_start=1287 + _globals['_SCRIPTTEMPLATE_RESOURCESENTRY']._serialized_end=1335 + _globals['_CONTAINERTEMPLATE']._serialized_start=1358 + _globals['_CONTAINERTEMPLATE']._serialized_end=1437 + _globals['_TEMPLATE']._serialized_start=1440 + _globals['_TEMPLATE']._serialized_end=1914 + _globals['_TEMPLATE_METADATAENTRY']._serialized_start=1785 + _globals['_TEMPLATE_METADATAENTRY']._serialized_end=1832 + _globals['_SPEC']._serialized_start=1917 + _globals['_SPEC']._serialized_end=2061 + _globals['_METADATA']._serialized_start=2064 + _globals['_METADATA']._serialized_end=2279 + _globals['_METADATA_LABELSENTRY']._serialized_start=2194 + _globals['_METADATA_LABELSENTRY']._serialized_end=2239 + _globals['_WORKFLOWSTATUS']._serialized_start=2282 + _globals['_WORKFLOWSTATUS']._serialized_end=2504 + _globals['_WORKFLOW']._serialized_start=2506 + _globals['_WORKFLOW']._serialized_end=2584 + _globals['_CRONSPEC']._serialized_start=2587 + _globals['_CRONSPEC']._serialized_end=2961 + _globals['_CRONWORKFLOW']._serialized_start=2963 + _globals['_CRONWORKFLOW']._serialized_end=3049 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=3052 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3361 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3364 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3507 + _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3509 + _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3632 + _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3635 + _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3776 + _globals['_WORKFLOWGETREQUEST']._serialized_start=3778 + _globals['_WORKFLOWGETREQUEST']._serialized_end=3898 + _globals['_WORKFLOWGETRESPONSE']._serialized_start=3901 + _globals['_WORKFLOWGETRESPONSE']._serialized_end=4047 + _globals['_WORKFLOWLISTREQUEST']._serialized_start=4049 + _globals['_WORKFLOWLISTREQUEST']._serialized_end=4124 + _globals['_WORKFLOWLISTRESPONSE']._serialized_start=4127 + _globals['_WORKFLOWLISTRESPONSE']._serialized_end=4257 # @@protoc_insertion_point(module_scope) From 5ec0d42eea202e362bd87b3016be5bf6482c7b86 Mon Sep 17 00:00:00 2001 From: "Loic L." Date: Thu, 23 May 2024 14:23:40 +0200 Subject: [PATCH 11/11] fix: remove generateName may conflict with name --- .../naas-models/go/workflow/workflow.pb.go | 574 +++++++----------- .../go/workflow/workflow.pb.validate.go | 280 ++------- protos/workflow.proto | 26 +- python/naas_models/pydantic/workflow_p2p.py | 12 +- python/naas_models/workflow_pb2.py | 60 +- 5 files changed, 329 insertions(+), 623 deletions(-) diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go index 8da6bc7..c0914b5 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.go @@ -991,10 +991,9 @@ type Metadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - GenerateName *string `protobuf:"bytes,2,opt,name=generateName,proto3,oneof" json:"generateName,omitempty"` - Namespace *string `protobuf:"bytes,3,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + Namespace *string `protobuf:"bytes,2,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Metadata) Reset() { @@ -1036,13 +1035,6 @@ func (x *Metadata) GetName() string { return "" } -func (x *Metadata) GetGenerateName() string { - if x != nil && x.GenerateName != nil { - return *x.GenerateName - } - return "" -} - func (x *Metadata) GetNamespace() string { if x != nil && x.Namespace != nil { return *x.Namespace @@ -1067,7 +1059,7 @@ type WorkflowStatus struct { StartedAt *string `protobuf:"bytes,3,opt,name=startedAt,proto3,oneof" json:"startedAt,omitempty"` FinishedAt *string `protobuf:"bytes,4,opt,name=finishedAt,proto3,oneof" json:"finishedAt,omitempty"` Progress *string `protobuf:"bytes,5,opt,name=progress,proto3,oneof" json:"progress,omitempty"` - Outputs *string `protobuf:"bytes,6,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` // #TODO + Outputs *string `protobuf:"bytes,6,opt,name=outputs,proto3,oneof" json:"outputs,omitempty"` } func (x *WorkflowStatus) Reset() { @@ -1149,7 +1141,7 @@ type Workflow struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` Spec *Spec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` } @@ -1302,61 +1294,6 @@ func (x *CronSpec) GetWorkflowSpec() *Spec { return nil } -type CronWorkflow struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Spec *CronSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` -} - -func (x *CronWorkflow) Reset() { - *x = CronWorkflow{} - if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CronWorkflow) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CronWorkflow) ProtoMessage() {} - -func (x *CronWorkflow) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CronWorkflow.ProtoReflect.Descriptor instead. -func (*CronWorkflow) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{18} -} - -func (x *CronWorkflow) GetMetadata() *Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *CronWorkflow) GetSpec() *CronSpec { - if x != nil { - return x.Spec - } - return nil -} - type WorkflowCreationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1364,17 +1301,14 @@ type WorkflowCreationRequest struct { Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` - UserUid *string `protobuf:"bytes,3,opt,name=user_uid,json=userUid,proto3,oneof" json:"user_uid,omitempty"` - Namespace *string `protobuf:"bytes,4,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - ServerDryRun *bool `protobuf:"varint,5,opt,name=serverDryRun,proto3,oneof" json:"serverDryRun,omitempty"` - Token *string `protobuf:"bytes,6,opt,name=token,proto3,oneof" json:"token,omitempty"` - Workflow *Workflow `protobuf:"bytes,7,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + ServerDryRun *bool `protobuf:"varint,3,opt,name=serverDryRun,proto3,oneof" json:"serverDryRun,omitempty"` + Workflow *Workflow `protobuf:"bytes,4,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` } func (x *WorkflowCreationRequest) Reset() { *x = WorkflowCreationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1387,7 +1321,7 @@ func (x *WorkflowCreationRequest) String() string { func (*WorkflowCreationRequest) ProtoMessage() {} func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[19] + mi := &file_workflow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1400,7 +1334,7 @@ func (x *WorkflowCreationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationRequest.ProtoReflect.Descriptor instead. func (*WorkflowCreationRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{19} + return file_workflow_proto_rawDescGZIP(), []int{18} } func (x *WorkflowCreationRequest) GetName() string { @@ -1417,20 +1351,6 @@ func (x *WorkflowCreationRequest) GetDescription() string { return "" } -func (x *WorkflowCreationRequest) GetUserUid() string { - if x != nil && x.UserUid != nil { - return *x.UserUid - } - return "" -} - -func (x *WorkflowCreationRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - func (x *WorkflowCreationRequest) GetServerDryRun() bool { if x != nil && x.ServerDryRun != nil { return *x.ServerDryRun @@ -1438,13 +1358,6 @@ func (x *WorkflowCreationRequest) GetServerDryRun() bool { return false } -func (x *WorkflowCreationRequest) GetToken() string { - if x != nil && x.Token != nil { - return *x.Token - } - return "" -} - func (x *WorkflowCreationRequest) GetWorkflow() *Workflow { if x != nil { return x.Workflow @@ -1457,14 +1370,14 @@ type WorkflowCreationResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Workflow *WorkflowStatus `protobuf:"bytes,1,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` - Error *WorkflowError `protobuf:"varint,2,opt,name=error,proto3,enum=workflow.WorkflowError,oneof" json:"error,omitempty"` + Workflow *WorkflowStatus `protobuf:"bytes,1,opt,name=workflow,proto3,oneof" json:"workflow,omitempty"` + Error *WorkflowResponseError `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` } func (x *WorkflowCreationResponse) Reset() { *x = WorkflowCreationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1477,7 +1390,7 @@ func (x *WorkflowCreationResponse) String() string { func (*WorkflowCreationResponse) ProtoMessage() {} func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[20] + mi := &file_workflow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1490,7 +1403,7 @@ func (x *WorkflowCreationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowCreationResponse.ProtoReflect.Descriptor instead. func (*WorkflowCreationResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{20} + return file_workflow_proto_rawDescGZIP(), []int{19} } func (x *WorkflowCreationResponse) GetWorkflow() *WorkflowStatus { @@ -1500,11 +1413,11 @@ func (x *WorkflowCreationResponse) GetWorkflow() *WorkflowStatus { return nil } -func (x *WorkflowCreationResponse) GetError() WorkflowError { - if x != nil && x.Error != nil { - return *x.Error +func (x *WorkflowCreationResponse) GetError() *WorkflowResponseError { + if x != nil { + return x.Error } - return WorkflowError_WORKFLOW_NO_ERROR + return nil } type WorkflowDeleteRequest struct { @@ -1519,7 +1432,7 @@ type WorkflowDeleteRequest struct { func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1532,7 +1445,7 @@ func (x *WorkflowDeleteRequest) String() string { func (*WorkflowDeleteRequest) ProtoMessage() {} func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[21] + mi := &file_workflow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1545,7 +1458,7 @@ func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead. func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{21} + return file_workflow_proto_rawDescGZIP(), []int{20} } func (x *WorkflowDeleteRequest) GetWorkspaceId() string { @@ -1574,7 +1487,7 @@ type WorkflowDeleteResponse struct { func (x *WorkflowDeleteResponse) Reset() { *x = WorkflowDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1587,7 +1500,7 @@ func (x *WorkflowDeleteResponse) String() string { func (*WorkflowDeleteResponse) ProtoMessage() {} func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[22] + mi := &file_workflow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1600,7 +1513,7 @@ func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead. func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{22} + return file_workflow_proto_rawDescGZIP(), []int{21} } func (x *WorkflowDeleteResponse) GetWorkflow() *WorkflowStatus { @@ -1629,7 +1542,7 @@ type WorkflowGetRequest struct { func (x *WorkflowGetRequest) Reset() { *x = WorkflowGetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1642,7 +1555,7 @@ func (x *WorkflowGetRequest) String() string { func (*WorkflowGetRequest) ProtoMessage() {} func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[23] + mi := &file_workflow_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1655,7 +1568,7 @@ func (x *WorkflowGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetRequest.ProtoReflect.Descriptor instead. func (*WorkflowGetRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{23} + return file_workflow_proto_rawDescGZIP(), []int{22} } func (x *WorkflowGetRequest) GetWorkspaceId() string { @@ -1684,7 +1597,7 @@ type WorkflowGetResponse struct { func (x *WorkflowGetResponse) Reset() { *x = WorkflowGetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1697,7 +1610,7 @@ func (x *WorkflowGetResponse) String() string { func (*WorkflowGetResponse) ProtoMessage() {} func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[24] + mi := &file_workflow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1710,7 +1623,7 @@ func (x *WorkflowGetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowGetResponse.ProtoReflect.Descriptor instead. func (*WorkflowGetResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{24} + return file_workflow_proto_rawDescGZIP(), []int{23} } func (x *WorkflowGetResponse) GetWorkflow() *WorkflowStatus { @@ -1738,7 +1651,7 @@ type WorkflowListRequest struct { func (x *WorkflowListRequest) Reset() { *x = WorkflowListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1751,7 +1664,7 @@ func (x *WorkflowListRequest) String() string { func (*WorkflowListRequest) ProtoMessage() {} func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[25] + mi := &file_workflow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1764,7 +1677,7 @@ func (x *WorkflowListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListRequest.ProtoReflect.Descriptor instead. func (*WorkflowListRequest) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{25} + return file_workflow_proto_rawDescGZIP(), []int{24} } func (x *WorkflowListRequest) GetWorkspaceId() string { @@ -1786,7 +1699,7 @@ type WorkflowListResponse struct { func (x *WorkflowListResponse) Reset() { *x = WorkflowListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1799,7 +1712,7 @@ func (x *WorkflowListResponse) String() string { func (*WorkflowListResponse) ProtoMessage() {} func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { - mi := &file_workflow_proto_msgTypes[26] + mi := &file_workflow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1812,7 +1725,7 @@ func (x *WorkflowListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowListResponse.ProtoReflect.Descriptor instead. func (*WorkflowListResponse) Descriptor() ([]byte, []int) { - return file_workflow_proto_rawDescGZIP(), []int{26} + return file_workflow_proto_rawDescGZIP(), []int{25} } func (x *WorkflowListResponse) GetWorkflows() []*WorkflowStatus { @@ -1987,182 +1900,165 @@ var file_workflow_proto_rawDesc = []byte{ 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, - 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x66, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x05, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x68, - 0x61, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, - 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, - 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, - 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, - 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, - 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, - 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, - 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, - 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x68, 0x61, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, + 0x70, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x33, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, + 0x73, 0x70, 0x65, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x81, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, - 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x66, 0x0a, - 0x0c, 0x43, 0x72, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xfb, 0x02, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x1a, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, + 0x16, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1a, 0x0a, + 0x18, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, + 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x4a, 0x6f, + 0x62, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x02, 0x52, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, - 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x06, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x22, 0xa0, 0x01, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, - 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x9e, 0x01, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, + 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x22, 0x93, 0x01, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, - 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, 0x0a, 0x13, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, - 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x36, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x42, 0x0a, - 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x15, - 0x0a, 0x11, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, - 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xe8, - 0x07, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, - 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x48, 0x03, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, + 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x16, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x17, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x93, 0x01, 0x0a, 0x12, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, + 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, + 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, + 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x42, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x15, 0x0a, 0x11, 0x57, 0x4f, 0x52, + 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, + 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x31, 0x5a, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x70, 0x79, 0x74, + 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, 0x2d, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2178,7 +2074,7 @@ func file_workflow_proto_rawDescGZIP() []byte { } var file_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_workflow_proto_goTypes = []interface{}{ (WorkflowError)(0), // 0: workflow.WorkflowError (*WorkflowResponseError)(nil), // 1: workflow.WorkflowResponseError @@ -2199,23 +2095,22 @@ var file_workflow_proto_goTypes = []interface{}{ (*WorkflowStatus)(nil), // 16: workflow.WorkflowStatus (*Workflow)(nil), // 17: workflow.Workflow (*CronSpec)(nil), // 18: workflow.CronSpec - (*CronWorkflow)(nil), // 19: workflow.CronWorkflow - (*WorkflowCreationRequest)(nil), // 20: workflow.WorkflowCreationRequest - (*WorkflowCreationResponse)(nil), // 21: workflow.WorkflowCreationResponse - (*WorkflowDeleteRequest)(nil), // 22: workflow.WorkflowDeleteRequest - (*WorkflowDeleteResponse)(nil), // 23: workflow.WorkflowDeleteResponse - (*WorkflowGetRequest)(nil), // 24: workflow.WorkflowGetRequest - (*WorkflowGetResponse)(nil), // 25: workflow.WorkflowGetResponse - (*WorkflowListRequest)(nil), // 26: workflow.WorkflowListRequest - (*WorkflowListResponse)(nil), // 27: workflow.WorkflowListResponse - nil, // 28: workflow.Archive.NoneEntry - nil, // 29: workflow.ScriptTemplate.ResourcesEntry - nil, // 30: workflow.Template.MetadataEntry - nil, // 31: workflow.Metadata.LabelsEntry + (*WorkflowCreationRequest)(nil), // 19: workflow.WorkflowCreationRequest + (*WorkflowCreationResponse)(nil), // 20: workflow.WorkflowCreationResponse + (*WorkflowDeleteRequest)(nil), // 21: workflow.WorkflowDeleteRequest + (*WorkflowDeleteResponse)(nil), // 22: workflow.WorkflowDeleteResponse + (*WorkflowGetRequest)(nil), // 23: workflow.WorkflowGetRequest + (*WorkflowGetResponse)(nil), // 24: workflow.WorkflowGetResponse + (*WorkflowListRequest)(nil), // 25: workflow.WorkflowListRequest + (*WorkflowListResponse)(nil), // 26: workflow.WorkflowListResponse + nil, // 27: workflow.Archive.NoneEntry + nil, // 28: workflow.ScriptTemplate.ResourcesEntry + nil, // 29: workflow.Template.MetadataEntry + nil, // 30: workflow.Metadata.LabelsEntry } var file_workflow_proto_depIdxs = []int32{ 0, // 0: workflow.WorkflowResponseError.code:type_name -> workflow.WorkflowError - 28, // 1: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry + 27, // 1: workflow.Archive.none:type_name -> workflow.Archive.NoneEntry 2, // 2: workflow.Artifact.archive:type_name -> workflow.Archive 3, // 3: workflow.Artifact.s3:type_name -> workflow.ArtifactS3 7, // 4: workflow.Inputs.parameters:type_name -> workflow.Parameter @@ -2226,35 +2121,33 @@ var file_workflow_proto_depIdxs = []int32{ 4, // 9: workflow.Arguments.artifacts:type_name -> workflow.Artifact 8, // 10: workflow.DagTasks.arguments:type_name -> workflow.Arguments 9, // 11: workflow.DagTemplate.tasks:type_name -> workflow.DagTasks - 29, // 12: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry + 28, // 12: workflow.ScriptTemplate.resources:type_name -> workflow.ScriptTemplate.ResourcesEntry 5, // 13: workflow.Template.inputs:type_name -> workflow.Inputs 6, // 14: workflow.Template.outputs:type_name -> workflow.Outputs 10, // 15: workflow.Template.dag:type_name -> workflow.DagTemplate 11, // 16: workflow.Template.script:type_name -> workflow.ScriptTemplate 12, // 17: workflow.Template.container:type_name -> workflow.ContainerTemplate - 30, // 18: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry + 29, // 18: workflow.Template.metadata:type_name -> workflow.Template.MetadataEntry 8, // 19: workflow.Spec.arguments:type_name -> workflow.Arguments 13, // 20: workflow.Spec.templates:type_name -> workflow.Template - 31, // 21: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry + 30, // 21: workflow.Metadata.labels:type_name -> workflow.Metadata.LabelsEntry 15, // 22: workflow.Workflow.metadata:type_name -> workflow.Metadata 14, // 23: workflow.Workflow.spec:type_name -> workflow.Spec 14, // 24: workflow.CronSpec.workflowSpec:type_name -> workflow.Spec - 15, // 25: workflow.CronWorkflow.metadata:type_name -> workflow.Metadata - 18, // 26: workflow.CronWorkflow.spec:type_name -> workflow.CronSpec - 17, // 27: workflow.WorkflowCreationRequest.workflow:type_name -> workflow.Workflow - 16, // 28: workflow.WorkflowCreationResponse.workflow:type_name -> workflow.WorkflowStatus - 0, // 29: workflow.WorkflowCreationResponse.error:type_name -> workflow.WorkflowError - 16, // 30: workflow.WorkflowDeleteResponse.workflow:type_name -> workflow.WorkflowStatus - 0, // 31: workflow.WorkflowDeleteResponse.error:type_name -> workflow.WorkflowError - 16, // 32: workflow.WorkflowGetResponse.workflow:type_name -> workflow.WorkflowStatus - 1, // 33: workflow.WorkflowGetResponse.error:type_name -> workflow.WorkflowResponseError - 16, // 34: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowStatus - 1, // 35: workflow.WorkflowListResponse.error:type_name -> workflow.WorkflowResponseError - 36, // [36:36] is the sub-list for method output_type - 36, // [36:36] is the sub-list for method input_type - 36, // [36:36] is the sub-list for extension type_name - 36, // [36:36] is the sub-list for extension extendee - 0, // [0:36] is the sub-list for field type_name + 17, // 25: workflow.WorkflowCreationRequest.workflow:type_name -> workflow.Workflow + 16, // 26: workflow.WorkflowCreationResponse.workflow:type_name -> workflow.WorkflowStatus + 1, // 27: workflow.WorkflowCreationResponse.error:type_name -> workflow.WorkflowResponseError + 16, // 28: workflow.WorkflowDeleteResponse.workflow:type_name -> workflow.WorkflowStatus + 0, // 29: workflow.WorkflowDeleteResponse.error:type_name -> workflow.WorkflowError + 16, // 30: workflow.WorkflowGetResponse.workflow:type_name -> workflow.WorkflowStatus + 1, // 31: workflow.WorkflowGetResponse.error:type_name -> workflow.WorkflowResponseError + 16, // 32: workflow.WorkflowListResponse.workflows:type_name -> workflow.WorkflowStatus + 1, // 33: workflow.WorkflowListResponse.error:type_name -> workflow.WorkflowResponseError + 34, // [34:34] is the sub-list for method output_type + 34, // [34:34] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_workflow_proto_init() } @@ -2480,18 +2373,6 @@ func file_workflow_proto_init() { } } file_workflow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CronWorkflow); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowCreationRequest); i { case 0: return &v.state @@ -2503,7 +2384,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowCreationResponse); i { case 0: return &v.state @@ -2515,7 +2396,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowDeleteRequest); i { case 0: return &v.state @@ -2527,7 +2408,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowDeleteResponse); i { case 0: return &v.state @@ -2539,7 +2420,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowGetRequest); i { case 0: return &v.state @@ -2551,7 +2432,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowGetResponse); i { case 0: return &v.state @@ -2563,7 +2444,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListRequest); i { case 0: return &v.state @@ -2575,7 +2456,7 @@ func file_workflow_proto_init() { return nil } } - file_workflow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_workflow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkflowListResponse); i { case 0: return &v.state @@ -2599,7 +2480,9 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[13].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[14].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[16].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_workflow_proto_msgTypes[18].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[19].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[20].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[21].OneofWrappers = []interface{}{} @@ -2607,14 +2490,13 @@ func file_workflow_proto_init() { file_workflow_proto_msgTypes[23].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[24].OneofWrappers = []interface{}{} file_workflow_proto_msgTypes[25].OneofWrappers = []interface{}{} - file_workflow_proto_msgTypes[26].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workflow_proto_rawDesc, NumEnums: 1, - NumMessages: 31, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go index 204f40e..8524fbe 100644 --- a/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go +++ b/go/github.com/jupyter-naas/naas-models/go/workflow/workflow.pb.validate.go @@ -2112,10 +2112,6 @@ func (m *Metadata) validate(all bool) error { // no validation rules for Name } - if m.GenerateName != nil { - // no validation rules for GenerateName - } - if m.Namespace != nil { // no validation rules for Namespace } @@ -2344,11 +2340,11 @@ func (m *Workflow) validate(all bool) error { var errors []error if all { - switch v := interface{}(m.GetMetadata()).(type) { + switch v := interface{}(m.GetSpec()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { errors = append(errors, WorkflowValidationError{ - field: "Metadata", + field: "Spec", reason: "embedded message failed validation", cause: err, }) @@ -2356,49 +2352,53 @@ func (m *Workflow) validate(all bool) error { case interface{ Validate() error }: if err := v.Validate(); err != nil { errors = append(errors, WorkflowValidationError{ - field: "Metadata", + field: "Spec", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { return WorkflowValidationError{ - field: "Metadata", + field: "Spec", reason: "embedded message failed validation", cause: err, } } } - if all { - switch v := interface{}(m.GetSpec()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - }) + if m.Metadata != nil { + + if all { + switch v := interface{}(m.GetMetadata()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowValidationError{ + field: "Metadata", + reason: "embedded message failed validation", + cause: err, + }) + } } - case interface{ Validate() error }: + } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - errors = append(errors, WorkflowValidationError{ - field: "Spec", + return WorkflowValidationError{ + field: "Metadata", reason: "embedded message failed validation", cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return WorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, + } } } + } if len(errors) > 0 { @@ -2630,163 +2630,6 @@ var _ interface { ErrorName() string } = CronSpecValidationError{} -// Validate checks the field values on CronWorkflow with the rules defined in -// the proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *CronWorkflow) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on CronWorkflow with the rules defined -// in the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in CronWorkflowMultiError, or -// nil if none found. -func (m *CronWorkflow) ValidateAll() error { - return m.validate(true) -} - -func (m *CronWorkflow) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetMetadata()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, CronWorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, CronWorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetMetadata()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CronWorkflowValidationError{ - field: "Metadata", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if all { - switch v := interface{}(m.GetSpec()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, CronWorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, CronWorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetSpec()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CronWorkflowValidationError{ - field: "Spec", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return CronWorkflowMultiError(errors) - } - - return nil -} - -// CronWorkflowMultiError is an error wrapping multiple validation errors -// returned by CronWorkflow.ValidateAll() if the designated constraints aren't met. -type CronWorkflowMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m CronWorkflowMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m CronWorkflowMultiError) AllErrors() []error { return m } - -// CronWorkflowValidationError is the validation error returned by -// CronWorkflow.Validate if the designated constraints aren't met. -type CronWorkflowValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CronWorkflowValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CronWorkflowValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CronWorkflowValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CronWorkflowValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CronWorkflowValidationError) ErrorName() string { return "CronWorkflowValidationError" } - -// Error satisfies the builtin error interface -func (e CronWorkflowValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCronWorkflow.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CronWorkflowValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CronWorkflowValidationError{} - // Validate checks the field values on WorkflowCreationRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -2817,34 +2660,10 @@ func (m *WorkflowCreationRequest) validate(all bool) error { // no validation rules for Description } - if m.UserUid != nil { - - if err := m._validateUuid(m.GetUserUid()); err != nil { - err = WorkflowCreationRequestValidationError{ - field: "UserUid", - reason: "value must be a valid UUID", - cause: err, - } - if !all { - return err - } - errors = append(errors, err) - } - - } - - if m.Namespace != nil { - // no validation rules for Namespace - } - if m.ServerDryRun != nil { // no validation rules for ServerDryRun } - if m.Token != nil { - // no validation rules for Token - } - if m.Workflow != nil { if all { @@ -2885,14 +2704,6 @@ func (m *WorkflowCreationRequest) validate(all bool) error { return nil } -func (m *WorkflowCreationRequest) _validateUuid(uuid string) error { - if matched := _workflow_uuidPattern.MatchString(uuid); !matched { - return errors.New("invalid uuid format") - } - - return nil -} - // WorkflowCreationRequestMultiError is an error wrapping multiple validation // errors returned by WorkflowCreationRequest.ValidateAll() if the designated // constraints aren't met. @@ -3022,7 +2833,36 @@ func (m *WorkflowCreationResponse) validate(all bool) error { } if m.Error != nil { - // no validation rules for Error + + if all { + switch v := interface{}(m.GetError()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkflowCreationResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkflowCreationResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetError()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkflowCreationResponseValidationError{ + field: "Error", + reason: "embedded message failed validation", + cause: err, + } + } + } + } if len(errors) > 0 { diff --git a/protos/workflow.proto b/protos/workflow.proto index 2b3fbfa..d772805 100644 --- a/protos/workflow.proto +++ b/protos/workflow.proto @@ -114,9 +114,8 @@ message Spec { message Metadata { optional string name = 1; - optional string generateName = 2; - optional string namespace = 3; - map labels = 4; + optional string namespace = 2; + map labels = 3; } message WorkflowStatus { @@ -125,11 +124,11 @@ message WorkflowStatus { optional string startedAt = 3; optional string finishedAt = 4; optional string progress = 5; - optional string outputs = 6; // #TODO + optional string outputs = 6; } message Workflow { - Metadata metadata = 1; + optional Metadata metadata = 1; Spec spec = 2; } @@ -144,10 +143,10 @@ message CronSpec { Spec workflowSpec = 8; } -message CronWorkflow { - Metadata metadata = 1; - CronSpec spec = 2; -} +//message CronWorkflow { +// Metadata metadata = 1; +// CronSpec spec = 2; +//} /** * Argo workflow CRUD resources @@ -156,16 +155,13 @@ message CronWorkflow { message WorkflowCreationRequest { optional string name = 1; optional string description = 2; - optional string user_uid = 3 [(validate.rules).string.uuid = true]; - optional string namespace = 4; - optional bool serverDryRun = 5; - optional string token = 6; - optional Workflow workflow = 7; + optional bool serverDryRun = 3; + optional Workflow workflow = 4; } message WorkflowCreationResponse { optional WorkflowStatus workflow = 1; - optional WorkflowError error = 2; + optional WorkflowResponseError error = 2; } message WorkflowDeleteRequest { diff --git a/python/naas_models/pydantic/workflow_p2p.py b/python/naas_models/pydantic/workflow_p2p.py index 9e95536..0e2dc65 100644 --- a/python/naas_models/pydantic/workflow_p2p.py +++ b/python/naas_models/pydantic/workflow_p2p.py @@ -88,7 +88,6 @@ class Spec(BaseModel): class Metadata(BaseModel): name: typing.Optional[str] = Field(default="") - generateName: typing.Optional[str] = Field(default="") namespace: typing.Optional[str] = Field(default="") labels: typing.Dict[str, str] = Field(default_factory=dict) @@ -101,7 +100,7 @@ class WorkflowStatus(BaseModel): outputs: typing.Optional[str] = Field(default="") class Workflow(BaseModel): - metadata: Metadata = Field() + metadata: typing.Optional[Metadata] = Field(default=None) spec: Spec = Field() class CronSpec(BaseModel): @@ -114,22 +113,15 @@ class CronSpec(BaseModel): suspend: typing.Optional[str] = Field(default="") workflowSpec: Spec = Field() -class CronWorkflow(BaseModel): - metadata: Metadata = Field() - spec: CronSpec = Field() - class WorkflowCreationRequest(BaseModel): name: typing.Optional[str] = Field(default="") description: typing.Optional[str] = Field(default="") - user_uid: typing.Optional[UUID] = Field(default="") - namespace: typing.Optional[str] = Field(default="") serverDryRun: typing.Optional[bool] = Field(default=False) - token: typing.Optional[str] = Field(default="") workflow: typing.Optional[Workflow] = Field(default=None) class WorkflowCreationResponse(BaseModel): workflow: typing.Optional[WorkflowStatus] = Field(default=None) - error: typing.Optional[WorkflowError] = Field(default=0) + error: typing.Optional[WorkflowResponseError] = Field(default=None) class WorkflowDeleteRequest(BaseModel): workspace_id: typing.Optional[UUID] = Field(default="") diff --git a/python/naas_models/workflow_pb2.py b/python/naas_models/workflow_pb2.py index abd2e3e..1266870 100644 --- a/python/naas_models/workflow_pb2.py +++ b/python/naas_models/workflow_pb2.py @@ -15,7 +15,7 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"n\n\x15WorkflowResponseError\x12*\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"[\n\tArguments\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"O\n\x11\x43ontainerTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\"\xda\x03\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06inputs\x18\x02 \x01(\x0b\x32\x10.workflow.InputsH\x00\x88\x01\x01\x12\'\n\x07outputs\x18\x03 \x01(\x0b\x32\x11.workflow.OutputsH\x01\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x04 \x01(\x0b\x32\x15.workflow.DagTemplateH\x02\x88\x01\x01\x12-\n\x06script\x18\x05 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x03\x88\x01\x01\x12\x18\n\x0bttlStrategy\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x33\n\tcontainer\x18\x07 \x01(\x0b\x32\x1b.workflow.ContainerTemplateH\x05\x88\x01\x01\x12\x12\n\x05podGC\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x32\n\x08metadata\x18\t \x03(\x0b\x32 .workflow.Template.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_scriptB\x0e\n\x0c_ttlStrategyB\x0c\n\n_containerB\x08\n\x06_podGC\"\x90\x01\n\x04Spec\x12+\n\targuments\x18\x01 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12\x17\n\nentrypoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_argumentsB\r\n\x0b_entrypoint\"\xd7\x01\n\x08Metadata\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cgenerateName\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12.\n\x06labels\x18\x04 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0f\n\r_generateNameB\x0c\n\n_namespace\"\xde\x01\n\x0eWorkflowStatus\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05phase\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tstartedAt\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nfinishedAt\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08progress\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07outputs\x18\x06 \x01(\tH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_phaseB\x0c\n\n_startedAtB\r\n\x0b_finishedAtB\x0b\n\t_progressB\n\n\x08_outputs\"N\n\x08Workflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.Spec\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"V\n\x0c\x43ronWorkflow\x12$\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.Metadata\x12 \n\x04spec\x18\x02 \x01(\x0b\x32\x12.workflow.CronSpec\"\xb5\x02\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x08user_uid\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x16\n\tnamespace\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x12\n\x05token\x18\x06 \x01(\tH\x05\x88\x01\x01\x12)\n\x08workflow\x18\x07 \x01(\x0b\x32\x12.workflow.WorkflowH\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_user_uidB\x0c\n\n_namespaceB\x0f\n\r_serverDryRunB\x08\n\x06_tokenB\x0b\n\t_workflow\"\x8f\x01\n\x18WorkflowCreationResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12+\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"{\n\x15WorkflowDeleteRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x8d\x01\n\x16WorkflowDeleteResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12+\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"x\n\x12WorkflowGetRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x92\x01\n\x13WorkflowGetResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"K\n\x13WorkflowListRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x42\x0f\n\r_workspace_id\"\x82\x01\n\x14WorkflowListResponse\x12+\n\tworkflows\x18\x01 \x03(\x0b\x32\x18.workflow.WorkflowStatus\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error*B\n\rWorkflowError\x12\x15\n\x11WORKFLOW_NO_ERROR\x10\x00\x12\x1a\n\x15INTERNAL_SERVER_ERROR\x10\xe8\x07\x42\x31Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eworkflow.proto\x12\x08workflow\x1a\x0evalidate.proto\"n\n\x15WorkflowResponseError\x12*\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"a\n\x07\x41rchive\x12)\n\x04none\x18\x01 \x03(\x0b\x32\x1b.workflow.Archive.NoneEntry\x1a+\n\tNoneEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"F\n\nArtifactS3\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62ucket\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\t\n\x07_bucket\"\xdd\x01\n\x08\x41rtifact\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04mode\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x11\n\x04\x66rom\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\'\n\x07\x61rchive\x18\x05 \x01(\x0b\x32\x11.workflow.ArchiveH\x04\x88\x01\x01\x12%\n\x02s3\x18\x06 \x01(\x0b\x32\x14.workflow.ArtifactS3H\x05\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x07\n\x05_modeB\x07\n\x05_fromB\n\n\x08_archiveB\x05\n\x03_s3\"X\n\x06Inputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"Y\n\x07Outputs\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"g\n\tParameter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x64\x65\x66\x61ult\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_valueB\n\n\x08_default\"[\n\tArguments\x12\'\n\nparameters\x18\x01 \x03(\x0b\x32\x13.workflow.Parameter\x12%\n\tartifacts\x18\x02 \x03(\x0b\x32\x12.workflow.Artifact\"\x87\x01\n\x08\x44\x61gTasks\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08template\x18\x02 \x01(\t\x12\x14\n\x07\x64\x65pends\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\targuments\x18\x04 \x01(\x0b\x32\x13.workflow.ArgumentsH\x01\x88\x01\x01\x42\n\n\x08_dependsB\x0c\n\n_arguments\"P\n\x0b\x44\x61gTemplate\x12!\n\x05tasks\x18\x01 \x03(\x0b\x32\x12.workflow.DagTasks\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"\xcd\x01\n\x0eScriptTemplate\x12\x12\n\x05image\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12:\n\tresources\x18\x03 \x03(\x0b\x32\'.workflow.ScriptTemplate.ResourcesEntry\x12\x13\n\x06source\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_imageB\t\n\x07_source\"O\n\x11\x43ontainerTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\"\xda\x03\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06inputs\x18\x02 \x01(\x0b\x32\x10.workflow.InputsH\x00\x88\x01\x01\x12\'\n\x07outputs\x18\x03 \x01(\x0b\x32\x11.workflow.OutputsH\x01\x88\x01\x01\x12\'\n\x03\x64\x61g\x18\x04 \x01(\x0b\x32\x15.workflow.DagTemplateH\x02\x88\x01\x01\x12-\n\x06script\x18\x05 \x01(\x0b\x32\x18.workflow.ScriptTemplateH\x03\x88\x01\x01\x12\x18\n\x0bttlStrategy\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x33\n\tcontainer\x18\x07 \x01(\x0b\x32\x1b.workflow.ContainerTemplateH\x05\x88\x01\x01\x12\x12\n\x05podGC\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x32\n\x08metadata\x18\t \x03(\x0b\x32 .workflow.Template.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_inputsB\n\n\x08_outputsB\x06\n\x04_dagB\t\n\x07_scriptB\x0e\n\x0c_ttlStrategyB\x0c\n\n_containerB\x08\n\x06_podGC\"\x90\x01\n\x04Spec\x12+\n\targuments\x18\x01 \x01(\x0b\x32\x13.workflow.ArgumentsH\x00\x88\x01\x01\x12\x17\n\nentrypoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12%\n\ttemplates\x18\x03 \x03(\x0b\x32\x12.workflow.TemplateB\x0c\n\n_argumentsB\r\n\x0b_entrypoint\"\xab\x01\n\x08Metadata\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06labels\x18\x03 \x03(\x0b\x32\x1e.workflow.Metadata.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_namespace\"\xde\x01\n\x0eWorkflowStatus\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05phase\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tstartedAt\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nfinishedAt\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08progress\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07outputs\x18\x06 \x01(\tH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_phaseB\x0c\n\n_startedAtB\r\n\x0b_finishedAtB\x0b\n\t_progressB\n\n\x08_outputs\"`\n\x08Workflow\x12)\n\x08metadata\x18\x01 \x01(\x0b\x32\x12.workflow.MetadataH\x00\x88\x01\x01\x12\x1c\n\x04spec\x18\x02 \x01(\x0b\x32\x0e.workflow.SpecB\x0b\n\t_metadata\"\xf6\x02\n\x08\x43ronSpec\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12$\n\x17startingDeadlineSeconds\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63oncurrencyPolicy\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\'\n\x1asuccessfulJobsHistoryLimit\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x66\x61iledJobsHistoryLimit\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suspend\x18\x07 \x01(\tH\x04\x88\x01\x01\x12$\n\x0cworkflowSpec\x18\x08 \x01(\x0b\x32\x0e.workflow.SpecB\x1a\n\x18_startingDeadlineSecondsB\x14\n\x12_concurrencyPolicyB\x1d\n\x1b_successfulJobsHistoryLimitB\x19\n\x17_failedJobsHistoryLimitB\n\n\x08_suspend\"\xc3\x01\n\x17WorkflowCreationRequest\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cserverDryRun\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12)\n\x08workflow\x18\x04 \x01(\x0b\x32\x12.workflow.WorkflowH\x03\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0f\n\r_serverDryRunB\x0b\n\t_workflow\"\x97\x01\n\x18WorkflowCreationResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"{\n\x15WorkflowDeleteRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x8d\x01\n\x16WorkflowDeleteResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12+\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x17.workflow.WorkflowErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"x\n\x12WorkflowGetRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1a\n\rworkflow_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x10\n\x0e_workflow_name\"\x92\x01\n\x13WorkflowGetResponse\x12/\n\x08workflow\x18\x01 \x01(\x0b\x32\x18.workflow.WorkflowStatusH\x00\x88\x01\x01\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x01\x88\x01\x01\x42\x0b\n\t_workflowB\x08\n\x06_error\"K\n\x13WorkflowListRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x42\x0f\n\r_workspace_id\"\x82\x01\n\x14WorkflowListResponse\x12+\n\tworkflows\x18\x01 \x03(\x0b\x32\x18.workflow.WorkflowStatus\x12\x33\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1f.workflow.WorkflowResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error*B\n\rWorkflowError\x12\x15\n\x11WORKFLOW_NO_ERROR\x10\x00\x12\x1a\n\x15INTERNAL_SERVER_ERROR\x10\xe8\x07\x42\x31Z/github.com/jupyter-naas/naas-models/go/workflowb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,16 +31,14 @@ _globals['_TEMPLATE_METADATAENTRY']._serialized_options = b'8\001' _globals['_METADATA_LABELSENTRY']._loaded_options = None _globals['_METADATA_LABELSENTRY']._serialized_options = b'8\001' - _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['user_uid']._loaded_options = None - _globals['_WORKFLOWCREATIONREQUEST'].fields_by_name['user_uid']._serialized_options = b'\372B\005r\003\260\001\001' _globals['_WORKFLOWDELETEREQUEST'].fields_by_name['workspace_id']._loaded_options = None _globals['_WORKFLOWDELETEREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' _globals['_WORKFLOWGETREQUEST'].fields_by_name['workspace_id']._loaded_options = None _globals['_WORKFLOWGETREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' _globals['_WORKFLOWLISTREQUEST'].fields_by_name['workspace_id']._loaded_options = None _globals['_WORKFLOWLISTREQUEST'].fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' - _globals['_WORKFLOWERROR']._serialized_start=4259 - _globals['_WORKFLOWERROR']._serialized_end=4325 + _globals['_WORKFLOWERROR']._serialized_start=4039 + _globals['_WORKFLOWERROR']._serialized_end=4105 _globals['_WORKFLOWRESPONSEERROR']._serialized_start=44 _globals['_WORKFLOWRESPONSEERROR']._serialized_end=154 _globals['_ARCHIVE']._serialized_start=156 @@ -76,31 +74,29 @@ _globals['_SPEC']._serialized_start=1917 _globals['_SPEC']._serialized_end=2061 _globals['_METADATA']._serialized_start=2064 - _globals['_METADATA']._serialized_end=2279 - _globals['_METADATA_LABELSENTRY']._serialized_start=2194 - _globals['_METADATA_LABELSENTRY']._serialized_end=2239 - _globals['_WORKFLOWSTATUS']._serialized_start=2282 - _globals['_WORKFLOWSTATUS']._serialized_end=2504 - _globals['_WORKFLOW']._serialized_start=2506 - _globals['_WORKFLOW']._serialized_end=2584 - _globals['_CRONSPEC']._serialized_start=2587 - _globals['_CRONSPEC']._serialized_end=2961 - _globals['_CRONWORKFLOW']._serialized_start=2963 - _globals['_CRONWORKFLOW']._serialized_end=3049 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=3052 - _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3361 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3364 - _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3507 - _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3509 - _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3632 - _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3635 - _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3776 - _globals['_WORKFLOWGETREQUEST']._serialized_start=3778 - _globals['_WORKFLOWGETREQUEST']._serialized_end=3898 - _globals['_WORKFLOWGETRESPONSE']._serialized_start=3901 - _globals['_WORKFLOWGETRESPONSE']._serialized_end=4047 - _globals['_WORKFLOWLISTREQUEST']._serialized_start=4049 - _globals['_WORKFLOWLISTREQUEST']._serialized_end=4124 - _globals['_WORKFLOWLISTRESPONSE']._serialized_start=4127 - _globals['_WORKFLOWLISTRESPONSE']._serialized_end=4257 + _globals['_METADATA']._serialized_end=2235 + _globals['_METADATA_LABELSENTRY']._serialized_start=2167 + _globals['_METADATA_LABELSENTRY']._serialized_end=2212 + _globals['_WORKFLOWSTATUS']._serialized_start=2238 + _globals['_WORKFLOWSTATUS']._serialized_end=2460 + _globals['_WORKFLOW']._serialized_start=2462 + _globals['_WORKFLOW']._serialized_end=2558 + _globals['_CRONSPEC']._serialized_start=2561 + _globals['_CRONSPEC']._serialized_end=2935 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_start=2938 + _globals['_WORKFLOWCREATIONREQUEST']._serialized_end=3133 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_start=3136 + _globals['_WORKFLOWCREATIONRESPONSE']._serialized_end=3287 + _globals['_WORKFLOWDELETEREQUEST']._serialized_start=3289 + _globals['_WORKFLOWDELETEREQUEST']._serialized_end=3412 + _globals['_WORKFLOWDELETERESPONSE']._serialized_start=3415 + _globals['_WORKFLOWDELETERESPONSE']._serialized_end=3556 + _globals['_WORKFLOWGETREQUEST']._serialized_start=3558 + _globals['_WORKFLOWGETREQUEST']._serialized_end=3678 + _globals['_WORKFLOWGETRESPONSE']._serialized_start=3681 + _globals['_WORKFLOWGETRESPONSE']._serialized_end=3827 + _globals['_WORKFLOWLISTREQUEST']._serialized_start=3829 + _globals['_WORKFLOWLISTREQUEST']._serialized_end=3904 + _globals['_WORKFLOWLISTRESPONSE']._serialized_start=3907 + _globals['_WORKFLOWLISTRESPONSE']._serialized_end=4037 # @@protoc_insertion_point(module_scope)