diff --git a/.gen/go/cadence/cadence.go b/.gen/go/cadence/cadence.go index 45d504cf07c..108835b6277 100644 --- a/.gen/go/cadence/cadence.go +++ b/.gen/go/cadence/cadence.go @@ -44,14 +44,14 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "cadence", Package: "github.com/uber/cadence/.gen/go/cadence", FilePath: "cadence.thrift", - SHA1: "39303bb2ea5213cb3398e89b39efa71f957b279c", + SHA1: "e17e6836015d313372a99165cfd8662a9603b1cc", Includes: []*thriftreflect.ThriftModule{ shared.ThriftModule, }, Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\n\nnamespace java com.uber.cadence\n\n/**\n* WorkflowService API is exposed to provide support for long running applications. Application is expected to call\n* StartWorkflowExecution to create an instance for each instance of long running workflow. Such applications are expected\n* to have a worker which regularly polls for DecisionTask and ActivityTask from the WorkflowService. For each\n* DecisionTask, application is expected to process the history of events for that session and respond back with next\n* decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back\n* with completion or failure. Worker is expected to regularly heartbeat while activity task is running.\n**/\nservice WorkflowService {\n /**\n * RegisterDomain creates a new domain which can be used as a container for all resources. Domain is a top level\n * entity within Cadence, used as a container for all resources like workflow executions, tasklists, etc. Domain\n * acts as a sandbox and provides isolation for all resources within the domain. All resources belongs to exactly one\n * domain.\n **/\n void RegisterDomain(1: shared.RegisterDomainRequest registerRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.DomainAlreadyExistsError domainExistsError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DescribeDomain returns the information and configuration for a registered domain.\n **/\n shared.DescribeDomainResponse DescribeDomain(1: shared.DescribeDomainRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListDomains returns the information and configuration for all domains.\n **/\n shared.ListDomainsResponse ListDomains(1: shared.ListDomainsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * UpdateDomain is used to update the information and configuration for a registered domain.\n **/\n shared.UpdateDomainResponse UpdateDomain(1: shared.UpdateDomainRequest updateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DeprecateDomain us used to update status of a registered domain to DEPRECATED. Once the domain is deprecated\n * it cannot be used to start new workflow executions. Existing workflow executions will continue to run on\n * deprecated domains.\n **/\n void DeprecateDomain(1: shared.DeprecateDomainRequest deprecateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RestartWorkflowExecution restarts a previous workflow\n * If the workflow is currently running it will terminate and restart\n **/\n shared.RestartWorkflowExecutionResponse RestartWorkflowExecution(1: shared.RestartWorkflowExecutionRequest restartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: shared.StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.EntityNotExistsError entityNotExistError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * Returns the history of specified workflow execution. It fails with 'EntityNotExistError' if speficied workflow\n * execution in unknown to the service.\n **/\n shared.GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistory(1: shared.GetWorkflowExecutionHistoryRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * PollForDecisionTask is called by application worker to process DecisionTask from a specific taskList. A\n * DecisionTask is dispatched to callers for active workflow executions, with pending decisions.\n * Application is then expected to call 'RespondDecisionTaskCompleted' API when it is done processing the DecisionTask.\n * It will also create a 'DecisionTaskStarted' event in the history for that session before handing off DecisionTask to\n * application worker.\n **/\n shared.PollForDecisionTaskResponse PollForDecisionTask(1: shared.PollForDecisionTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n * The response could contain a new decision task if there is one or if the request asking for one.\n **/\n shared.RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: shared.RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report any panics during DecisionTask processing. Cadence will only append first\n * DecisionTaskFailed event to the history of workflow execution for consecutive failures.\n **/\n void RespondDecisionTaskFailed(1: shared.RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * PollForActivityTask is called by application worker to process ActivityTask from a specific taskList. ActivityTask\n * is dispatched to callers whenever a ScheduleTask decision is made for a workflow execution.\n * Application is expected to call 'RespondActivityTaskCompleted' or 'RespondActivityTaskFailed' once it is done\n * processing the task.\n * Application also needs to call 'RecordActivityTaskHeartbeat' API within 'heartbeatTimeoutSeconds' interval to\n * prevent the task from getting timed out. An event 'ActivityTaskStarted' event is also written to workflow execution\n * history before the ActivityTask is dispatched to application worker.\n **/\n shared.PollForActivityTaskResponse PollForActivityTask(1: shared.PollForActivityTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: shared.RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeatByID is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeatByID' will\n * fail with 'EntityNotExistsError' in such situations. Instead of using 'taskToken' like in RecordActivityTaskHeartbeat,\n * use Domain, WorkflowID and ActivityID\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeatByID(1: shared.RecordActivityTaskHeartbeatByIDRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: shared.RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompletedByID is called by application worker when it is done processing an ActivityTask.\n * It will result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Similar to RespondActivityTaskCompleted but use Domain,\n * WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskCompletedByID(1: shared.RespondActivityTaskCompletedByIDRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: shared.RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailedByID is called by application worker when it is done processing an ActivityTask.\n * It will result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskFailed but use\n * Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskFailedByID(1: shared.RespondActivityTaskFailedByIDRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: shared.RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceledByID is called by application worker when it is successfully canceled an ActivityTask.\n * It will result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskCanceled but use\n * Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceledByID(1: shared.RespondActivityTaskCanceledByIDRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with 'EntityNotExistsError' if the workflow is not valid\n * anymore due to completion or doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: shared.RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: shared.SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending signal to a workflow.\n * If the workflow is running, this results in WorkflowExecutionSignaled event being recorded in the history\n * and a decision task being created for the execution.\n * If the workflow is not running or not found, this results in WorkflowExecutionStarted and WorkflowExecutionSignaled\n * events being recorded in history, and a decision task being created for the execution\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution to DecisionTaskCompleted event(exclusive).\n * And it will immediately terminating the current execution instance.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: shared.ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: shared.TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ListOpenWorkflowExecutions is a visibility API to list the open executions in a specific domain.\n **/\n shared.ListOpenWorkflowExecutionsResponse ListOpenWorkflowExecutions(1: shared.ListOpenWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListClosedWorkflowExecutions is a visibility API to list the closed executions in a specific domain.\n **/\n shared.ListClosedWorkflowExecutionsResponse ListClosedWorkflowExecutions(1: shared.ListClosedWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListWorkflowExecutions is a visibility API to list workflow executions in a specific domain.\n **/\n shared.ListWorkflowExecutionsResponse ListWorkflowExecutions(1: shared.ListWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListArchivedWorkflowExecutions is a visibility API to list archived workflow executions in a specific domain.\n **/\n shared.ListArchivedWorkflowExecutionsResponse ListArchivedWorkflowExecutions(1: shared.ListArchivedWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ScanWorkflowExecutions is a visibility API to list large amount of workflow executions in a specific domain without order.\n **/\n shared.ListWorkflowExecutionsResponse ScanWorkflowExecutions(1: shared.ListWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * CountWorkflowExecutions is a visibility API to count of workflow executions in a specific domain.\n **/\n shared.CountWorkflowExecutionsResponse CountWorkflowExecutions(1: shared.CountWorkflowExecutionsRequest countRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetSearchAttributes is a visibility API to get all legal keys that could be used in list APIs\n **/\n shared.GetSearchAttributesResponse GetSearchAttributes()\n throws (\n 2: shared.ServiceBusyError serviceBusyError,\n 3: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RespondQueryTaskCompleted is called by application worker to complete a QueryTask (which is a DecisionTask for query)\n * as a result of 'PollForDecisionTask' API call. Completing a QueryTask will unblock the client call to 'QueryWorkflow'\n * API and return the query result to client as a response to 'QueryWorkflow' API call.\n **/\n void RespondQueryTaskCompleted(1: shared.RespondQueryTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n shared.ResetStickyTaskListResponse ResetStickyTaskList(1: shared.ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n shared.QueryWorkflowResponse QueryWorkflow(1: shared.QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: shared.DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DescribeTaskList returns information about the target tasklist, right now this API returns the\n * pollers which polled this tasklist in last few minutes.\n **/\n shared.DescribeTaskListResponse DescribeTaskList(1: shared.DescribeTaskListRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetClusterInfo returns information about cadence cluster\n **/\n shared.ClusterInfo GetClusterInfo()\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetTaskListsByDomain returns the list of all the task lists for a domainName.\n **/\n shared.GetTaskListsByDomainResponse GetTaskListsByDomain(1: shared.GetTaskListsByDomainRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.EntityNotExistsError entityNotExistError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n shared.ListTaskListPartitionsResponse ListTaskListPartitions(1: shared.ListTaskListPartitionsRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: shared.RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.DomainNotActiveError domainNotActiveError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\n\nnamespace java com.uber.cadence\n\n/**\n* WorkflowService API is exposed to provide support for long running applications. Application is expected to call\n* StartWorkflowExecution to create an instance for each instance of long running workflow. Such applications are expected\n* to have a worker which regularly polls for DecisionTask and ActivityTask from the WorkflowService. For each\n* DecisionTask, application is expected to process the history of events for that session and respond back with next\n* decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back\n* with completion or failure. Worker is expected to regularly heartbeat while activity task is running.\n**/\nservice WorkflowService {\n /**\n * RegisterDomain creates a new domain which can be used as a container for all resources. Domain is a top level\n * entity within Cadence, used as a container for all resources like workflow executions, tasklists, etc. Domain\n * acts as a sandbox and provides isolation for all resources within the domain. All resources belongs to exactly one\n * domain.\n **/\n void RegisterDomain(1: shared.RegisterDomainRequest registerRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.DomainAlreadyExistsError domainExistsError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DescribeDomain returns the information and configuration for a registered domain.\n **/\n shared.DescribeDomainResponse DescribeDomain(1: shared.DescribeDomainRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListDomains returns the information and configuration for all domains.\n **/\n shared.ListDomainsResponse ListDomains(1: shared.ListDomainsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * UpdateDomain is used to update the information and configuration for a registered domain.\n **/\n shared.UpdateDomainResponse UpdateDomain(1: shared.UpdateDomainRequest updateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DeprecateDomain us used to update status of a registered domain to DEPRECATED. Once the domain is deprecated\n * it cannot be used to start new workflow executions. Existing workflow executions will continue to run on\n * deprecated domains.\n **/\n void DeprecateDomain(1: shared.DeprecateDomainRequest deprecateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RestartWorkflowExecution restarts a previous workflow\n * If the workflow is currently running it will terminate and restart\n **/\n shared.RestartWorkflowExecutionResponse RestartWorkflowExecution(1: shared.RestartWorkflowExecutionRequest restartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: shared.StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.EntityNotExistsError entityNotExistError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n /**\n * StartWorkflowExecutionAsync starts a new long running workflow instance asynchronously. It will push a StartWorkflowExecutionRequest to a queue\n * and immediately return a response. The request will be processed by a separate consumer eventually.\n **/\n shared.StartWorkflowExecutionAsyncResponse StartWorkflowExecutionAsync(1: shared.StartWorkflowExecutionAsyncRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.EntityNotExistsError entityNotExistError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n /**\n * Returns the history of specified workflow execution. It fails with 'EntityNotExistError' if speficied workflow\n * execution in unknown to the service.\n **/\n shared.GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistory(1: shared.GetWorkflowExecutionHistoryRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * PollForDecisionTask is called by application worker to process DecisionTask from a specific taskList. A\n * DecisionTask is dispatched to callers for active workflow executions, with pending decisions.\n * Application is then expected to call 'RespondDecisionTaskCompleted' API when it is done processing the DecisionTask.\n * It will also create a 'DecisionTaskStarted' event in the history for that session before handing off DecisionTask to\n * application worker.\n **/\n shared.PollForDecisionTaskResponse PollForDecisionTask(1: shared.PollForDecisionTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n * The response could contain a new decision task if there is one or if the request asking for one.\n **/\n shared.RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: shared.RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report any panics during DecisionTask processing. Cadence will only append first\n * DecisionTaskFailed event to the history of workflow execution for consecutive failures.\n **/\n void RespondDecisionTaskFailed(1: shared.RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * PollForActivityTask is called by application worker to process ActivityTask from a specific taskList. ActivityTask\n * is dispatched to callers whenever a ScheduleTask decision is made for a workflow execution.\n * Application is expected to call 'RespondActivityTaskCompleted' or 'RespondActivityTaskFailed' once it is done\n * processing the task.\n * Application also needs to call 'RecordActivityTaskHeartbeat' API within 'heartbeatTimeoutSeconds' interval to\n * prevent the task from getting timed out. An event 'ActivityTaskStarted' event is also written to workflow execution\n * history before the ActivityTask is dispatched to application worker.\n **/\n shared.PollForActivityTaskResponse PollForActivityTask(1: shared.PollForActivityTaskRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.EntityNotExistsError entityNotExistError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: shared.RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeatByID is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeatByID' will\n * fail with 'EntityNotExistsError' in such situations. Instead of using 'taskToken' like in RecordActivityTaskHeartbeat,\n * use Domain, WorkflowID and ActivityID\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeatByID(1: shared.RecordActivityTaskHeartbeatByIDRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: shared.RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompletedByID is called by application worker when it is done processing an ActivityTask.\n * It will result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Similar to RespondActivityTaskCompleted but use Domain,\n * WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskCompletedByID(1: shared.RespondActivityTaskCompletedByIDRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: shared.RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailedByID is called by application worker when it is done processing an ActivityTask.\n * It will result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskFailed but use\n * Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskFailedByID(1: shared.RespondActivityTaskFailedByIDRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: shared.RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceledByID is called by application worker when it is successfully canceled an ActivityTask.\n * It will result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskCanceled but use\n * Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'\n * if the these IDs are not valid anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceledByID(1: shared.RespondActivityTaskCanceledByIDRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with 'EntityNotExistsError' if the workflow is not valid\n * anymore due to completion or doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: shared.RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: shared.SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending signal to a workflow.\n * If the workflow is running, this results in WorkflowExecutionSignaled event being recorded in the history\n * and a decision task being created for the execution.\n * If the workflow is not running or not found, this results in WorkflowExecutionStarted and WorkflowExecutionSignaled\n * events being recorded in history, and a decision task being created for the execution\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n 8: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution to DecisionTaskCompleted event(exclusive).\n * And it will immediately terminating the current execution instance.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: shared.ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: shared.TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ListOpenWorkflowExecutions is a visibility API to list the open executions in a specific domain.\n **/\n shared.ListOpenWorkflowExecutionsResponse ListOpenWorkflowExecutions(1: shared.ListOpenWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListClosedWorkflowExecutions is a visibility API to list the closed executions in a specific domain.\n **/\n shared.ListClosedWorkflowExecutionsResponse ListClosedWorkflowExecutions(1: shared.ListClosedWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListWorkflowExecutions is a visibility API to list workflow executions in a specific domain.\n **/\n shared.ListWorkflowExecutionsResponse ListWorkflowExecutions(1: shared.ListWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ListArchivedWorkflowExecutions is a visibility API to list archived workflow executions in a specific domain.\n **/\n shared.ListArchivedWorkflowExecutionsResponse ListArchivedWorkflowExecutions(1: shared.ListArchivedWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ScanWorkflowExecutions is a visibility API to list large amount of workflow executions in a specific domain without order.\n **/\n shared.ListWorkflowExecutionsResponse ScanWorkflowExecutions(1: shared.ListWorkflowExecutionsRequest listRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * CountWorkflowExecutions is a visibility API to count of workflow executions in a specific domain.\n **/\n shared.CountWorkflowExecutionsResponse CountWorkflowExecutions(1: shared.CountWorkflowExecutionsRequest countRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetSearchAttributes is a visibility API to get all legal keys that could be used in list APIs\n **/\n shared.GetSearchAttributesResponse GetSearchAttributes()\n throws (\n 2: shared.ServiceBusyError serviceBusyError,\n 3: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * RespondQueryTaskCompleted is called by application worker to complete a QueryTask (which is a DecisionTask for query)\n * as a result of 'PollForDecisionTask' API call. Completing a QueryTask will unblock the client call to 'QueryWorkflow'\n * API and return the query result to client as a response to 'QueryWorkflow' API call.\n **/\n void RespondQueryTaskCompleted(1: shared.RespondQueryTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n shared.ResetStickyTaskListResponse ResetStickyTaskList(1: shared.ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n shared.QueryWorkflowResponse QueryWorkflow(1: shared.QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: shared.DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * DescribeTaskList returns information about the target tasklist, right now this API returns the\n * pollers which polled this tasklist in last few minutes.\n **/\n shared.DescribeTaskListResponse DescribeTaskList(1: shared.DescribeTaskListRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetClusterInfo returns information about cadence cluster\n **/\n shared.ClusterInfo GetClusterInfo()\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetTaskListsByDomain returns the list of all the task lists for a domainName.\n **/\n shared.GetTaskListsByDomainResponse GetTaskListsByDomain(1: shared.GetTaskListsByDomainRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.EntityNotExistsError entityNotExistError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n shared.ListTaskListPartitionsResponse ListTaskListPartitions(1: shared.ListTaskListPartitionsRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: shared.RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.DomainNotActiveError domainNotActiveError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n}\n" // WorkflowService_CountWorkflowExecutions_Args represents the arguments for the WorkflowService.CountWorkflowExecutions function. // @@ -38947,6 +38947,1154 @@ func (v *WorkflowService_StartWorkflowExecution_Result) EnvelopeType() wire.Enve return wire.Reply } +// WorkflowService_StartWorkflowExecutionAsync_Args represents the arguments for the WorkflowService.StartWorkflowExecutionAsync function. +// +// The arguments for StartWorkflowExecutionAsync are sent and received over the wire as this struct. +type WorkflowService_StartWorkflowExecutionAsync_Args struct { + StartRequest *shared.StartWorkflowExecutionAsyncRequest `json:"startRequest,omitempty"` +} + +// ToWire translates a WorkflowService_StartWorkflowExecutionAsync_Args struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) ToWire() (wire.Value, error) { + var ( + fields [1]wire.Field + i int = 0 + w wire.Value + err error + ) + + if v.StartRequest != nil { + w, err = v.StartRequest.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 1, Value: w} + i++ + } + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +func _StartWorkflowExecutionAsyncRequest_Read(w wire.Value) (*shared.StartWorkflowExecutionAsyncRequest, error) { + var v shared.StartWorkflowExecutionAsyncRequest + err := v.FromWire(w) + return &v, err +} + +// FromWire deserializes a WorkflowService_StartWorkflowExecutionAsync_Args struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a WorkflowService_StartWorkflowExecutionAsync_Args struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v WorkflowService_StartWorkflowExecutionAsync_Args +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) FromWire(w wire.Value) error { + var err error + + for _, field := range w.GetStruct().Fields { + switch field.ID { + case 1: + if field.Value.Type() == wire.TStruct { + v.StartRequest, err = _StartWorkflowExecutionAsyncRequest_Read(field.Value) + if err != nil { + return err + } + + } + } + } + + return nil +} + +// Encode serializes a WorkflowService_StartWorkflowExecutionAsync_Args struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a WorkflowService_StartWorkflowExecutionAsync_Args struct could not be encoded. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + if v.StartRequest != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 1, Type: wire.TStruct}); err != nil { + return err + } + if err := v.StartRequest.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + return sw.WriteStructEnd() +} + +func _StartWorkflowExecutionAsyncRequest_Decode(sr stream.Reader) (*shared.StartWorkflowExecutionAsyncRequest, error) { + var v shared.StartWorkflowExecutionAsyncRequest + err := v.Decode(sr) + return &v, err +} + +// Decode deserializes a WorkflowService_StartWorkflowExecutionAsync_Args struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a WorkflowService_StartWorkflowExecutionAsync_Args struct could not be generated from the wire +// representation. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + case fh.ID == 1 && fh.Type == wire.TStruct: + v.StartRequest, err = _StartWorkflowExecutionAsyncRequest_Decode(sr) + if err != nil { + return err + } + + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + return nil +} + +// String returns a readable string representation of a WorkflowService_StartWorkflowExecutionAsync_Args +// struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) String() string { + if v == nil { + return "" + } + + var fields [1]string + i := 0 + if v.StartRequest != nil { + fields[i] = fmt.Sprintf("StartRequest: %v", v.StartRequest) + i++ + } + + return fmt.Sprintf("WorkflowService_StartWorkflowExecutionAsync_Args{%v}", strings.Join(fields[:i], ", ")) +} + +// Equals returns true if all the fields of this WorkflowService_StartWorkflowExecutionAsync_Args match the +// provided WorkflowService_StartWorkflowExecutionAsync_Args. +// +// This function performs a deep comparison. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) Equals(rhs *WorkflowService_StartWorkflowExecutionAsync_Args) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + if !((v.StartRequest == nil && rhs.StartRequest == nil) || (v.StartRequest != nil && rhs.StartRequest != nil && v.StartRequest.Equals(rhs.StartRequest))) { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of WorkflowService_StartWorkflowExecutionAsync_Args. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + if v.StartRequest != nil { + err = multierr.Append(err, enc.AddObject("startRequest", v.StartRequest)) + } + return err +} + +// GetStartRequest returns the value of StartRequest if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) GetStartRequest() (o *shared.StartWorkflowExecutionAsyncRequest) { + if v != nil && v.StartRequest != nil { + return v.StartRequest + } + + return +} + +// IsSetStartRequest returns true if StartRequest is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) IsSetStartRequest() bool { + return v != nil && v.StartRequest != nil +} + +// MethodName returns the name of the Thrift function as specified in +// the IDL, for which this struct represent the arguments. +// +// This will always be "StartWorkflowExecutionAsync" for this struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) MethodName() string { + return "StartWorkflowExecutionAsync" +} + +// EnvelopeType returns the kind of value inside this struct. +// +// This will always be Call for this struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Args) EnvelopeType() wire.EnvelopeType { + return wire.Call +} + +// WorkflowService_StartWorkflowExecutionAsync_Helper provides functions that aid in handling the +// parameters and return values of the WorkflowService.StartWorkflowExecutionAsync +// function. +var WorkflowService_StartWorkflowExecutionAsync_Helper = struct { + // Args accepts the parameters of StartWorkflowExecutionAsync in-order and returns + // the arguments struct for the function. + Args func( + startRequest *shared.StartWorkflowExecutionAsyncRequest, + ) *WorkflowService_StartWorkflowExecutionAsync_Args + + // IsException returns true if the given error can be thrown + // by StartWorkflowExecutionAsync. + // + // An error can be thrown by StartWorkflowExecutionAsync only if the + // corresponding exception type was mentioned in the 'throws' + // section for it in the Thrift file. + IsException func(error) bool + + // WrapResponse returns the result struct for StartWorkflowExecutionAsync + // given its return value and error. + // + // This allows mapping values and errors returned by + // StartWorkflowExecutionAsync into a serializable result struct. + // WrapResponse returns a non-nil error if the provided + // error cannot be thrown by StartWorkflowExecutionAsync + // + // value, err := StartWorkflowExecutionAsync(args) + // result, err := WorkflowService_StartWorkflowExecutionAsync_Helper.WrapResponse(value, err) + // if err != nil { + // return fmt.Errorf("unexpected error from StartWorkflowExecutionAsync: %v", err) + // } + // serialize(result) + WrapResponse func(*shared.StartWorkflowExecutionAsyncResponse, error) (*WorkflowService_StartWorkflowExecutionAsync_Result, error) + + // UnwrapResponse takes the result struct for StartWorkflowExecutionAsync + // and returns the value or error returned by it. + // + // The error is non-nil only if StartWorkflowExecutionAsync threw an + // exception. + // + // result := deserialize(bytes) + // value, err := WorkflowService_StartWorkflowExecutionAsync_Helper.UnwrapResponse(result) + UnwrapResponse func(*WorkflowService_StartWorkflowExecutionAsync_Result) (*shared.StartWorkflowExecutionAsyncResponse, error) +}{} + +func init() { + WorkflowService_StartWorkflowExecutionAsync_Helper.Args = func( + startRequest *shared.StartWorkflowExecutionAsyncRequest, + ) *WorkflowService_StartWorkflowExecutionAsync_Args { + return &WorkflowService_StartWorkflowExecutionAsync_Args{ + StartRequest: startRequest, + } + } + + WorkflowService_StartWorkflowExecutionAsync_Helper.IsException = func(err error) bool { + switch err.(type) { + case *shared.BadRequestError: + return true + case *shared.WorkflowExecutionAlreadyStartedError: + return true + case *shared.ServiceBusyError: + return true + case *shared.DomainNotActiveError: + return true + case *shared.LimitExceededError: + return true + case *shared.EntityNotExistsError: + return true + case *shared.ClientVersionNotSupportedError: + return true + default: + return false + } + } + + WorkflowService_StartWorkflowExecutionAsync_Helper.WrapResponse = func(success *shared.StartWorkflowExecutionAsyncResponse, err error) (*WorkflowService_StartWorkflowExecutionAsync_Result, error) { + if err == nil { + return &WorkflowService_StartWorkflowExecutionAsync_Result{Success: success}, nil + } + + switch e := err.(type) { + case *shared.BadRequestError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.BadRequestError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{BadRequestError: e}, nil + case *shared.WorkflowExecutionAlreadyStartedError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.SessionAlreadyExistError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{SessionAlreadyExistError: e}, nil + case *shared.ServiceBusyError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.ServiceBusyError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{ServiceBusyError: e}, nil + case *shared.DomainNotActiveError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.DomainNotActiveError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{DomainNotActiveError: e}, nil + case *shared.LimitExceededError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.LimitExceededError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{LimitExceededError: e}, nil + case *shared.EntityNotExistsError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.EntityNotExistError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{EntityNotExistError: e}, nil + case *shared.ClientVersionNotSupportedError: + if e == nil { + return nil, errors.New("WrapResponse received non-nil error type with nil value for WorkflowService_StartWorkflowExecutionAsync_Result.ClientVersionNotSupportedError") + } + return &WorkflowService_StartWorkflowExecutionAsync_Result{ClientVersionNotSupportedError: e}, nil + } + + return nil, err + } + WorkflowService_StartWorkflowExecutionAsync_Helper.UnwrapResponse = func(result *WorkflowService_StartWorkflowExecutionAsync_Result) (success *shared.StartWorkflowExecutionAsyncResponse, err error) { + if result.BadRequestError != nil { + err = result.BadRequestError + return + } + if result.SessionAlreadyExistError != nil { + err = result.SessionAlreadyExistError + return + } + if result.ServiceBusyError != nil { + err = result.ServiceBusyError + return + } + if result.DomainNotActiveError != nil { + err = result.DomainNotActiveError + return + } + if result.LimitExceededError != nil { + err = result.LimitExceededError + return + } + if result.EntityNotExistError != nil { + err = result.EntityNotExistError + return + } + if result.ClientVersionNotSupportedError != nil { + err = result.ClientVersionNotSupportedError + return + } + + if result.Success != nil { + success = result.Success + return + } + + err = errors.New("expected a non-void result") + return + } + +} + +// WorkflowService_StartWorkflowExecutionAsync_Result represents the result of a WorkflowService.StartWorkflowExecutionAsync function call. +// +// The result of a StartWorkflowExecutionAsync execution is sent and received over the wire as this struct. +// +// Success is set only if the function did not throw an exception. +type WorkflowService_StartWorkflowExecutionAsync_Result struct { + // Value returned by StartWorkflowExecutionAsync after a successful execution. + Success *shared.StartWorkflowExecutionAsyncResponse `json:"success,omitempty"` + BadRequestError *shared.BadRequestError `json:"badRequestError,omitempty"` + SessionAlreadyExistError *shared.WorkflowExecutionAlreadyStartedError `json:"sessionAlreadyExistError,omitempty"` + ServiceBusyError *shared.ServiceBusyError `json:"serviceBusyError,omitempty"` + DomainNotActiveError *shared.DomainNotActiveError `json:"domainNotActiveError,omitempty"` + LimitExceededError *shared.LimitExceededError `json:"limitExceededError,omitempty"` + EntityNotExistError *shared.EntityNotExistsError `json:"entityNotExistError,omitempty"` + ClientVersionNotSupportedError *shared.ClientVersionNotSupportedError `json:"clientVersionNotSupportedError,omitempty"` +} + +// ToWire translates a WorkflowService_StartWorkflowExecutionAsync_Result struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) ToWire() (wire.Value, error) { + var ( + fields [8]wire.Field + i int = 0 + w wire.Value + err error + ) + + if v.Success != nil { + w, err = v.Success.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 0, Value: w} + i++ + } + if v.BadRequestError != nil { + w, err = v.BadRequestError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 1, Value: w} + i++ + } + if v.SessionAlreadyExistError != nil { + w, err = v.SessionAlreadyExistError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 3, Value: w} + i++ + } + if v.ServiceBusyError != nil { + w, err = v.ServiceBusyError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 4, Value: w} + i++ + } + if v.DomainNotActiveError != nil { + w, err = v.DomainNotActiveError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 5, Value: w} + i++ + } + if v.LimitExceededError != nil { + w, err = v.LimitExceededError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 6, Value: w} + i++ + } + if v.EntityNotExistError != nil { + w, err = v.EntityNotExistError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 7, Value: w} + i++ + } + if v.ClientVersionNotSupportedError != nil { + w, err = v.ClientVersionNotSupportedError.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 8, Value: w} + i++ + } + + if i != 1 { + return wire.Value{}, fmt.Errorf("WorkflowService_StartWorkflowExecutionAsync_Result should have exactly one field: got %v fields", i) + } + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +func _StartWorkflowExecutionAsyncResponse_Read(w wire.Value) (*shared.StartWorkflowExecutionAsyncResponse, error) { + var v shared.StartWorkflowExecutionAsyncResponse + err := v.FromWire(w) + return &v, err +} + +// FromWire deserializes a WorkflowService_StartWorkflowExecutionAsync_Result struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a WorkflowService_StartWorkflowExecutionAsync_Result struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v WorkflowService_StartWorkflowExecutionAsync_Result +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) FromWire(w wire.Value) error { + var err error + + for _, field := range w.GetStruct().Fields { + switch field.ID { + case 0: + if field.Value.Type() == wire.TStruct { + v.Success, err = _StartWorkflowExecutionAsyncResponse_Read(field.Value) + if err != nil { + return err + } + + } + case 1: + if field.Value.Type() == wire.TStruct { + v.BadRequestError, err = _BadRequestError_Read(field.Value) + if err != nil { + return err + } + + } + case 3: + if field.Value.Type() == wire.TStruct { + v.SessionAlreadyExistError, err = _WorkflowExecutionAlreadyStartedError_Read(field.Value) + if err != nil { + return err + } + + } + case 4: + if field.Value.Type() == wire.TStruct { + v.ServiceBusyError, err = _ServiceBusyError_Read(field.Value) + if err != nil { + return err + } + + } + case 5: + if field.Value.Type() == wire.TStruct { + v.DomainNotActiveError, err = _DomainNotActiveError_Read(field.Value) + if err != nil { + return err + } + + } + case 6: + if field.Value.Type() == wire.TStruct { + v.LimitExceededError, err = _LimitExceededError_Read(field.Value) + if err != nil { + return err + } + + } + case 7: + if field.Value.Type() == wire.TStruct { + v.EntityNotExistError, err = _EntityNotExistsError_Read(field.Value) + if err != nil { + return err + } + + } + case 8: + if field.Value.Type() == wire.TStruct { + v.ClientVersionNotSupportedError, err = _ClientVersionNotSupportedError_Read(field.Value) + if err != nil { + return err + } + + } + } + } + + count := 0 + if v.Success != nil { + count++ + } + if v.BadRequestError != nil { + count++ + } + if v.SessionAlreadyExistError != nil { + count++ + } + if v.ServiceBusyError != nil { + count++ + } + if v.DomainNotActiveError != nil { + count++ + } + if v.LimitExceededError != nil { + count++ + } + if v.EntityNotExistError != nil { + count++ + } + if v.ClientVersionNotSupportedError != nil { + count++ + } + if count != 1 { + return fmt.Errorf("WorkflowService_StartWorkflowExecutionAsync_Result should have exactly one field: got %v fields", count) + } + + return nil +} + +// Encode serializes a WorkflowService_StartWorkflowExecutionAsync_Result struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a WorkflowService_StartWorkflowExecutionAsync_Result struct could not be encoded. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + if v.Success != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 0, Type: wire.TStruct}); err != nil { + return err + } + if err := v.Success.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.BadRequestError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 1, Type: wire.TStruct}); err != nil { + return err + } + if err := v.BadRequestError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.SessionAlreadyExistError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 3, Type: wire.TStruct}); err != nil { + return err + } + if err := v.SessionAlreadyExistError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.ServiceBusyError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 4, Type: wire.TStruct}); err != nil { + return err + } + if err := v.ServiceBusyError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.DomainNotActiveError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 5, Type: wire.TStruct}); err != nil { + return err + } + if err := v.DomainNotActiveError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.LimitExceededError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 6, Type: wire.TStruct}); err != nil { + return err + } + if err := v.LimitExceededError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.EntityNotExistError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 7, Type: wire.TStruct}); err != nil { + return err + } + if err := v.EntityNotExistError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.ClientVersionNotSupportedError != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 8, Type: wire.TStruct}); err != nil { + return err + } + if err := v.ClientVersionNotSupportedError.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + count := 0 + if v.Success != nil { + count++ + } + if v.BadRequestError != nil { + count++ + } + if v.SessionAlreadyExistError != nil { + count++ + } + if v.ServiceBusyError != nil { + count++ + } + if v.DomainNotActiveError != nil { + count++ + } + if v.LimitExceededError != nil { + count++ + } + if v.EntityNotExistError != nil { + count++ + } + if v.ClientVersionNotSupportedError != nil { + count++ + } + + if count != 1 { + return fmt.Errorf("WorkflowService_StartWorkflowExecutionAsync_Result should have exactly one field: got %v fields", count) + } + + return sw.WriteStructEnd() +} + +func _StartWorkflowExecutionAsyncResponse_Decode(sr stream.Reader) (*shared.StartWorkflowExecutionAsyncResponse, error) { + var v shared.StartWorkflowExecutionAsyncResponse + err := v.Decode(sr) + return &v, err +} + +// Decode deserializes a WorkflowService_StartWorkflowExecutionAsync_Result struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a WorkflowService_StartWorkflowExecutionAsync_Result struct could not be generated from the wire +// representation. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + case fh.ID == 0 && fh.Type == wire.TStruct: + v.Success, err = _StartWorkflowExecutionAsyncResponse_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 1 && fh.Type == wire.TStruct: + v.BadRequestError, err = _BadRequestError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 3 && fh.Type == wire.TStruct: + v.SessionAlreadyExistError, err = _WorkflowExecutionAlreadyStartedError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 4 && fh.Type == wire.TStruct: + v.ServiceBusyError, err = _ServiceBusyError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 5 && fh.Type == wire.TStruct: + v.DomainNotActiveError, err = _DomainNotActiveError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 6 && fh.Type == wire.TStruct: + v.LimitExceededError, err = _LimitExceededError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 7 && fh.Type == wire.TStruct: + v.EntityNotExistError, err = _EntityNotExistsError_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 8 && fh.Type == wire.TStruct: + v.ClientVersionNotSupportedError, err = _ClientVersionNotSupportedError_Decode(sr) + if err != nil { + return err + } + + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + count := 0 + if v.Success != nil { + count++ + } + if v.BadRequestError != nil { + count++ + } + if v.SessionAlreadyExistError != nil { + count++ + } + if v.ServiceBusyError != nil { + count++ + } + if v.DomainNotActiveError != nil { + count++ + } + if v.LimitExceededError != nil { + count++ + } + if v.EntityNotExistError != nil { + count++ + } + if v.ClientVersionNotSupportedError != nil { + count++ + } + if count != 1 { + return fmt.Errorf("WorkflowService_StartWorkflowExecutionAsync_Result should have exactly one field: got %v fields", count) + } + + return nil +} + +// String returns a readable string representation of a WorkflowService_StartWorkflowExecutionAsync_Result +// struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) String() string { + if v == nil { + return "" + } + + var fields [8]string + i := 0 + if v.Success != nil { + fields[i] = fmt.Sprintf("Success: %v", v.Success) + i++ + } + if v.BadRequestError != nil { + fields[i] = fmt.Sprintf("BadRequestError: %v", v.BadRequestError) + i++ + } + if v.SessionAlreadyExistError != nil { + fields[i] = fmt.Sprintf("SessionAlreadyExistError: %v", v.SessionAlreadyExistError) + i++ + } + if v.ServiceBusyError != nil { + fields[i] = fmt.Sprintf("ServiceBusyError: %v", v.ServiceBusyError) + i++ + } + if v.DomainNotActiveError != nil { + fields[i] = fmt.Sprintf("DomainNotActiveError: %v", v.DomainNotActiveError) + i++ + } + if v.LimitExceededError != nil { + fields[i] = fmt.Sprintf("LimitExceededError: %v", v.LimitExceededError) + i++ + } + if v.EntityNotExistError != nil { + fields[i] = fmt.Sprintf("EntityNotExistError: %v", v.EntityNotExistError) + i++ + } + if v.ClientVersionNotSupportedError != nil { + fields[i] = fmt.Sprintf("ClientVersionNotSupportedError: %v", v.ClientVersionNotSupportedError) + i++ + } + + return fmt.Sprintf("WorkflowService_StartWorkflowExecutionAsync_Result{%v}", strings.Join(fields[:i], ", ")) +} + +// Equals returns true if all the fields of this WorkflowService_StartWorkflowExecutionAsync_Result match the +// provided WorkflowService_StartWorkflowExecutionAsync_Result. +// +// This function performs a deep comparison. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) Equals(rhs *WorkflowService_StartWorkflowExecutionAsync_Result) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + if !((v.Success == nil && rhs.Success == nil) || (v.Success != nil && rhs.Success != nil && v.Success.Equals(rhs.Success))) { + return false + } + if !((v.BadRequestError == nil && rhs.BadRequestError == nil) || (v.BadRequestError != nil && rhs.BadRequestError != nil && v.BadRequestError.Equals(rhs.BadRequestError))) { + return false + } + if !((v.SessionAlreadyExistError == nil && rhs.SessionAlreadyExistError == nil) || (v.SessionAlreadyExistError != nil && rhs.SessionAlreadyExistError != nil && v.SessionAlreadyExistError.Equals(rhs.SessionAlreadyExistError))) { + return false + } + if !((v.ServiceBusyError == nil && rhs.ServiceBusyError == nil) || (v.ServiceBusyError != nil && rhs.ServiceBusyError != nil && v.ServiceBusyError.Equals(rhs.ServiceBusyError))) { + return false + } + if !((v.DomainNotActiveError == nil && rhs.DomainNotActiveError == nil) || (v.DomainNotActiveError != nil && rhs.DomainNotActiveError != nil && v.DomainNotActiveError.Equals(rhs.DomainNotActiveError))) { + return false + } + if !((v.LimitExceededError == nil && rhs.LimitExceededError == nil) || (v.LimitExceededError != nil && rhs.LimitExceededError != nil && v.LimitExceededError.Equals(rhs.LimitExceededError))) { + return false + } + if !((v.EntityNotExistError == nil && rhs.EntityNotExistError == nil) || (v.EntityNotExistError != nil && rhs.EntityNotExistError != nil && v.EntityNotExistError.Equals(rhs.EntityNotExistError))) { + return false + } + if !((v.ClientVersionNotSupportedError == nil && rhs.ClientVersionNotSupportedError == nil) || (v.ClientVersionNotSupportedError != nil && rhs.ClientVersionNotSupportedError != nil && v.ClientVersionNotSupportedError.Equals(rhs.ClientVersionNotSupportedError))) { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of WorkflowService_StartWorkflowExecutionAsync_Result. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + if v.Success != nil { + err = multierr.Append(err, enc.AddObject("success", v.Success)) + } + if v.BadRequestError != nil { + err = multierr.Append(err, enc.AddObject("badRequestError", v.BadRequestError)) + } + if v.SessionAlreadyExistError != nil { + err = multierr.Append(err, enc.AddObject("sessionAlreadyExistError", v.SessionAlreadyExistError)) + } + if v.ServiceBusyError != nil { + err = multierr.Append(err, enc.AddObject("serviceBusyError", v.ServiceBusyError)) + } + if v.DomainNotActiveError != nil { + err = multierr.Append(err, enc.AddObject("domainNotActiveError", v.DomainNotActiveError)) + } + if v.LimitExceededError != nil { + err = multierr.Append(err, enc.AddObject("limitExceededError", v.LimitExceededError)) + } + if v.EntityNotExistError != nil { + err = multierr.Append(err, enc.AddObject("entityNotExistError", v.EntityNotExistError)) + } + if v.ClientVersionNotSupportedError != nil { + err = multierr.Append(err, enc.AddObject("clientVersionNotSupportedError", v.ClientVersionNotSupportedError)) + } + return err +} + +// GetSuccess returns the value of Success if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetSuccess() (o *shared.StartWorkflowExecutionAsyncResponse) { + if v != nil && v.Success != nil { + return v.Success + } + + return +} + +// IsSetSuccess returns true if Success is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetSuccess() bool { + return v != nil && v.Success != nil +} + +// GetBadRequestError returns the value of BadRequestError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetBadRequestError() (o *shared.BadRequestError) { + if v != nil && v.BadRequestError != nil { + return v.BadRequestError + } + + return +} + +// IsSetBadRequestError returns true if BadRequestError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetBadRequestError() bool { + return v != nil && v.BadRequestError != nil +} + +// GetSessionAlreadyExistError returns the value of SessionAlreadyExistError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetSessionAlreadyExistError() (o *shared.WorkflowExecutionAlreadyStartedError) { + if v != nil && v.SessionAlreadyExistError != nil { + return v.SessionAlreadyExistError + } + + return +} + +// IsSetSessionAlreadyExistError returns true if SessionAlreadyExistError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetSessionAlreadyExistError() bool { + return v != nil && v.SessionAlreadyExistError != nil +} + +// GetServiceBusyError returns the value of ServiceBusyError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetServiceBusyError() (o *shared.ServiceBusyError) { + if v != nil && v.ServiceBusyError != nil { + return v.ServiceBusyError + } + + return +} + +// IsSetServiceBusyError returns true if ServiceBusyError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetServiceBusyError() bool { + return v != nil && v.ServiceBusyError != nil +} + +// GetDomainNotActiveError returns the value of DomainNotActiveError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetDomainNotActiveError() (o *shared.DomainNotActiveError) { + if v != nil && v.DomainNotActiveError != nil { + return v.DomainNotActiveError + } + + return +} + +// IsSetDomainNotActiveError returns true if DomainNotActiveError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetDomainNotActiveError() bool { + return v != nil && v.DomainNotActiveError != nil +} + +// GetLimitExceededError returns the value of LimitExceededError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetLimitExceededError() (o *shared.LimitExceededError) { + if v != nil && v.LimitExceededError != nil { + return v.LimitExceededError + } + + return +} + +// IsSetLimitExceededError returns true if LimitExceededError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetLimitExceededError() bool { + return v != nil && v.LimitExceededError != nil +} + +// GetEntityNotExistError returns the value of EntityNotExistError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetEntityNotExistError() (o *shared.EntityNotExistsError) { + if v != nil && v.EntityNotExistError != nil { + return v.EntityNotExistError + } + + return +} + +// IsSetEntityNotExistError returns true if EntityNotExistError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetEntityNotExistError() bool { + return v != nil && v.EntityNotExistError != nil +} + +// GetClientVersionNotSupportedError returns the value of ClientVersionNotSupportedError if it is set or its +// zero value if it is unset. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) GetClientVersionNotSupportedError() (o *shared.ClientVersionNotSupportedError) { + if v != nil && v.ClientVersionNotSupportedError != nil { + return v.ClientVersionNotSupportedError + } + + return +} + +// IsSetClientVersionNotSupportedError returns true if ClientVersionNotSupportedError is not nil. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) IsSetClientVersionNotSupportedError() bool { + return v != nil && v.ClientVersionNotSupportedError != nil +} + +// MethodName returns the name of the Thrift function as specified in +// the IDL, for which this struct represent the result. +// +// This will always be "StartWorkflowExecutionAsync" for this struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) MethodName() string { + return "StartWorkflowExecutionAsync" +} + +// EnvelopeType returns the kind of value inside this struct. +// +// This will always be Reply for this struct. +func (v *WorkflowService_StartWorkflowExecutionAsync_Result) EnvelopeType() wire.EnvelopeType { + return wire.Reply +} + // WorkflowService_TerminateWorkflowExecution_Args represents the arguments for the WorkflowService.TerminateWorkflowExecution function. // // The arguments for TerminateWorkflowExecution are sent and received over the wire as this struct. diff --git a/.gen/go/cadence/workflowserviceclient/client.go b/.gen/go/cadence/workflowserviceclient/client.go index 737daf6b736..2746d853e64 100644 --- a/.gen/go/cadence/workflowserviceclient/client.go +++ b/.gen/go/cadence/workflowserviceclient/client.go @@ -272,6 +272,12 @@ type Interface interface { opts ...yarpc.CallOption, ) (*shared.StartWorkflowExecutionResponse, error) + StartWorkflowExecutionAsync( + ctx context.Context, + StartRequest *shared.StartWorkflowExecutionAsyncRequest, + opts ...yarpc.CallOption, + ) (*shared.StartWorkflowExecutionAsyncResponse, error) + TerminateWorkflowExecution( ctx context.Context, TerminateRequest *shared.TerminateWorkflowExecutionRequest, @@ -1404,6 +1410,34 @@ func (c client) StartWorkflowExecution( return } +func (c client) StartWorkflowExecutionAsync( + ctx context.Context, + _StartRequest *shared.StartWorkflowExecutionAsyncRequest, + opts ...yarpc.CallOption, +) (success *shared.StartWorkflowExecutionAsyncResponse, err error) { + + var result cadence.WorkflowService_StartWorkflowExecutionAsync_Result + args := cadence.WorkflowService_StartWorkflowExecutionAsync_Helper.Args(_StartRequest) + + if c.nwc != nil && c.nwc.Enabled() { + if err = c.nwc.Call(ctx, args, &result, opts...); err != nil { + return + } + } else { + var body wire.Value + if body, err = c.c.Call(ctx, args, opts...); err != nil { + return + } + + if err = result.FromWire(body); err != nil { + return + } + } + + success, err = cadence.WorkflowService_StartWorkflowExecutionAsync_Helper.UnwrapResponse(&result) + return +} + func (c client) TerminateWorkflowExecution( ctx context.Context, _TerminateRequest *shared.TerminateWorkflowExecutionRequest, diff --git a/.gen/go/cadence/workflowserviceserver/server.go b/.gen/go/cadence/workflowserviceserver/server.go index 579bb73badd..c6cfc68b416 100644 --- a/.gen/go/cadence/workflowserviceserver/server.go +++ b/.gen/go/cadence/workflowserviceserver/server.go @@ -233,6 +233,11 @@ type Interface interface { StartRequest *shared.StartWorkflowExecutionRequest, ) (*shared.StartWorkflowExecutionResponse, error) + StartWorkflowExecutionAsync( + ctx context.Context, + StartRequest *shared.StartWorkflowExecutionAsyncRequest, + ) (*shared.StartWorkflowExecutionAsyncResponse, error) + TerminateWorkflowExecution( ctx context.Context, TerminateRequest *shared.TerminateWorkflowExecutionRequest, @@ -723,6 +728,18 @@ func New(impl Interface, opts ...thrift.RegisterOption) []transport.Procedure { ThriftModule: cadence.ThriftModule, }, + thrift.Method{ + Name: "StartWorkflowExecutionAsync", + HandlerSpec: thrift.HandlerSpec{ + + Type: transport.Unary, + Unary: thrift.UnaryHandler(h.StartWorkflowExecutionAsync), + NoWire: startworkflowexecutionasync_NoWireHandler{impl}, + }, + Signature: "StartWorkflowExecutionAsync(StartRequest *shared.StartWorkflowExecutionAsyncRequest) (*shared.StartWorkflowExecutionAsyncResponse)", + ThriftModule: cadence.ThriftModule, + }, + thrift.Method{ Name: "TerminateWorkflowExecution", HandlerSpec: thrift.HandlerSpec{ @@ -749,7 +766,7 @@ func New(impl Interface, opts ...thrift.RegisterOption) []transport.Procedure { }, } - procedures := make([]transport.Procedure, 0, 41) + procedures := make([]transport.Procedure, 0, 42) procedures = append(procedures, thrift.BuildProcedures(service, opts...)...) return procedures } @@ -1930,6 +1947,36 @@ func (h handler) StartWorkflowExecution(ctx context.Context, body wire.Value) (t return response, err } +func (h handler) StartWorkflowExecutionAsync(ctx context.Context, body wire.Value) (thrift.Response, error) { + var args cadence.WorkflowService_StartWorkflowExecutionAsync_Args + if err := args.FromWire(body); err != nil { + return thrift.Response{}, yarpcerrors.InvalidArgumentErrorf( + "could not decode Thrift request for service 'WorkflowService' procedure 'StartWorkflowExecutionAsync': %w", err) + } + + success, appErr := h.impl.StartWorkflowExecutionAsync(ctx, args.StartRequest) + + hadError := appErr != nil + result, err := cadence.WorkflowService_StartWorkflowExecutionAsync_Helper.WrapResponse(success, appErr) + + var response thrift.Response + if err == nil { + response.IsApplicationError = hadError + response.Body = result + if namer, ok := appErr.(yarpcErrorNamer); ok { + response.ApplicationErrorName = namer.YARPCErrorName() + } + if extractor, ok := appErr.(yarpcErrorCoder); ok { + response.ApplicationErrorCode = extractor.YARPCErrorCode() + } + if appErr != nil { + response.ApplicationErrorDetails = appErr.Error() + } + } + + return response, err +} + func (h handler) TerminateWorkflowExecution(ctx context.Context, body wire.Value) (thrift.Response, error) { var args cadence.WorkflowService_TerminateWorkflowExecution_Args if err := args.FromWire(body); err != nil { @@ -3433,6 +3480,43 @@ func (h startworkflowexecution_NoWireHandler) HandleNoWire(ctx context.Context, } +type startworkflowexecutionasync_NoWireHandler struct{ impl Interface } + +func (h startworkflowexecutionasync_NoWireHandler) HandleNoWire(ctx context.Context, nwc *thrift.NoWireCall) (thrift.NoWireResponse, error) { + var ( + args cadence.WorkflowService_StartWorkflowExecutionAsync_Args + rw stream.ResponseWriter + err error + ) + + rw, err = nwc.RequestReader.ReadRequest(ctx, nwc.EnvelopeType, nwc.Reader, &args) + if err != nil { + return thrift.NoWireResponse{}, yarpcerrors.InvalidArgumentErrorf( + "could not decode (via no wire) Thrift request for service 'WorkflowService' procedure 'StartWorkflowExecutionAsync': %w", err) + } + + success, appErr := h.impl.StartWorkflowExecutionAsync(ctx, args.StartRequest) + + hadError := appErr != nil + result, err := cadence.WorkflowService_StartWorkflowExecutionAsync_Helper.WrapResponse(success, appErr) + response := thrift.NoWireResponse{ResponseWriter: rw} + if err == nil { + response.IsApplicationError = hadError + response.Body = result + if namer, ok := appErr.(yarpcErrorNamer); ok { + response.ApplicationErrorName = namer.YARPCErrorName() + } + if extractor, ok := appErr.(yarpcErrorCoder); ok { + response.ApplicationErrorCode = extractor.YARPCErrorCode() + } + if appErr != nil { + response.ApplicationErrorDetails = appErr.Error() + } + } + return response, err + +} + type terminateworkflowexecution_NoWireHandler struct{ impl Interface } func (h terminateworkflowexecution_NoWireHandler) HandleNoWire(ctx context.Context, nwc *thrift.NoWireCall) (thrift.NoWireResponse, error) { diff --git a/.gen/go/cadence/workflowservicetest/client.go b/.gen/go/cadence/workflowservicetest/client.go index 5fb9d08af61..5cb9290a036 100644 --- a/.gen/go/cadence/workflowservicetest/client.go +++ b/.gen/go/cadence/workflowservicetest/client.go @@ -1323,6 +1323,39 @@ func (mr *_MockClientRecorder) StartWorkflowExecution( return mr.mock.ctrl.RecordCall(mr.mock, "StartWorkflowExecution", args...) } +// StartWorkflowExecutionAsync responds to a StartWorkflowExecutionAsync call based on the mock expectations. This +// call will fail if the mock does not expect this call. Use EXPECT to expect +// a call to this function. +// +// client.EXPECT().StartWorkflowExecutionAsync(gomock.Any(), ...).Return(...) +// ... := client.StartWorkflowExecutionAsync(...) +func (m *MockClient) StartWorkflowExecutionAsync( + ctx context.Context, + _StartRequest *shared.StartWorkflowExecutionAsyncRequest, + opts ...yarpc.CallOption, +) (success *shared.StartWorkflowExecutionAsyncResponse, err error) { + + args := []interface{}{ctx, _StartRequest} + for _, o := range opts { + args = append(args, o) + } + i := 0 + ret := m.ctrl.Call(m, "StartWorkflowExecutionAsync", args...) + success, _ = ret[i].(*shared.StartWorkflowExecutionAsyncResponse) + i++ + err, _ = ret[i].(error) + return +} + +func (mr *_MockClientRecorder) StartWorkflowExecutionAsync( + ctx interface{}, + _StartRequest interface{}, + opts ...interface{}, +) *gomock.Call { + args := append([]interface{}{ctx, _StartRequest}, opts...) + return mr.mock.ctrl.RecordCall(mr.mock, "StartWorkflowExecutionAsync", args...) +} + // TerminateWorkflowExecution responds to a TerminateWorkflowExecution call based on the mock expectations. This // call will fail if the mock does not expect this call. Use EXPECT to expect // a call to this function. diff --git a/.gen/go/shared/shared.go b/.gen/go/shared/shared.go index f6b7b008e9f..2478ab25707 100644 --- a/.gen/go/shared/shared.go +++ b/.gen/go/shared/shared.go @@ -86956,6 +86956,366 @@ func (v *StartTimerDecisionAttributes) IsSetStartToFireTimeoutSeconds() bool { return v != nil && v.StartToFireTimeoutSeconds != nil } +type StartWorkflowExecutionAsyncRequest struct { + Request *StartWorkflowExecutionRequest `json:"request,omitempty"` +} + +// ToWire translates a StartWorkflowExecutionAsyncRequest struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *StartWorkflowExecutionAsyncRequest) ToWire() (wire.Value, error) { + var ( + fields [1]wire.Field + i int = 0 + w wire.Value + err error + ) + + if v.Request != nil { + w, err = v.Request.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 10, Value: w} + i++ + } + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +func _StartWorkflowExecutionRequest_Read(w wire.Value) (*StartWorkflowExecutionRequest, error) { + var v StartWorkflowExecutionRequest + err := v.FromWire(w) + return &v, err +} + +// FromWire deserializes a StartWorkflowExecutionAsyncRequest struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a StartWorkflowExecutionAsyncRequest struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v StartWorkflowExecutionAsyncRequest +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *StartWorkflowExecutionAsyncRequest) FromWire(w wire.Value) error { + var err error + + for _, field := range w.GetStruct().Fields { + switch field.ID { + case 10: + if field.Value.Type() == wire.TStruct { + v.Request, err = _StartWorkflowExecutionRequest_Read(field.Value) + if err != nil { + return err + } + + } + } + } + + return nil +} + +// Encode serializes a StartWorkflowExecutionAsyncRequest struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a StartWorkflowExecutionAsyncRequest struct could not be encoded. +func (v *StartWorkflowExecutionAsyncRequest) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + if v.Request != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 10, Type: wire.TStruct}); err != nil { + return err + } + if err := v.Request.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + return sw.WriteStructEnd() +} + +func _StartWorkflowExecutionRequest_Decode(sr stream.Reader) (*StartWorkflowExecutionRequest, error) { + var v StartWorkflowExecutionRequest + err := v.Decode(sr) + return &v, err +} + +// Decode deserializes a StartWorkflowExecutionAsyncRequest struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a StartWorkflowExecutionAsyncRequest struct could not be generated from the wire +// representation. +func (v *StartWorkflowExecutionAsyncRequest) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + case fh.ID == 10 && fh.Type == wire.TStruct: + v.Request, err = _StartWorkflowExecutionRequest_Decode(sr) + if err != nil { + return err + } + + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + return nil +} + +// String returns a readable string representation of a StartWorkflowExecutionAsyncRequest +// struct. +func (v *StartWorkflowExecutionAsyncRequest) String() string { + if v == nil { + return "" + } + + var fields [1]string + i := 0 + if v.Request != nil { + fields[i] = fmt.Sprintf("Request: %v", v.Request) + i++ + } + + return fmt.Sprintf("StartWorkflowExecutionAsyncRequest{%v}", strings.Join(fields[:i], ", ")) +} + +// Equals returns true if all the fields of this StartWorkflowExecutionAsyncRequest match the +// provided StartWorkflowExecutionAsyncRequest. +// +// This function performs a deep comparison. +func (v *StartWorkflowExecutionAsyncRequest) Equals(rhs *StartWorkflowExecutionAsyncRequest) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + if !((v.Request == nil && rhs.Request == nil) || (v.Request != nil && rhs.Request != nil && v.Request.Equals(rhs.Request))) { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of StartWorkflowExecutionAsyncRequest. +func (v *StartWorkflowExecutionAsyncRequest) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + if v.Request != nil { + err = multierr.Append(err, enc.AddObject("request", v.Request)) + } + return err +} + +// GetRequest returns the value of Request if it is set or its +// zero value if it is unset. +func (v *StartWorkflowExecutionAsyncRequest) GetRequest() (o *StartWorkflowExecutionRequest) { + if v != nil && v.Request != nil { + return v.Request + } + + return +} + +// IsSetRequest returns true if Request is not nil. +func (v *StartWorkflowExecutionAsyncRequest) IsSetRequest() bool { + return v != nil && v.Request != nil +} + +type StartWorkflowExecutionAsyncResponse struct { +} + +// ToWire translates a StartWorkflowExecutionAsyncResponse struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *StartWorkflowExecutionAsyncResponse) ToWire() (wire.Value, error) { + var ( + fields [0]wire.Field + i int = 0 + ) + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +// FromWire deserializes a StartWorkflowExecutionAsyncResponse struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a StartWorkflowExecutionAsyncResponse struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v StartWorkflowExecutionAsyncResponse +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *StartWorkflowExecutionAsyncResponse) FromWire(w wire.Value) error { + + for _, field := range w.GetStruct().Fields { + switch field.ID { + } + } + + return nil +} + +// Encode serializes a StartWorkflowExecutionAsyncResponse struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a StartWorkflowExecutionAsyncResponse struct could not be encoded. +func (v *StartWorkflowExecutionAsyncResponse) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + return sw.WriteStructEnd() +} + +// Decode deserializes a StartWorkflowExecutionAsyncResponse struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a StartWorkflowExecutionAsyncResponse struct could not be generated from the wire +// representation. +func (v *StartWorkflowExecutionAsyncResponse) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + return nil +} + +// String returns a readable string representation of a StartWorkflowExecutionAsyncResponse +// struct. +func (v *StartWorkflowExecutionAsyncResponse) String() string { + if v == nil { + return "" + } + + var fields [0]string + i := 0 + + return fmt.Sprintf("StartWorkflowExecutionAsyncResponse{%v}", strings.Join(fields[:i], ", ")) +} + +// Equals returns true if all the fields of this StartWorkflowExecutionAsyncResponse match the +// provided StartWorkflowExecutionAsyncResponse. +// +// This function performs a deep comparison. +func (v *StartWorkflowExecutionAsyncResponse) Equals(rhs *StartWorkflowExecutionAsyncResponse) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of StartWorkflowExecutionAsyncResponse. +func (v *StartWorkflowExecutionAsyncResponse) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + return err +} + type StartWorkflowExecutionRequest struct { Domain *string `json:"domain,omitempty"` WorkflowId *string `json:"workflowId,omitempty"` @@ -105600,8 +105960,8 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "shared", Package: "github.com/uber/cadence/.gen/go/shared", FilePath: "shared.thrift", - SHA1: "adb620d762281cdfd25d4b3690e050f157b1157d", + SHA1: "2f3a08f91c4d4a7134f2bdb9af9795ca0cd08410", Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n}\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 10: optional string predefinedQueueName\n\n // Below fields are only used if predefinedQueueName is not set\n 20: optional AsyncWorkflowQueueType queueType\n 30: optional AsyncWorkflowKafkaQueueConfiguration kafkaConfig\n}\n\nenum AsyncWorkflowQueueType {\n Invalid,\n Kafka,\n}\n\nstruct AsyncWorkflowKafkaQueueConfiguration {\n 10: optional string topic\n 20: optional string dlqTopic\n 30: optional string consumerGroup\n 40: optional list brokers\n 50: optional map properties\n // TODO: define auth mechanisms such as tls, sasl\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct StartWorkflowExecutionAsyncRequest {\n 10: optional StartWorkflowExecutionRequest request\n}\n\nstruct StartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n}\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 10: optional string predefinedQueueName\n\n // Below fields are only used if predefinedQueueName is not set\n 20: optional AsyncWorkflowQueueType queueType\n 30: optional AsyncWorkflowKafkaQueueConfiguration kafkaConfig\n}\n\nenum AsyncWorkflowQueueType {\n Invalid,\n Kafka,\n}\n\nstruct AsyncWorkflowKafkaQueueConfiguration {\n 10: optional string topic\n 20: optional string dlqTopic\n 30: optional string consumerGroup\n 40: optional list brokers\n 50: optional map properties\n // TODO: define auth mechanisms such as tls, sasl\n}\n" diff --git a/.gen/go/sqlblobs/sqlblobs.go b/.gen/go/sqlblobs/sqlblobs.go index 6669d172fb3..b9ad85536e0 100644 --- a/.gen/go/sqlblobs/sqlblobs.go +++ b/.gen/go/sqlblobs/sqlblobs.go @@ -28,7 +28,10 @@ package sqlblobs import ( bytes "bytes" base64 "encoding/base64" + json "encoding/json" fmt "fmt" + math "math" + strconv "strconv" strings "strings" multierr "go.uber.org/multierr" @@ -2322,6 +2325,684 @@ func (v *ActivityInfo) IsSetRetryLastFailureDetails() bool { return v != nil && v.RetryLastFailureDetails != nil } +type AsyncRequestMessage struct { + PartitionKey *string `json:"partitionKey,omitempty"` + Type *AsyncRequestType `json:"type,omitempty"` + Header *shared.Header `json:"header,omitempty"` + Encoding *string `json:"encoding,omitempty"` + Payload []byte `json:"payload,omitempty"` +} + +// ToWire translates a AsyncRequestMessage struct into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// An error is returned if the struct or any of its fields failed to +// validate. +// +// x, err := v.ToWire() +// if err != nil { +// return err +// } +// +// if err := binaryProtocol.Encode(x, writer); err != nil { +// return err +// } +func (v *AsyncRequestMessage) ToWire() (wire.Value, error) { + var ( + fields [5]wire.Field + i int = 0 + w wire.Value + err error + ) + + if v.PartitionKey != nil { + w, err = wire.NewValueString(*(v.PartitionKey)), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 10, Value: w} + i++ + } + if v.Type != nil { + w, err = v.Type.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 12, Value: w} + i++ + } + if v.Header != nil { + w, err = v.Header.ToWire() + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 14, Value: w} + i++ + } + if v.Encoding != nil { + w, err = wire.NewValueString(*(v.Encoding)), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 16, Value: w} + i++ + } + if v.Payload != nil { + w, err = wire.NewValueBinary(v.Payload), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 18, Value: w} + i++ + } + + return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil +} + +func _AsyncRequestType_Read(w wire.Value) (AsyncRequestType, error) { + var v AsyncRequestType + err := v.FromWire(w) + return v, err +} + +func _Header_Read(w wire.Value) (*shared.Header, error) { + var v shared.Header + err := v.FromWire(w) + return &v, err +} + +// FromWire deserializes a AsyncRequestMessage struct from its Thrift-level +// representation. The Thrift-level representation may be obtained +// from a ThriftRW protocol implementation. +// +// An error is returned if we were unable to build a AsyncRequestMessage struct +// from the provided intermediate representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TStruct) +// if err != nil { +// return nil, err +// } +// +// var v AsyncRequestMessage +// if err := v.FromWire(x); err != nil { +// return nil, err +// } +// return &v, nil +func (v *AsyncRequestMessage) FromWire(w wire.Value) error { + var err error + + for _, field := range w.GetStruct().Fields { + switch field.ID { + case 10: + if field.Value.Type() == wire.TBinary { + var x string + x, err = field.Value.GetString(), error(nil) + v.PartitionKey = &x + if err != nil { + return err + } + + } + case 12: + if field.Value.Type() == wire.TI32 { + var x AsyncRequestType + x, err = _AsyncRequestType_Read(field.Value) + v.Type = &x + if err != nil { + return err + } + + } + case 14: + if field.Value.Type() == wire.TStruct { + v.Header, err = _Header_Read(field.Value) + if err != nil { + return err + } + + } + case 16: + if field.Value.Type() == wire.TBinary { + var x string + x, err = field.Value.GetString(), error(nil) + v.Encoding = &x + if err != nil { + return err + } + + } + case 18: + if field.Value.Type() == wire.TBinary { + v.Payload, err = field.Value.GetBinary(), error(nil) + if err != nil { + return err + } + + } + } + } + + return nil +} + +// Encode serializes a AsyncRequestMessage struct directly into bytes, without going +// through an intermediary type. +// +// An error is returned if a AsyncRequestMessage struct could not be encoded. +func (v *AsyncRequestMessage) Encode(sw stream.Writer) error { + if err := sw.WriteStructBegin(); err != nil { + return err + } + + if v.PartitionKey != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 10, Type: wire.TBinary}); err != nil { + return err + } + if err := sw.WriteString(*(v.PartitionKey)); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.Type != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 12, Type: wire.TI32}); err != nil { + return err + } + if err := v.Type.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.Header != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 14, Type: wire.TStruct}); err != nil { + return err + } + if err := v.Header.Encode(sw); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.Encoding != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 16, Type: wire.TBinary}); err != nil { + return err + } + if err := sw.WriteString(*(v.Encoding)); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + if v.Payload != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 18, Type: wire.TBinary}); err != nil { + return err + } + if err := sw.WriteBinary(v.Payload); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + + return sw.WriteStructEnd() +} + +func _AsyncRequestType_Decode(sr stream.Reader) (AsyncRequestType, error) { + var v AsyncRequestType + err := v.Decode(sr) + return v, err +} + +func _Header_Decode(sr stream.Reader) (*shared.Header, error) { + var v shared.Header + err := v.Decode(sr) + return &v, err +} + +// Decode deserializes a AsyncRequestMessage struct directly from its Thrift-level +// representation, without going through an intemediary type. +// +// An error is returned if a AsyncRequestMessage struct could not be generated from the wire +// representation. +func (v *AsyncRequestMessage) Decode(sr stream.Reader) error { + + if err := sr.ReadStructBegin(); err != nil { + return err + } + + fh, ok, err := sr.ReadFieldBegin() + if err != nil { + return err + } + + for ok { + switch { + case fh.ID == 10 && fh.Type == wire.TBinary: + var x string + x, err = sr.ReadString() + v.PartitionKey = &x + if err != nil { + return err + } + + case fh.ID == 12 && fh.Type == wire.TI32: + var x AsyncRequestType + x, err = _AsyncRequestType_Decode(sr) + v.Type = &x + if err != nil { + return err + } + + case fh.ID == 14 && fh.Type == wire.TStruct: + v.Header, err = _Header_Decode(sr) + if err != nil { + return err + } + + case fh.ID == 16 && fh.Type == wire.TBinary: + var x string + x, err = sr.ReadString() + v.Encoding = &x + if err != nil { + return err + } + + case fh.ID == 18 && fh.Type == wire.TBinary: + v.Payload, err = sr.ReadBinary() + if err != nil { + return err + } + + default: + if err := sr.Skip(fh.Type); err != nil { + return err + } + } + + if err := sr.ReadFieldEnd(); err != nil { + return err + } + + if fh, ok, err = sr.ReadFieldBegin(); err != nil { + return err + } + } + + if err := sr.ReadStructEnd(); err != nil { + return err + } + + return nil +} + +// String returns a readable string representation of a AsyncRequestMessage +// struct. +func (v *AsyncRequestMessage) String() string { + if v == nil { + return "" + } + + var fields [5]string + i := 0 + if v.PartitionKey != nil { + fields[i] = fmt.Sprintf("PartitionKey: %v", *(v.PartitionKey)) + i++ + } + if v.Type != nil { + fields[i] = fmt.Sprintf("Type: %v", *(v.Type)) + i++ + } + if v.Header != nil { + fields[i] = fmt.Sprintf("Header: %v", v.Header) + i++ + } + if v.Encoding != nil { + fields[i] = fmt.Sprintf("Encoding: %v", *(v.Encoding)) + i++ + } + if v.Payload != nil { + fields[i] = fmt.Sprintf("Payload: %v", v.Payload) + i++ + } + + return fmt.Sprintf("AsyncRequestMessage{%v}", strings.Join(fields[:i], ", ")) +} + +func _AsyncRequestType_EqualsPtr(lhs, rhs *AsyncRequestType) bool { + if lhs != nil && rhs != nil { + + x := *lhs + y := *rhs + return x.Equals(y) + } + return lhs == nil && rhs == nil +} + +// Equals returns true if all the fields of this AsyncRequestMessage match the +// provided AsyncRequestMessage. +// +// This function performs a deep comparison. +func (v *AsyncRequestMessage) Equals(rhs *AsyncRequestMessage) bool { + if v == nil { + return rhs == nil + } else if rhs == nil { + return false + } + if !_String_EqualsPtr(v.PartitionKey, rhs.PartitionKey) { + return false + } + if !_AsyncRequestType_EqualsPtr(v.Type, rhs.Type) { + return false + } + if !((v.Header == nil && rhs.Header == nil) || (v.Header != nil && rhs.Header != nil && v.Header.Equals(rhs.Header))) { + return false + } + if !_String_EqualsPtr(v.Encoding, rhs.Encoding) { + return false + } + if !((v.Payload == nil && rhs.Payload == nil) || (v.Payload != nil && rhs.Payload != nil && bytes.Equal(v.Payload, rhs.Payload))) { + return false + } + + return true +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of AsyncRequestMessage. +func (v *AsyncRequestMessage) MarshalLogObject(enc zapcore.ObjectEncoder) (err error) { + if v == nil { + return nil + } + if v.PartitionKey != nil { + enc.AddString("partitionKey", *v.PartitionKey) + } + if v.Type != nil { + err = multierr.Append(err, enc.AddObject("type", *v.Type)) + } + if v.Header != nil { + err = multierr.Append(err, enc.AddObject("header", v.Header)) + } + if v.Encoding != nil { + enc.AddString("encoding", *v.Encoding) + } + if v.Payload != nil { + enc.AddString("payload", base64.StdEncoding.EncodeToString(v.Payload)) + } + return err +} + +// GetPartitionKey returns the value of PartitionKey if it is set or its +// zero value if it is unset. +func (v *AsyncRequestMessage) GetPartitionKey() (o string) { + if v != nil && v.PartitionKey != nil { + return *v.PartitionKey + } + + return +} + +// IsSetPartitionKey returns true if PartitionKey is not nil. +func (v *AsyncRequestMessage) IsSetPartitionKey() bool { + return v != nil && v.PartitionKey != nil +} + +// GetType returns the value of Type if it is set or its +// zero value if it is unset. +func (v *AsyncRequestMessage) GetType() (o AsyncRequestType) { + if v != nil && v.Type != nil { + return *v.Type + } + + return +} + +// IsSetType returns true if Type is not nil. +func (v *AsyncRequestMessage) IsSetType() bool { + return v != nil && v.Type != nil +} + +// GetHeader returns the value of Header if it is set or its +// zero value if it is unset. +func (v *AsyncRequestMessage) GetHeader() (o *shared.Header) { + if v != nil && v.Header != nil { + return v.Header + } + + return +} + +// IsSetHeader returns true if Header is not nil. +func (v *AsyncRequestMessage) IsSetHeader() bool { + return v != nil && v.Header != nil +} + +// GetEncoding returns the value of Encoding if it is set or its +// zero value if it is unset. +func (v *AsyncRequestMessage) GetEncoding() (o string) { + if v != nil && v.Encoding != nil { + return *v.Encoding + } + + return +} + +// IsSetEncoding returns true if Encoding is not nil. +func (v *AsyncRequestMessage) IsSetEncoding() bool { + return v != nil && v.Encoding != nil +} + +// GetPayload returns the value of Payload if it is set or its +// zero value if it is unset. +func (v *AsyncRequestMessage) GetPayload() (o []byte) { + if v != nil && v.Payload != nil { + return v.Payload + } + + return +} + +// IsSetPayload returns true if Payload is not nil. +func (v *AsyncRequestMessage) IsSetPayload() bool { + return v != nil && v.Payload != nil +} + +type AsyncRequestType int32 + +const ( + AsyncRequestTypeStartWorkflowExecutionAsyncRequest AsyncRequestType = 0 +) + +// AsyncRequestType_Values returns all recognized values of AsyncRequestType. +func AsyncRequestType_Values() []AsyncRequestType { + return []AsyncRequestType{ + AsyncRequestTypeStartWorkflowExecutionAsyncRequest, + } +} + +// UnmarshalText tries to decode AsyncRequestType from a byte slice +// containing its name. +// +// var v AsyncRequestType +// err := v.UnmarshalText([]byte("StartWorkflowExecutionAsyncRequest")) +func (v *AsyncRequestType) UnmarshalText(value []byte) error { + switch s := string(value); s { + case "StartWorkflowExecutionAsyncRequest": + *v = AsyncRequestTypeStartWorkflowExecutionAsyncRequest + return nil + default: + val, err := strconv.ParseInt(s, 10, 32) + if err != nil { + return fmt.Errorf("unknown enum value %q for %q: %v", s, "AsyncRequestType", err) + } + *v = AsyncRequestType(val) + return nil + } +} + +// MarshalText encodes AsyncRequestType to text. +// +// If the enum value is recognized, its name is returned. +// Otherwise, its integer value is returned. +// +// This implements the TextMarshaler interface. +func (v AsyncRequestType) MarshalText() ([]byte, error) { + switch int32(v) { + case 0: + return []byte("StartWorkflowExecutionAsyncRequest"), nil + } + return []byte(strconv.FormatInt(int64(v), 10)), nil +} + +// MarshalLogObject implements zapcore.ObjectMarshaler, enabling +// fast logging of AsyncRequestType. +// Enums are logged as objects, where the value is logged with key "value", and +// if this value's name is known, the name is logged with key "name". +func (v AsyncRequestType) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddInt32("value", int32(v)) + switch int32(v) { + case 0: + enc.AddString("name", "StartWorkflowExecutionAsyncRequest") + } + return nil +} + +// Ptr returns a pointer to this enum value. +func (v AsyncRequestType) Ptr() *AsyncRequestType { + return &v +} + +// Encode encodes AsyncRequestType directly to bytes. +// +// sWriter := BinaryStreamer.Writer(writer) +// +// var v AsyncRequestType +// return v.Encode(sWriter) +func (v AsyncRequestType) Encode(sw stream.Writer) error { + return sw.WriteInt32(int32(v)) +} + +// ToWire translates AsyncRequestType into a Thrift-level intermediate +// representation. This intermediate representation may be serialized +// into bytes using a ThriftRW protocol implementation. +// +// Enums are represented as 32-bit integers over the wire. +func (v AsyncRequestType) ToWire() (wire.Value, error) { + return wire.NewValueI32(int32(v)), nil +} + +// FromWire deserializes AsyncRequestType from its Thrift-level +// representation. +// +// x, err := binaryProtocol.Decode(reader, wire.TI32) +// if err != nil { +// return AsyncRequestType(0), err +// } +// +// var v AsyncRequestType +// if err := v.FromWire(x); err != nil { +// return AsyncRequestType(0), err +// } +// return v, nil +func (v *AsyncRequestType) FromWire(w wire.Value) error { + *v = (AsyncRequestType)(w.GetI32()) + return nil +} + +// Decode reads off the encoded AsyncRequestType directly off of the wire. +// +// sReader := BinaryStreamer.Reader(reader) +// +// var v AsyncRequestType +// if err := v.Decode(sReader); err != nil { +// return AsyncRequestType(0), err +// } +// return v, nil +func (v *AsyncRequestType) Decode(sr stream.Reader) error { + i, err := sr.ReadInt32() + if err != nil { + return err + } + *v = (AsyncRequestType)(i) + return nil +} + +// String returns a readable string representation of AsyncRequestType. +func (v AsyncRequestType) String() string { + w := int32(v) + switch w { + case 0: + return "StartWorkflowExecutionAsyncRequest" + } + return fmt.Sprintf("AsyncRequestType(%d)", w) +} + +// Equals returns true if this AsyncRequestType value matches the provided +// value. +func (v AsyncRequestType) Equals(rhs AsyncRequestType) bool { + return v == rhs +} + +// MarshalJSON serializes AsyncRequestType into JSON. +// +// If the enum value is recognized, its name is returned. +// Otherwise, its integer value is returned. +// +// This implements json.Marshaler. +func (v AsyncRequestType) MarshalJSON() ([]byte, error) { + switch int32(v) { + case 0: + return ([]byte)("\"StartWorkflowExecutionAsyncRequest\""), nil + } + return ([]byte)(strconv.FormatInt(int64(v), 10)), nil +} + +// UnmarshalJSON attempts to decode AsyncRequestType from its JSON +// representation. +// +// This implementation supports both, numeric and string inputs. If a +// string is provided, it must be a known enum name. +// +// This implements json.Unmarshaler. +func (v *AsyncRequestType) UnmarshalJSON(text []byte) error { + d := json.NewDecoder(bytes.NewReader(text)) + d.UseNumber() + t, err := d.Token() + if err != nil { + return err + } + + switch w := t.(type) { + case json.Number: + x, err := w.Int64() + if err != nil { + return err + } + if x > math.MaxInt32 { + return fmt.Errorf("enum overflow from JSON %q for %q", text, "AsyncRequestType") + } + if x < math.MinInt32 { + return fmt.Errorf("enum underflow from JSON %q for %q", text, "AsyncRequestType") + } + *v = (AsyncRequestType)(x) + return nil + case string: + return v.UnmarshalText([]byte(w)) + default: + return fmt.Errorf("invalid JSON value %q (%T) to unmarshal into %q", t, t, "AsyncRequestType") + } +} + type ChildExecutionInfo struct { Version *int64 `json:"version,omitempty"` InitiatedEventBatchID *int64 `json:"initiatedEventBatchID,omitempty"` @@ -16257,11 +16938,11 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "sqlblobs", Package: "github.com/uber/cadence/.gen/go/sqlblobs", FilePath: "sqlblobs.thrift", - SHA1: "3a3d7a60c540664f6b8be5377c661f580d82bf6f", + SHA1: "cf56b215a016d7da868d48b487067575b3469a74", Includes: []*thriftreflect.ThriftModule{ shared.ThriftModule, }, Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence.sqlblobs\n\ninclude \"shared.thrift\"\n\nstruct ShardInfo {\n 10: optional i32 stolenSinceRenew\n 12: optional i64 (js.type = \"Long\") updatedAtNanos\n 14: optional i64 (js.type = \"Long\") replicationAckLevel\n 16: optional i64 (js.type = \"Long\") transferAckLevel\n 18: optional i64 (js.type = \"Long\") timerAckLevelNanos\n 24: optional i64 (js.type = \"Long\") domainNotificationVersion\n 34: optional map clusterTransferAckLevel\n 36: optional map clusterTimerAckLevel\n 38: optional string owner\n 40: optional map clusterReplicationLevel\n 42: optional binary pendingFailoverMarkers\n 44: optional string pendingFailoverMarkersEncoding\n 46: optional map replicationDlqAckLevel\n 50: optional binary transferProcessingQueueStates\n 51: optional string transferProcessingQueueStatesEncoding\n 55: optional binary timerProcessingQueueStates\n 56: optional string timerProcessingQueueStatesEncoding\n 60: optional binary crossClusterProcessingQueueStates\n 61: optional string crossClusterProcessingQueueStatesEncoding\n}\n\nstruct DomainInfo {\n 10: optional string name\n 12: optional string description\n 14: optional string owner\n 16: optional i32 status\n 18: optional i16 retentionDays\n 20: optional bool emitMetric\n 22: optional string archivalBucket\n 24: optional i16 archivalStatus\n 26: optional i64 (js.type = \"Long\") configVersion\n 28: optional i64 (js.type = \"Long\") notificationVersion\n 30: optional i64 (js.type = \"Long\") failoverNotificationVersion\n 32: optional i64 (js.type = \"Long\") failoverVersion\n 34: optional string activeClusterName\n 36: optional list clusters\n 38: optional map data\n 39: optional binary badBinaries\n 40: optional string badBinariesEncoding\n 42: optional i16 historyArchivalStatus\n 44: optional string historyArchivalURI\n 46: optional i16 visibilityArchivalStatus\n 48: optional string visibilityArchivalURI\n 50: optional i64 (js.type = \"Long\") failoverEndTime\n 52: optional i64 (js.type = \"Long\") previousFailoverVersion\n 54: optional i64 (js.type = \"Long\") lastUpdatedTime\n 56: optional binary isolationGroupsConfiguration\n 58: optional string isolationGroupsConfigurationEncoding\n}\n\nstruct HistoryTreeInfo {\n 10: optional i64 (js.type = \"Long\") createdTimeNanos // For fork operation to prevent race condition of leaking event data when forking branches fail. Also can be used for clean up leaked data\n 12: optional list ancestors\n 14: optional string info // For lookup back to workflow during debugging, also background cleanup when fork operation cannot finish self cleanup due to crash.\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional binary parentDomainID\n 12: optional string parentWorkflowID\n 14: optional binary parentRunID\n 16: optional i64 (js.type = \"Long\") initiatedID\n 18: optional i64 (js.type = \"Long\") completionEventBatchID\n 20: optional binary completionEvent\n 22: optional string completionEventEncoding\n 24: optional string taskList\n 26: optional string workflowTypeName\n 28: optional i32 workflowTimeoutSeconds\n 30: optional i32 decisionTaskTimeoutSeconds\n 32: optional binary executionContext\n 34: optional i32 state\n 36: optional i32 closeStatus\n 38: optional i64 (js.type = \"Long\") startVersion\n 44: optional i64 (js.type = \"Long\") lastWriteEventID\n 48: optional i64 (js.type = \"Long\") lastEventTaskID\n 50: optional i64 (js.type = \"Long\") lastFirstEventID\n 52: optional i64 (js.type = \"Long\") lastProcessedEvent\n 54: optional i64 (js.type = \"Long\") startTimeNanos\n 56: optional i64 (js.type = \"Long\") lastUpdatedTimeNanos\n 58: optional i64 (js.type = \"Long\") decisionVersion\n 60: optional i64 (js.type = \"Long\") decisionScheduleID\n 62: optional i64 (js.type = \"Long\") decisionStartedID\n 64: optional i32 decisionTimeout\n 66: optional i64 (js.type = \"Long\") decisionAttempt\n 68: optional i64 (js.type = \"Long\") decisionStartedTimestampNanos\n 69: optional i64 (js.type = \"Long\") decisionScheduledTimestampNanos\n 70: optional bool cancelRequested\n 71: optional i64 (js.type = \"Long\") decisionOriginalScheduledTimestampNanos\n 72: optional string createRequestID\n 74: optional string decisionRequestID\n 76: optional string cancelRequestID\n 78: optional string stickyTaskList\n 80: optional i64 (js.type = \"Long\") stickyScheduleToStartTimeout\n 82: optional i64 (js.type = \"Long\") retryAttempt\n 84: optional i32 retryInitialIntervalSeconds\n 86: optional i32 retryMaximumIntervalSeconds\n 88: optional i32 retryMaximumAttempts\n 90: optional i32 retryExpirationSeconds\n 92: optional double retryBackoffCoefficient\n 94: optional i64 (js.type = \"Long\") retryExpirationTimeNanos\n 96: optional list retryNonRetryableErrors\n 98: optional bool hasRetryPolicy\n 100: optional string cronSchedule\n 102: optional i32 eventStoreVersion\n 104: optional binary eventBranchToken\n 106: optional i64 (js.type = \"Long\") signalCount\n 108: optional i64 (js.type = \"Long\") historySize\n 110: optional string clientLibraryVersion\n 112: optional string clientFeatureVersion\n 114: optional string clientImpl\n 115: optional binary autoResetPoints\n 116: optional string autoResetPointsEncoding\n 118: optional map searchAttributes\n 120: optional map memo\n 122: optional binary versionHistories\n 124: optional string versionHistoriesEncoding\n 126: optional binary firstExecutionRunID\n 128: optional map partitionConfig\n}\n\nstruct ActivityInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") scheduledEventBatchID\n 14: optional binary scheduledEvent\n 16: optional string scheduledEventEncoding\n 18: optional i64 (js.type = \"Long\") scheduledTimeNanos\n 20: optional i64 (js.type = \"Long\") startedID\n 22: optional binary startedEvent\n 24: optional string startedEventEncoding\n 26: optional i64 (js.type = \"Long\") startedTimeNanos\n 28: optional string activityID\n 30: optional string requestID\n 32: optional i32 scheduleToStartTimeoutSeconds\n 34: optional i32 scheduleToCloseTimeoutSeconds\n 36: optional i32 startToCloseTimeoutSeconds\n 38: optional i32 heartbeatTimeoutSeconds\n 40: optional bool cancelRequested\n 42: optional i64 (js.type = \"Long\") cancelRequestID\n 44: optional i32 timerTaskStatus\n 46: optional i32 attempt\n 48: optional string taskList\n 50: optional string startedIdentity\n 52: optional bool hasRetryPolicy\n 54: optional i32 retryInitialIntervalSeconds\n 56: optional i32 retryMaximumIntervalSeconds\n 58: optional i32 retryMaximumAttempts\n 60: optional i64 (js.type = \"Long\") retryExpirationTimeNanos\n 62: optional double retryBackoffCoefficient\n 64: optional list retryNonRetryableErrors\n 66: optional string retryLastFailureReason\n 68: optional string retryLastWorkerIdentity\n 70: optional binary retryLastFailureDetails\n}\n\nstruct ChildExecutionInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 14: optional i64 (js.type = \"Long\") startedID\n 16: optional binary initiatedEvent\n 18: optional string initiatedEventEncoding\n 20: optional string startedWorkflowID\n 22: optional binary startedRunID\n 24: optional binary startedEvent\n 26: optional string startedEventEncoding\n 28: optional string createRequestID\n 29: optional string domainID\n 30: optional string domainName // deprecated\n 32: optional string workflowTypeName\n 35: optional i32 parentClosePolicy\n}\n\nstruct SignalInfo {\n 10: optional i64 (js.type = \"Long\") version\n 11: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 12: optional string requestID\n 14: optional string name\n 16: optional binary input\n 18: optional binary control\n}\n\nstruct RequestCancelInfo {\n 10: optional i64 (js.type = \"Long\") version\n 11: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 12: optional string cancelRequestID\n}\n\nstruct TimerInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") startedID\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n // TaskID is a misleading variable, it actually serves\n // the purpose of indicating whether a timer task is\n // generated for this timer info\n 16: optional i64 (js.type = \"Long\") taskID\n}\n\nstruct TaskInfo {\n 10: optional string workflowID\n 12: optional binary runID\n 13: optional i64 (js.type = \"Long\") scheduleID\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n 15: optional i64 (js.type = \"Long\") createdTimeNanos\n 17: optional map partitionConfig\n}\n\nstruct TaskListInfo {\n 10: optional i16 kind // {Normal, Sticky}\n 12: optional i64 (js.type = \"Long\") ackLevel\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n 16: optional i64 (js.type = \"Long\") lastUpdatedNanos\n}\n\nstruct TransferTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional binary targetDomainID\n 20: optional string targetWorkflowID\n 22: optional binary targetRunID\n 24: optional string taskList\n 26: optional bool targetChildWorkflowOnly\n 28: optional i64 (js.type = \"Long\") scheduleID\n 30: optional i64 (js.type = \"Long\") version\n 32: optional i64 (js.type = \"Long\") visibilityTimestampNanos\n 34: optional set targetDomainIDs\n}\n\nstruct TimerTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional i16 timeoutType\n 20: optional i64 (js.type = \"Long\") version\n 22: optional i64 (js.type = \"Long\") scheduleAttempt\n 24: optional i64 (js.type = \"Long\") eventID\n}\n\nstruct ReplicationTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional i64 (js.type = \"Long\") version\n 20: optional i64 (js.type = \"Long\") firstEventID\n 22: optional i64 (js.type = \"Long\") nextEventID\n 24: optional i64 (js.type = \"Long\") scheduledID\n 26: optional i32 eventStoreVersion\n 28: optional i32 newRunEventStoreVersion\n 30: optional binary branch_token\n 34: optional binary newRunBranchToken\n 38: optional i64 (js.type = \"Long\") creationTime\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence.sqlblobs\n\ninclude \"shared.thrift\"\n\nstruct ShardInfo {\n 10: optional i32 stolenSinceRenew\n 12: optional i64 (js.type = \"Long\") updatedAtNanos\n 14: optional i64 (js.type = \"Long\") replicationAckLevel\n 16: optional i64 (js.type = \"Long\") transferAckLevel\n 18: optional i64 (js.type = \"Long\") timerAckLevelNanos\n 24: optional i64 (js.type = \"Long\") domainNotificationVersion\n 34: optional map clusterTransferAckLevel\n 36: optional map clusterTimerAckLevel\n 38: optional string owner\n 40: optional map clusterReplicationLevel\n 42: optional binary pendingFailoverMarkers\n 44: optional string pendingFailoverMarkersEncoding\n 46: optional map replicationDlqAckLevel\n 50: optional binary transferProcessingQueueStates\n 51: optional string transferProcessingQueueStatesEncoding\n 55: optional binary timerProcessingQueueStates\n 56: optional string timerProcessingQueueStatesEncoding\n 60: optional binary crossClusterProcessingQueueStates\n 61: optional string crossClusterProcessingQueueStatesEncoding\n}\n\nstruct DomainInfo {\n 10: optional string name\n 12: optional string description\n 14: optional string owner\n 16: optional i32 status\n 18: optional i16 retentionDays\n 20: optional bool emitMetric\n 22: optional string archivalBucket\n 24: optional i16 archivalStatus\n 26: optional i64 (js.type = \"Long\") configVersion\n 28: optional i64 (js.type = \"Long\") notificationVersion\n 30: optional i64 (js.type = \"Long\") failoverNotificationVersion\n 32: optional i64 (js.type = \"Long\") failoverVersion\n 34: optional string activeClusterName\n 36: optional list clusters\n 38: optional map data\n 39: optional binary badBinaries\n 40: optional string badBinariesEncoding\n 42: optional i16 historyArchivalStatus\n 44: optional string historyArchivalURI\n 46: optional i16 visibilityArchivalStatus\n 48: optional string visibilityArchivalURI\n 50: optional i64 (js.type = \"Long\") failoverEndTime\n 52: optional i64 (js.type = \"Long\") previousFailoverVersion\n 54: optional i64 (js.type = \"Long\") lastUpdatedTime\n 56: optional binary isolationGroupsConfiguration\n 58: optional string isolationGroupsConfigurationEncoding\n}\n\nstruct HistoryTreeInfo {\n 10: optional i64 (js.type = \"Long\") createdTimeNanos // For fork operation to prevent race condition of leaking event data when forking branches fail. Also can be used for clean up leaked data\n 12: optional list ancestors\n 14: optional string info // For lookup back to workflow during debugging, also background cleanup when fork operation cannot finish self cleanup due to crash.\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional binary parentDomainID\n 12: optional string parentWorkflowID\n 14: optional binary parentRunID\n 16: optional i64 (js.type = \"Long\") initiatedID\n 18: optional i64 (js.type = \"Long\") completionEventBatchID\n 20: optional binary completionEvent\n 22: optional string completionEventEncoding\n 24: optional string taskList\n 26: optional string workflowTypeName\n 28: optional i32 workflowTimeoutSeconds\n 30: optional i32 decisionTaskTimeoutSeconds\n 32: optional binary executionContext\n 34: optional i32 state\n 36: optional i32 closeStatus\n 38: optional i64 (js.type = \"Long\") startVersion\n 44: optional i64 (js.type = \"Long\") lastWriteEventID\n 48: optional i64 (js.type = \"Long\") lastEventTaskID\n 50: optional i64 (js.type = \"Long\") lastFirstEventID\n 52: optional i64 (js.type = \"Long\") lastProcessedEvent\n 54: optional i64 (js.type = \"Long\") startTimeNanos\n 56: optional i64 (js.type = \"Long\") lastUpdatedTimeNanos\n 58: optional i64 (js.type = \"Long\") decisionVersion\n 60: optional i64 (js.type = \"Long\") decisionScheduleID\n 62: optional i64 (js.type = \"Long\") decisionStartedID\n 64: optional i32 decisionTimeout\n 66: optional i64 (js.type = \"Long\") decisionAttempt\n 68: optional i64 (js.type = \"Long\") decisionStartedTimestampNanos\n 69: optional i64 (js.type = \"Long\") decisionScheduledTimestampNanos\n 70: optional bool cancelRequested\n 71: optional i64 (js.type = \"Long\") decisionOriginalScheduledTimestampNanos\n 72: optional string createRequestID\n 74: optional string decisionRequestID\n 76: optional string cancelRequestID\n 78: optional string stickyTaskList\n 80: optional i64 (js.type = \"Long\") stickyScheduleToStartTimeout\n 82: optional i64 (js.type = \"Long\") retryAttempt\n 84: optional i32 retryInitialIntervalSeconds\n 86: optional i32 retryMaximumIntervalSeconds\n 88: optional i32 retryMaximumAttempts\n 90: optional i32 retryExpirationSeconds\n 92: optional double retryBackoffCoefficient\n 94: optional i64 (js.type = \"Long\") retryExpirationTimeNanos\n 96: optional list retryNonRetryableErrors\n 98: optional bool hasRetryPolicy\n 100: optional string cronSchedule\n 102: optional i32 eventStoreVersion\n 104: optional binary eventBranchToken\n 106: optional i64 (js.type = \"Long\") signalCount\n 108: optional i64 (js.type = \"Long\") historySize\n 110: optional string clientLibraryVersion\n 112: optional string clientFeatureVersion\n 114: optional string clientImpl\n 115: optional binary autoResetPoints\n 116: optional string autoResetPointsEncoding\n 118: optional map searchAttributes\n 120: optional map memo\n 122: optional binary versionHistories\n 124: optional string versionHistoriesEncoding\n 126: optional binary firstExecutionRunID\n 128: optional map partitionConfig\n}\n\nstruct ActivityInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") scheduledEventBatchID\n 14: optional binary scheduledEvent\n 16: optional string scheduledEventEncoding\n 18: optional i64 (js.type = \"Long\") scheduledTimeNanos\n 20: optional i64 (js.type = \"Long\") startedID\n 22: optional binary startedEvent\n 24: optional string startedEventEncoding\n 26: optional i64 (js.type = \"Long\") startedTimeNanos\n 28: optional string activityID\n 30: optional string requestID\n 32: optional i32 scheduleToStartTimeoutSeconds\n 34: optional i32 scheduleToCloseTimeoutSeconds\n 36: optional i32 startToCloseTimeoutSeconds\n 38: optional i32 heartbeatTimeoutSeconds\n 40: optional bool cancelRequested\n 42: optional i64 (js.type = \"Long\") cancelRequestID\n 44: optional i32 timerTaskStatus\n 46: optional i32 attempt\n 48: optional string taskList\n 50: optional string startedIdentity\n 52: optional bool hasRetryPolicy\n 54: optional i32 retryInitialIntervalSeconds\n 56: optional i32 retryMaximumIntervalSeconds\n 58: optional i32 retryMaximumAttempts\n 60: optional i64 (js.type = \"Long\") retryExpirationTimeNanos\n 62: optional double retryBackoffCoefficient\n 64: optional list retryNonRetryableErrors\n 66: optional string retryLastFailureReason\n 68: optional string retryLastWorkerIdentity\n 70: optional binary retryLastFailureDetails\n}\n\nstruct ChildExecutionInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 14: optional i64 (js.type = \"Long\") startedID\n 16: optional binary initiatedEvent\n 18: optional string initiatedEventEncoding\n 20: optional string startedWorkflowID\n 22: optional binary startedRunID\n 24: optional binary startedEvent\n 26: optional string startedEventEncoding\n 28: optional string createRequestID\n 29: optional string domainID\n 30: optional string domainName // deprecated\n 32: optional string workflowTypeName\n 35: optional i32 parentClosePolicy\n}\n\nstruct SignalInfo {\n 10: optional i64 (js.type = \"Long\") version\n 11: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 12: optional string requestID\n 14: optional string name\n 16: optional binary input\n 18: optional binary control\n}\n\nstruct RequestCancelInfo {\n 10: optional i64 (js.type = \"Long\") version\n 11: optional i64 (js.type = \"Long\") initiatedEventBatchID\n 12: optional string cancelRequestID\n}\n\nstruct TimerInfo {\n 10: optional i64 (js.type = \"Long\") version\n 12: optional i64 (js.type = \"Long\") startedID\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n // TaskID is a misleading variable, it actually serves\n // the purpose of indicating whether a timer task is\n // generated for this timer info\n 16: optional i64 (js.type = \"Long\") taskID\n}\n\nstruct TaskInfo {\n 10: optional string workflowID\n 12: optional binary runID\n 13: optional i64 (js.type = \"Long\") scheduleID\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n 15: optional i64 (js.type = \"Long\") createdTimeNanos\n 17: optional map partitionConfig\n}\n\nstruct TaskListInfo {\n 10: optional i16 kind // {Normal, Sticky}\n 12: optional i64 (js.type = \"Long\") ackLevel\n 14: optional i64 (js.type = \"Long\") expiryTimeNanos\n 16: optional i64 (js.type = \"Long\") lastUpdatedNanos\n}\n\nstruct TransferTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional binary targetDomainID\n 20: optional string targetWorkflowID\n 22: optional binary targetRunID\n 24: optional string taskList\n 26: optional bool targetChildWorkflowOnly\n 28: optional i64 (js.type = \"Long\") scheduleID\n 30: optional i64 (js.type = \"Long\") version\n 32: optional i64 (js.type = \"Long\") visibilityTimestampNanos\n 34: optional set targetDomainIDs\n}\n\nstruct TimerTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional i16 timeoutType\n 20: optional i64 (js.type = \"Long\") version\n 22: optional i64 (js.type = \"Long\") scheduleAttempt\n 24: optional i64 (js.type = \"Long\") eventID\n}\n\nstruct ReplicationTaskInfo {\n 10: optional binary domainID\n 12: optional string workflowID\n 14: optional binary runID\n 16: optional i16 taskType\n 18: optional i64 (js.type = \"Long\") version\n 20: optional i64 (js.type = \"Long\") firstEventID\n 22: optional i64 (js.type = \"Long\") nextEventID\n 24: optional i64 (js.type = \"Long\") scheduledID\n 26: optional i32 eventStoreVersion\n 28: optional i32 newRunEventStoreVersion\n 30: optional binary branch_token\n 34: optional binary newRunBranchToken\n 38: optional i64 (js.type = \"Long\") creationTime\n}\n\nenum AsyncRequestType {\n StartWorkflowExecutionAsyncRequest\n}\n\nstruct AsyncRequestMessage {\n 10: optional string partitionKey\n 12: optional AsyncRequestType type\n 14: optional shared.Header header\n 16: optional string encoding\n 18: optional binary payload\n}\n" diff --git a/.gen/proto/history/v1/service.pb.yarpc.go b/.gen/proto/history/v1/service.pb.yarpc.go index 624f8142d91..45944efc86b 100644 --- a/.gen/proto/history/v1/service.pb.yarpc.go +++ b/.gen/proto/history/v1/service.pb.yarpc.go @@ -3267,149 +3267,151 @@ var yarpcFileDescriptorClosurefee8ff76963a38ed = [][]byte{ }, // uber/cadence/api/v1/service_workflow.proto []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0x1c, 0x49, - 0xf5, 0x57, 0xcf, 0xd8, 0xce, 0xf8, 0xcc, 0xd8, 0x71, 0x2a, 0xb1, 0x3d, 0x99, 0xc4, 0x97, 0x74, - 0x76, 0xf3, 0xf7, 0x3f, 0xbb, 0x19, 0x13, 0x67, 0x73, 0xd9, 0xec, 0xc2, 0xca, 0x99, 0xd8, 0x59, - 0xa3, 0xcd, 0xca, 0xb4, 0x0d, 0x11, 0xbc, 0xb4, 0xca, 0xdd, 0x35, 0x33, 0xb5, 0xee, 0xe9, 0x6e, - 0x57, 0x55, 0xdb, 0x3b, 0xcb, 0x03, 0x02, 0xad, 0x00, 0x71, 0x13, 0x3c, 0x22, 0x21, 0xf1, 0x00, - 0xcf, 0xbc, 0xf0, 0x15, 0x10, 0x1f, 0x81, 0x77, 0x3e, 0x01, 0xdf, 0x60, 0x85, 0xba, 0xaa, 0x7a, - 0x6e, 0xee, 0xee, 0xb1, 0x8d, 0x56, 0x09, 0xbc, 0xb9, 0xab, 0xce, 0xef, 0xd4, 0xb9, 0xd5, 0xa9, - 0x73, 0x8e, 0x07, 0xee, 0x46, 0x07, 0x84, 0xad, 0x3b, 0xd8, 0x25, 0xbe, 0x43, 0xd6, 0x71, 0x48, - 0xd7, 0x8f, 0xef, 0xaf, 0x73, 0xc2, 0x8e, 0xa9, 0x43, 0xec, 0x93, 0x80, 0x1d, 0x36, 0xbd, 0xe0, - 0xa4, 0x1e, 0xb2, 0x40, 0x04, 0xe8, 0x6a, 0x4c, 0x5b, 0xd7, 0xb4, 0x75, 0x1c, 0xd2, 0xfa, 0xf1, - 0xfd, 0xda, 0x72, 0x2b, 0x08, 0x5a, 0x1e, 0x59, 0x97, 0x24, 0x07, 0x51, 0x73, 0xdd, 0x8d, 0x18, - 0x16, 0x34, 0xf0, 0x15, 0xa8, 0xb6, 0x9a, 0x76, 0x80, 0x13, 0x74, 0x3a, 0x3d, 0x8a, 0x5b, 0x69, - 0x14, 0x6d, 0xca, 0x45, 0xc0, 0xba, 0x9a, 0x64, 0x25, 0x8d, 0xe4, 0x28, 0x22, 0x3d, 0x02, 0x33, - 0x8d, 0x40, 0x60, 0x7e, 0xe8, 0x51, 0x2e, 0xf2, 0x68, 0x86, 0x55, 0x34, 0xff, 0x66, 0xc0, 0x8a, - 0x45, 0xb8, 0xc0, 0x4c, 0xbc, 0xd2, 0x3b, 0x5b, 0x9f, 0x13, 0x27, 0x8a, 0x15, 0xb2, 0xc8, 0x51, - 0x44, 0xb8, 0x40, 0x0b, 0x30, 0xe5, 0x06, 0x1d, 0x4c, 0xfd, 0xaa, 0xb1, 0x6a, 0xac, 0x4d, 0x5b, - 0xfa, 0x0b, 0x7d, 0x17, 0x50, 0xc2, 0xcd, 0x26, 0x09, 0xa8, 0x5a, 0x58, 0x35, 0xd6, 0xca, 0x1b, - 0x77, 0xea, 0x29, 0xb6, 0xab, 0x9f, 0x3e, 0xe2, 0xca, 0xc9, 0xe8, 0x12, 0xaa, 0x41, 0x89, 0xba, - 0xc4, 0x17, 0x54, 0x74, 0xab, 0x45, 0x79, 0x60, 0xef, 0x3b, 0x16, 0x85, 0x11, 0xcc, 0x03, 0xbf, - 0x3a, 0xa1, 0x44, 0x51, 0x5f, 0xe6, 0xcf, 0x4b, 0xb0, 0xb4, 0x77, 0x21, 0x25, 0x56, 0xa0, 0xdc, - 0x53, 0x82, 0xba, 0x52, 0xfa, 0x69, 0x0b, 0x92, 0xa5, 0x1d, 0x17, 0x6d, 0xc3, 0x4c, 0x8f, 0x40, - 0x74, 0x43, 0x22, 0x65, 0x2a, 0x6f, 0xdc, 0xca, 0x55, 0x70, 0xbf, 0x1b, 0x12, 0xab, 0x72, 0x32, - 0xf0, 0x85, 0x9e, 0xc2, 0x74, 0xec, 0x1f, 0x3b, 0x76, 0x90, 0x94, 0xbe, 0xbc, 0xb1, 0x94, 0xca, - 0x63, 0x1f, 0xf3, 0xc3, 0x4f, 0x28, 0x17, 0x56, 0x49, 0xe8, 0xbf, 0xd0, 0x06, 0x4c, 0x52, 0x3f, - 0x8c, 0x44, 0x75, 0x52, 0xe2, 0x6e, 0xa6, 0xe2, 0x76, 0x71, 0xd7, 0x0b, 0xb0, 0x6b, 0x29, 0x52, - 0x84, 0x61, 0xb5, 0xe7, 0x14, 0x5b, 0x3a, 0xd8, 0x16, 0x81, 0xed, 0x78, 0x01, 0x27, 0xb6, 0xa0, - 0x1d, 0x12, 0x44, 0xa2, 0x3a, 0x25, 0xd9, 0x5d, 0xaf, 0xab, 0x90, 0xae, 0x27, 0x21, 0x5d, 0x7f, - 0xae, 0x43, 0xda, 0xba, 0xd9, 0x63, 0x21, 0xad, 0xbb, 0x1f, 0x34, 0x62, 0xfc, 0xbe, 0x82, 0xa3, - 0x57, 0x70, 0x43, 0xaa, 0x94, 0xc1, 0xfd, 0xd2, 0x38, 0xee, 0x8b, 0x31, 0x3a, 0x8d, 0xf1, 0x60, - 0x08, 0x94, 0x46, 0x42, 0x60, 0x09, 0x80, 0x29, 0x9f, 0xc6, 0xfe, 0x9a, 0x96, 0xbb, 0xd3, 0x7a, - 0x65, 0xc7, 0x45, 0x0e, 0x54, 0x07, 0xfc, 0x69, 0x33, 0x12, 0x71, 0x62, 0x87, 0x81, 0x47, 0x9d, - 0x6e, 0x15, 0x56, 0x8d, 0xb5, 0xd9, 0x8d, 0xbb, 0xb9, 0x9e, 0xdb, 0x71, 0xad, 0x18, 0xb2, 0x2b, - 0x11, 0xd6, 0xfc, 0x49, 0xda, 0x32, 0x6a, 0x40, 0x85, 0x11, 0xc1, 0xba, 0x09, 0xe3, 0xb2, 0xd4, - 0x74, 0x35, 0x95, 0xb1, 0x15, 0x13, 0x6a, 0x76, 0x65, 0xd6, 0xff, 0x40, 0xb7, 0x61, 0xc6, 0x61, - 0xb1, 0x6f, 0x9c, 0x36, 0x71, 0x23, 0x8f, 0x54, 0x2b, 0x52, 0x97, 0x4a, 0xbc, 0xb8, 0xa7, 0xd7, - 0xd0, 0x3d, 0x98, 0xe8, 0x90, 0x4e, 0x50, 0x9d, 0xd1, 0xb6, 0x4c, 0x3b, 0xe1, 0x25, 0xe9, 0x04, - 0x96, 0x24, 0x43, 0x16, 0x5c, 0xe1, 0x04, 0x33, 0xa7, 0x6d, 0x63, 0x21, 0x18, 0x3d, 0x88, 0x04, - 0xe1, 0xd5, 0x59, 0x89, 0x7d, 0x3b, 0x15, 0xbb, 0x27, 0xa9, 0x37, 0x7b, 0xc4, 0xd6, 0x1c, 0x1f, - 0x59, 0x41, 0x0f, 0x60, 0xaa, 0x4d, 0xb0, 0x4b, 0x58, 0xf5, 0xb2, 0x64, 0x74, 0x23, 0x95, 0xd1, - 0xc7, 0x92, 0xc4, 0xd2, 0xa4, 0xe8, 0x29, 0x94, 0x5d, 0xe2, 0xe1, 0xae, 0x8a, 0x8d, 0xea, 0xdc, - 0xb8, 0x50, 0x00, 0x49, 0x2d, 0x63, 0x01, 0x7d, 0x08, 0x95, 0xcf, 0xa8, 0x10, 0x84, 0x69, 0xf0, - 0x95, 0x71, 0xe0, 0xb2, 0x22, 0x97, 0x68, 0xf3, 0x31, 0x2c, 0x67, 0x65, 0x02, 0x1e, 0x06, 0x3e, - 0x27, 0x68, 0x1e, 0xa6, 0x58, 0xe4, 0xc7, 0xd1, 0xa3, 0x52, 0xc1, 0x24, 0x8b, 0xfc, 0x1d, 0xd7, - 0x7c, 0x1f, 0x56, 0xb3, 0x33, 0x61, 0x3e, 0xf4, 0xef, 0x05, 0x58, 0xde, 0xa3, 0x2d, 0x1f, 0x7b, - 0xff, 0x0d, 0x49, 0x74, 0xf8, 0x06, 0x4d, 0x8c, 0xde, 0xa0, 0x15, 0x28, 0x73, 0xa9, 0x8b, 0xed, - 0xe3, 0x0e, 0x91, 0x29, 0x67, 0xda, 0x02, 0xb5, 0xf4, 0x29, 0xee, 0x10, 0xf4, 0x11, 0x54, 0x34, - 0x81, 0x4a, 0x4a, 0x53, 0x67, 0x48, 0x4a, 0x9a, 0xe5, 0x8e, 0x4c, 0x4d, 0x55, 0xb8, 0xe4, 0x04, - 0xbe, 0x60, 0x81, 0x27, 0x73, 0x44, 0xc5, 0x4a, 0x3e, 0xcd, 0x5b, 0xb0, 0x92, 0x69, 0x47, 0xe5, - 0x02, 0xf3, 0x2b, 0x03, 0xfe, 0x4f, 0xd3, 0x50, 0xd1, 0xce, 0x4f, 0xfa, 0xaf, 0x60, 0x46, 0xe5, - 0x26, 0xad, 0x9d, 0xb4, 0x7d, 0x79, 0x63, 0x23, 0xfd, 0x2a, 0xe4, 0xb1, 0xb2, 0x2a, 0x92, 0x51, - 0xc2, 0x78, 0xc4, 0x46, 0x85, 0xb1, 0x36, 0x2a, 0xfe, 0x07, 0x36, 0x9a, 0x18, 0xb6, 0xd1, 0x26, - 0xac, 0x8d, 0xd7, 0x3f, 0x3f, 0x5e, 0xff, 0x52, 0x80, 0x25, 0x8b, 0x70, 0xf2, 0xc6, 0xbc, 0xf9, - 0xfd, 0x77, 0xbd, 0x38, 0xf8, 0xae, 0xa3, 0xc7, 0x50, 0x75, 0x89, 0x43, 0x79, 0xfc, 0x86, 0x35, - 0xa9, 0x4f, 0x79, 0xdb, 0x26, 0xc7, 0xc4, 0xef, 0x05, 0x6e, 0xd1, 0x9a, 0x4f, 0xf6, 0xb7, 0xe5, - 0xf6, 0x56, 0xbc, 0xbb, 0xe3, 0x8e, 0xc4, 0xf8, 0xe4, 0x68, 0x8c, 0xd7, 0xe1, 0x2a, 0x3f, 0xa4, - 0xa1, 0xad, 0x7d, 0xc4, 0x08, 0x0e, 0x43, 0xaf, 0x2b, 0x23, 0xb9, 0x64, 0x5d, 0x89, 0xb7, 0x94, - 0x89, 0x2d, 0xb5, 0x11, 0x27, 0x95, 0x2c, 0x7b, 0xe5, 0x5b, 0xfa, 0x0f, 0x05, 0x78, 0x5b, 0xdb, - 0xb4, 0x81, 0x7d, 0x87, 0xfc, 0x2f, 0x24, 0x88, 0x6b, 0x30, 0xe9, 0xe0, 0x88, 0x27, 0xa9, 0x41, - 0x7d, 0xa0, 0x07, 0xb0, 0xd0, 0xa4, 0x8c, 0x8b, 0xbe, 0x90, 0xb6, 0x36, 0xc8, 0x94, 0x24, 0xbb, - 0x2a, 0x77, 0xfb, 0x32, 0x49, 0xf3, 0xac, 0xc1, 0x9d, 0x71, 0xd6, 0xd1, 0xd7, 0xfe, 0xaf, 0x05, - 0xb8, 0xb5, 0x4f, 0x58, 0x87, 0xfa, 0x58, 0x90, 0x37, 0x3d, 0x6c, 0x1f, 0xc1, 0x25, 0x97, 0x08, - 0x4c, 0x3d, 0xae, 0x2b, 0xbd, 0xfc, 0x8b, 0x9f, 0x10, 0x0f, 0x39, 0x65, 0x72, 0xc4, 0x29, 0x17, - 0xb2, 0xef, 0x5b, 0x60, 0xe6, 0x19, 0x4d, 0xdb, 0xf6, 0x77, 0x06, 0xac, 0x3e, 0x27, 0xdc, 0x61, - 0xf4, 0xe0, 0x4d, 0x31, 0xad, 0xf9, 0x55, 0x11, 0x6e, 0xe5, 0xc8, 0xa4, 0x6f, 0x9d, 0x07, 0x8b, - 0x7d, 0x73, 0x38, 0x81, 0xdf, 0xa4, 0x2d, 0x5d, 0x14, 0xe8, 0x54, 0xff, 0xe0, 0x6c, 0x12, 0x34, - 0x06, 0xa1, 0xd6, 0x02, 0x49, 0x5d, 0x47, 0x07, 0xb0, 0x78, 0x5a, 0x55, 0x9b, 0xfa, 0xcd, 0x40, - 0xeb, 0x7b, 0xf7, 0x6c, 0xa7, 0xed, 0xf8, 0xcd, 0xa0, 0x5f, 0x5a, 0x0e, 0x2d, 0xa3, 0x57, 0x80, - 0x42, 0xe2, 0xbb, 0xd4, 0x6f, 0xd9, 0xd8, 0x11, 0xf4, 0x98, 0x0a, 0x4a, 0x78, 0xb5, 0xb8, 0x5a, - 0x5c, 0x2b, 0x6f, 0xac, 0xa5, 0x47, 0x91, 0x22, 0xdf, 0x54, 0xd4, 0x5d, 0xc9, 0xfc, 0x4a, 0x38, - 0xb4, 0x48, 0x09, 0x47, 0xdf, 0x87, 0xb9, 0x84, 0xb1, 0xd3, 0xa6, 0x9e, 0xcb, 0x48, 0xdc, 0x44, - 0xc5, 0x6c, 0xeb, 0x79, 0x6c, 0x1b, 0x31, 0xed, 0xb0, 0xe4, 0x97, 0xc3, 0x81, 0x2d, 0x46, 0x7c, - 0xb4, 0xd7, 0x67, 0x9d, 0x64, 0x63, 0xdd, 0xa9, 0xe4, 0x4a, 0xfc, 0x5c, 0xd3, 0x0e, 0x31, 0x4d, - 0x16, 0xcd, 0x2f, 0x8b, 0x70, 0xed, 0x3b, 0x71, 0xc7, 0x9b, 0x98, 0xef, 0x35, 0xdd, 0xf1, 0x27, - 0x30, 0x29, 0x1b, 0x6f, 0xfd, 0x84, 0x9b, 0xb9, 0x9c, 0xa4, 0xc0, 0x96, 0x02, 0x20, 0x1b, 0x16, - 0xe4, 0x1f, 0x36, 0x23, 0x9f, 0x11, 0x47, 0xc4, 0xf1, 0xe9, 0x52, 0x29, 0xd4, 0x84, 0x6c, 0x44, - 0xfe, 0x3f, 0x95, 0x95, 0x62, 0x21, 0x11, 0x8d, 0x04, 0x60, 0x5d, 0x3b, 0x4a, 0x59, 0x8d, 0xe3, - 0x51, 0x1d, 0xe0, 0x04, 0x3e, 0xa7, 0x5c, 0x10, 0xdf, 0xe9, 0xda, 0x1e, 0x39, 0x26, 0x9e, 0x34, - 0x7f, 0x56, 0xab, 0x23, 0x4f, 0x68, 0xf4, 0x21, 0x9f, 0xc4, 0x08, 0x6b, 0xfe, 0x28, 0x6d, 0xd9, - 0xfc, 0x93, 0x01, 0xf3, 0x23, 0x6e, 0xd0, 0x77, 0xef, 0x23, 0xa8, 0x24, 0xea, 0xf1, 0xc8, 0x4b, - 0x6a, 0xab, 0x31, 0x25, 0x8e, 0xd6, 0x23, 0x06, 0xa0, 0x1d, 0x98, 0x1d, 0xb4, 0x0f, 0x71, 0xb5, - 0xb3, 0xcc, 0x71, 0x76, 0x21, 0xae, 0x35, 0x73, 0x34, 0xf8, 0x69, 0xfe, 0xcb, 0x80, 0xc5, 0x24, - 0x5b, 0xf4, 0xfa, 0xe7, 0x31, 0xf1, 0x32, 0xd4, 0x90, 0x17, 0xce, 0xd7, 0x90, 0xbf, 0x80, 0xd9, - 0x1e, 0xb6, 0x3f, 0x15, 0x98, 0xcd, 0x98, 0x0a, 0x24, 0x0c, 0xd4, 0x54, 0x40, 0x0c, 0x7c, 0xc5, - 0x05, 0x0e, 0xf5, 0x1d, 0x2f, 0x72, 0x89, 0xdd, 0x67, 0xc8, 0x05, 0x16, 0x91, 0x7a, 0x3a, 0x4a, - 0xd6, 0xbc, 0xde, 0x4f, 0x98, 0xec, 0xc9, 0x4d, 0xf3, 0xcf, 0x06, 0x54, 0x4f, 0x6b, 0xac, 0x5d, - 0xf3, 0x3e, 0x5c, 0x0a, 0x03, 0xcf, 0x23, 0x8c, 0x57, 0x0d, 0x79, 0xc5, 0x57, 0xd2, 0xbd, 0x22, - 0x69, 0xe4, 0xf5, 0x4b, 0xe8, 0xd1, 0x4b, 0x98, 0x3b, 0x25, 0x88, 0x32, 0xce, 0xed, 0x5c, 0xdd, - 0x94, 0x58, 0xd6, 0xac, 0x18, 0x16, 0xf3, 0x21, 0xdc, 0x78, 0x41, 0x44, 0x42, 0xc4, 0x9f, 0x75, - 0x9f, 0x4b, 0xe3, 0x8f, 0xf1, 0x8d, 0xf9, 0x9b, 0x09, 0xb8, 0x99, 0x8e, 0xd3, 0x1a, 0xfe, 0x08, - 0x16, 0x7a, 0x85, 0x61, 0x5f, 0xde, 0x0e, 0x0e, 0xb5, 0xc2, 0xdf, 0x4e, 0x15, 0x36, 0x8f, 0x65, - 0x3d, 0xc9, 0x3c, 0x09, 0xc5, 0x4b, 0x1c, 0x6e, 0xf9, 0x82, 0x75, 0xad, 0xab, 0xee, 0xe9, 0x9d, - 0x58, 0x00, 0x9d, 0x9f, 0xbb, 0x23, 0x02, 0x14, 0x2e, 0x2a, 0x40, 0x92, 0xc1, 0x4f, 0x0b, 0x80, - 0x4f, 0xef, 0xd4, 0xa2, 0xd8, 0xff, 0xe9, 0x12, 0xa3, 0x39, 0x28, 0x1e, 0x92, 0xae, 0xb6, 0x69, - 0xfc, 0x27, 0x6a, 0xc0, 0xe4, 0x31, 0xf6, 0x22, 0xa2, 0x7d, 0x79, 0x2f, 0x55, 0xba, 0xac, 0x78, - 0xb2, 0x14, 0xf6, 0x69, 0xe1, 0x89, 0x11, 0x1f, 0x9b, 0x25, 0xe7, 0xd7, 0x78, 0xac, 0xc9, 0x61, - 0x49, 0xde, 0x19, 0x4d, 0xb2, 0x8b, 0x99, 0x90, 0x39, 0x90, 0x7f, 0x8d, 0xb7, 0xdc, 0xfc, 0x69, - 0x01, 0x96, 0xb3, 0x4e, 0xd5, 0x71, 0x78, 0x04, 0x4b, 0x29, 0x61, 0x10, 0xf6, 0x08, 0x75, 0x38, - 0xd6, 0x73, 0x8f, 0xec, 0xf1, 0x7d, 0x49, 0x04, 0x76, 0xb1, 0xc0, 0x56, 0x6d, 0xd4, 0xe3, 0xfd, - 0xa3, 0xe3, 0x23, 0x53, 0x42, 0x7f, 0xe0, 0xc8, 0xc2, 0xc5, 0x8e, 0x1c, 0x8d, 0xf2, 0xfe, 0x91, - 0xe6, 0x22, 0xcc, 0xbf, 0x20, 0xa2, 0xe1, 0x45, 0x5c, 0xe8, 0x7c, 0xa1, 0xac, 0x6e, 0xfe, 0xc4, - 0x80, 0x85, 0xd1, 0x1d, 0x6d, 0x99, 0x36, 0x5c, 0xe7, 0x51, 0x18, 0x06, 0x4c, 0x10, 0xd7, 0x76, - 0x3c, 0x1a, 0x77, 0x6d, 0xc7, 0x84, 0x71, 0x6d, 0x95, 0xd8, 0x11, 0xef, 0xa6, 0xf7, 0xe1, 0x09, - 0xaa, 0x21, 0x41, 0xdf, 0xd3, 0x18, 0x6b, 0x91, 0xa7, 0x6f, 0x98, 0xbf, 0x2c, 0x82, 0xf9, 0x22, - 0xa5, 0x37, 0xfb, 0x58, 0x8d, 0xd4, 0x5f, 0x53, 0xdd, 0x70, 0x03, 0xa6, 0x43, 0xdc, 0x22, 0x36, - 0xa7, 0x5f, 0xa8, 0xd7, 0x61, 0xd2, 0x2a, 0xc5, 0x0b, 0x7b, 0xf4, 0x0b, 0x82, 0xee, 0xc0, 0x65, - 0x9f, 0x7c, 0x1e, 0x7b, 0xad, 0x45, 0x6c, 0x11, 0x1c, 0x12, 0x5f, 0x77, 0xf9, 0x33, 0xf1, 0xf2, - 0x2e, 0x6e, 0x91, 0xfd, 0x78, 0x11, 0xbd, 0x03, 0xe8, 0x04, 0x53, 0x61, 0x37, 0x03, 0x66, 0xfb, - 0xe4, 0x44, 0x35, 0xbf, 0xf2, 0x71, 0x2f, 0x59, 0x97, 0xe3, 0x9d, 0xed, 0x80, 0x7d, 0x4a, 0x4e, - 0x64, 0xd7, 0x8b, 0x6c, 0xb8, 0xae, 0xff, 0x8b, 0xa0, 0x9b, 0xe4, 0x26, 0xf5, 0x04, 0x61, 0xea, - 0x7d, 0x9a, 0x92, 0xef, 0xd3, 0x5b, 0xa9, 0xfa, 0x48, 0xf8, 0xb6, 0x24, 0x96, 0x4f, 0xd4, 0x82, - 0x66, 0x33, 0xb2, 0x8e, 0x6e, 0xc3, 0x8c, 0xec, 0x9a, 0x31, 0x73, 0xda, 0xf4, 0x18, 0xab, 0xe9, - 0x4d, 0xc9, 0xaa, 0xc4, 0x8b, 0x9b, 0x7a, 0xcd, 0xfc, 0xa7, 0x01, 0xb7, 0x73, 0xbd, 0xa1, 0xe3, - 0xe3, 0x11, 0x5c, 0xd2, 0xc7, 0xe4, 0x56, 0x0e, 0x09, 0x2c, 0x21, 0x46, 0xdf, 0x82, 0x32, 0xc3, - 0x27, 0x76, 0x82, 0x55, 0xc1, 0x9e, 0x7e, 0xa5, 0x9f, 0x63, 0x81, 0x9f, 0x79, 0xc1, 0x81, 0x05, - 0x0c, 0x9f, 0x68, 0x46, 0x69, 0xa6, 0x2f, 0xa6, 0x99, 0xbe, 0x06, 0x25, 0xa5, 0x27, 0x71, 0xf5, - 0x4b, 0xdc, 0xfb, 0x36, 0xbb, 0x50, 0xd9, 0x26, 0x58, 0x44, 0x8c, 0x6c, 0x7b, 0xb8, 0xc5, 0x11, - 0x85, 0x8d, 0x94, 0xc6, 0x00, 0x7b, 0x8c, 0x60, 0x37, 0xae, 0xce, 0x3a, 0xa1, 0x47, 0xe2, 0x6b, - 0x40, 0x18, 0x0b, 0x98, 0x4d, 0x7c, 0x7c, 0xe0, 0x11, 0x35, 0x28, 0x28, 0x59, 0xf7, 0x4e, 0x85, - 0xce, 0xa6, 0xc2, 0x35, 0x12, 0xd8, 0x56, 0x8c, 0xda, 0x52, 0x20, 0xf3, 0x57, 0x06, 0xdc, 0xb0, - 0x48, 0x93, 0x11, 0xde, 0xee, 0xfd, 0xb3, 0x01, 0xf3, 0x43, 0xfe, 0x9a, 0xda, 0xb4, 0x65, 0xb8, - 0x99, 0x2e, 0x8d, 0xf2, 0xf2, 0xc6, 0x3f, 0x2e, 0x43, 0x39, 0xd9, 0xd9, 0xdc, 0xdd, 0x41, 0x3f, - 0x33, 0xa0, 0x9a, 0x35, 0x65, 0x45, 0xef, 0x65, 0x0c, 0xd0, 0x73, 0xff, 0x3d, 0x55, 0x7b, 0x78, - 0x4e, 0x94, 0x8e, 0xbf, 0x1f, 0x1b, 0xb0, 0x90, 0x3e, 0x3d, 0x43, 0x17, 0x98, 0x0f, 0xd6, 0x1e, - 0x9c, 0x0b, 0xa3, 0x65, 0xf8, 0xd2, 0x80, 0xc5, 0x8c, 0x79, 0x27, 0xca, 0x60, 0x98, 0x3b, 0x65, - 0xae, 0xbd, 0x77, 0x3e, 0x90, 0x16, 0xe3, 0x8f, 0x06, 0xac, 0x8e, 0x1b, 0x29, 0xa2, 0x0f, 0xf3, - 0x58, 0x8f, 0x9b, 0xc4, 0xd6, 0xbe, 0x79, 0x41, 0xf4, 0x80, 0xb3, 0xd2, 0x07, 0x70, 0x19, 0xce, - 0xca, 0x9d, 0x6e, 0x66, 0x38, 0x6b, 0xcc, 0x84, 0xef, 0xf7, 0x06, 0x2c, 0xe7, 0x0f, 0xab, 0xd0, - 0xd3, 0x0c, 0xbe, 0x67, 0x98, 0xff, 0xd5, 0x3e, 0xb8, 0x10, 0x56, 0xcb, 0xf6, 0x6b, 0x03, 0x6a, - 0xd9, 0x83, 0x1e, 0xf4, 0x28, 0xbd, 0x16, 0x18, 0x37, 0x4e, 0xab, 0x3d, 0x3e, 0x37, 0x4e, 0xcb, - 0xf3, 0x0b, 0x03, 0xae, 0x67, 0x4e, 0x6f, 0xd0, 0xc3, 0xdc, 0x32, 0x30, 0x53, 0x9a, 0x47, 0xe7, - 0x85, 0x69, 0x61, 0x9a, 0x30, 0x33, 0xd4, 0xc1, 0xa2, 0x9c, 0xc6, 0x7b, 0x64, 0xd8, 0x50, 0xbb, - 0x7b, 0x16, 0x52, 0x7d, 0x4e, 0x00, 0x73, 0xa3, 0xa5, 0x2c, 0x7a, 0xf7, 0x8c, 0x15, 0xaf, 0x3a, - 0xed, 0x7c, 0xf5, 0x31, 0xfa, 0x21, 0x5c, 0x4b, 0x6b, 0x28, 0xd0, 0x37, 0xce, 0xd1, 0x7b, 0xa8, - 0x83, 0xef, 0x9f, 0xbb, 0x5b, 0x91, 0x57, 0x32, 0xbd, 0x38, 0xce, 0xb8, 0x92, 0xb9, 0xf5, 0x7b, - 0xc6, 0x95, 0x1c, 0x53, 0x7d, 0x53, 0x98, 0x1d, 0xae, 0x3e, 0xd1, 0xdd, 0x2c, 0x45, 0x4e, 0x17, - 0xaf, 0xb5, 0x77, 0xce, 0x44, 0xab, 0x8f, 0xfa, 0xad, 0x21, 0x3b, 0xd9, 0xac, 0xb2, 0x06, 0x3d, - 0xce, 0x62, 0x36, 0xa6, 0x2c, 0xad, 0x3d, 0x39, 0x3f, 0xb0, 0xef, 0xfe, 0xb4, 0xb7, 0x37, 0xc3, - 0xfd, 0x39, 0x45, 0x43, 0x86, 0xfb, 0xf3, 0x1e, 0xf6, 0x67, 0x2e, 0x2c, 0x3a, 0x41, 0x27, 0x0d, - 0xf7, 0xec, 0x5a, 0x82, 0xd8, 0x53, 0x3f, 0xab, 0xd9, 0x65, 0x81, 0x08, 0x76, 0x8d, 0x1f, 0xdc, - 0x6f, 0x51, 0xd1, 0x8e, 0x0e, 0xea, 0x4e, 0xd0, 0x59, 0x1f, 0xfc, 0x69, 0xca, 0x3d, 0xea, 0x7a, - 0xeb, 0xad, 0x40, 0xfd, 0xa2, 0x46, 0xff, 0x4e, 0xe5, 0x03, 0x1c, 0xd2, 0xe3, 0xfb, 0x07, 0x53, - 0x72, 0xed, 0xc1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xdb, 0xd5, 0x62, 0xb6, 0x23, 0x00, - 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0xdc, 0xc6, + 0x15, 0x06, 0x75, 0xd7, 0xd9, 0x95, 0x2c, 0x8f, 0x75, 0x59, 0xaf, 0xac, 0x8b, 0xe9, 0xd8, 0x55, + 0x9d, 0x78, 0x55, 0xcb, 0xf1, 0x25, 0x4e, 0xda, 0x40, 0x5e, 0x5b, 0x8e, 0x0a, 0x3b, 0x50, 0x29, + 0xb5, 0x46, 0xfb, 0x42, 0x8c, 0xc8, 0xd9, 0xdd, 0x89, 0xb8, 0x24, 0x35, 0x33, 0x94, 0xb2, 0xc9, + 0x43, 0xd1, 0x22, 0x68, 0x8b, 0xde, 0xd0, 0x3e, 0x16, 0x28, 0xd0, 0x87, 0xf6, 0xb9, 0x2f, 0xfd, + 0x0b, 0x45, 0xff, 0x47, 0x1f, 0xfb, 0xd4, 0x7f, 0x10, 0x14, 0x1c, 0x0e, 0xf7, 0xa6, 0x21, 0x57, + 0xab, 0x20, 0xb0, 0x9b, 0x37, 0x71, 0xe6, 0x7c, 0x67, 0xce, 0x6d, 0xce, 0x9c, 0x73, 0xb4, 0x70, + 0x3b, 0x3a, 0x24, 0x6c, 0xd3, 0xc1, 0x2e, 0xf1, 0x1d, 0xb2, 0x89, 0x43, 0xba, 0x79, 0x72, 0x77, + 0x93, 0x13, 0x76, 0x42, 0x1d, 0x62, 0x9f, 0x06, 0xec, 0xa8, 0xe6, 0x05, 0xa7, 0x95, 0x90, 0x05, + 0x22, 0x40, 0x57, 0x62, 0xda, 0x8a, 0xa2, 0xad, 0xe0, 0x90, 0x56, 0x4e, 0xee, 0x96, 0x57, 0xeb, + 0x41, 0x50, 0xf7, 0xc8, 0xa6, 0x24, 0x39, 0x8c, 0x6a, 0x9b, 0x6e, 0xc4, 0xb0, 0xa0, 0x81, 0x9f, + 0x80, 0xca, 0xeb, 0xba, 0x03, 0x9c, 0xa0, 0xd9, 0x6c, 0x53, 0x5c, 0xd7, 0x51, 0x34, 0x28, 0x17, + 0x01, 0x6b, 0x29, 0x92, 0x35, 0x1d, 0xc9, 0x71, 0x44, 0xda, 0x04, 0xa6, 0x8e, 0x40, 0x60, 0x7e, + 0xe4, 0x51, 0x2e, 0xf2, 0x68, 0x7a, 0x55, 0x34, 0xff, 0x69, 0xc0, 0x9a, 0x45, 0xb8, 0xc0, 0x4c, + 0xbc, 0x52, 0x3b, 0xcf, 0x3e, 0x25, 0x4e, 0x14, 0x2b, 0x64, 0x91, 0xe3, 0x88, 0x70, 0x81, 0x16, + 0x61, 0xc2, 0x0d, 0x9a, 0x98, 0xfa, 0x25, 0x63, 0xdd, 0xd8, 0x98, 0xb6, 0xd4, 0x17, 0xfa, 0x21, + 0xa0, 0x94, 0x9b, 0x4d, 0x52, 0x50, 0x69, 0x64, 0xdd, 0xd8, 0x28, 0x6c, 0xdd, 0xaa, 0x68, 0x6c, + 0x57, 0x39, 0x7b, 0xc4, 0xe5, 0xd3, 0xfe, 0x25, 0x54, 0x86, 0x29, 0xea, 0x12, 0x5f, 0x50, 0xd1, + 0x2a, 0x8d, 0xca, 0x03, 0xdb, 0xdf, 0xb1, 0x28, 0x8c, 0x60, 0x1e, 0xf8, 0xa5, 0xb1, 0x44, 0x94, + 0xe4, 0xcb, 0xfc, 0xd5, 0x14, 0xac, 0xec, 0x5f, 0x48, 0x89, 0x35, 0x28, 0xb4, 0x95, 0xa0, 0xae, + 0x94, 0x7e, 0xda, 0x82, 0x74, 0x69, 0xd7, 0x45, 0x3b, 0x30, 0xd3, 0x26, 0x10, 0xad, 0x90, 0x48, + 0x99, 0x0a, 0x5b, 0xd7, 0x73, 0x15, 0x3c, 0x68, 0x85, 0xc4, 0x2a, 0x9e, 0x76, 0x7d, 0xa1, 0xc7, + 0x30, 0x1d, 0xfb, 0xc7, 0x8e, 0x1d, 0x24, 0xa5, 0x2f, 0x6c, 0xad, 0x68, 0x79, 0x1c, 0x60, 0x7e, + 0xf4, 0x82, 0x72, 0x61, 0x4d, 0x09, 0xf5, 0x17, 0xda, 0x82, 0x71, 0xea, 0x87, 0x91, 0x28, 0x8d, + 0x4b, 0xdc, 0x35, 0x2d, 0x6e, 0x0f, 0xb7, 0xbc, 0x00, 0xbb, 0x56, 0x42, 0x8a, 0x30, 0xac, 0xb7, + 0x9d, 0x62, 0x4b, 0x07, 0xdb, 0x22, 0xb0, 0x1d, 0x2f, 0xe0, 0xc4, 0x16, 0xb4, 0x49, 0x82, 0x48, + 0x94, 0x26, 0x24, 0xbb, 0xab, 0x95, 0x24, 0xa4, 0x2b, 0x69, 0x48, 0x57, 0x9e, 0xaa, 0x90, 0xb6, + 0xae, 0xb5, 0x59, 0x48, 0xeb, 0x1e, 0x04, 0xd5, 0x18, 0x7f, 0x90, 0xc0, 0xd1, 0x2b, 0x58, 0x96, + 0x2a, 0x65, 0x70, 0x9f, 0x1c, 0xc4, 0x7d, 0x29, 0x46, 0xeb, 0x18, 0x77, 0x87, 0xc0, 0x54, 0x5f, + 0x08, 0xac, 0x00, 0xb0, 0xc4, 0xa7, 0xb1, 0xbf, 0xa6, 0xe5, 0xee, 0xb4, 0x5a, 0xd9, 0x75, 0x91, + 0x03, 0xa5, 0x2e, 0x7f, 0xda, 0x8c, 0x44, 0x9c, 0xd8, 0x61, 0xe0, 0x51, 0xa7, 0x55, 0x82, 0x75, + 0x63, 0x63, 0x76, 0xeb, 0x76, 0xae, 0xe7, 0x76, 0x5d, 0x2b, 0x86, 0xec, 0x49, 0x84, 0xb5, 0x70, + 0xaa, 0x5b, 0x46, 0x55, 0x28, 0x32, 0x22, 0x58, 0x2b, 0x65, 0x5c, 0x90, 0x9a, 0xae, 0x6b, 0x19, + 0x5b, 0x31, 0xa1, 0x62, 0x57, 0x60, 0x9d, 0x0f, 0x74, 0x03, 0x66, 0x1c, 0x16, 0xfb, 0xc6, 0x69, + 0x10, 0x37, 0xf2, 0x48, 0xa9, 0x28, 0x75, 0x29, 0xc6, 0x8b, 0xfb, 0x6a, 0x0d, 0xdd, 0x81, 0xb1, + 0x26, 0x69, 0x06, 0xa5, 0x19, 0x65, 0x4b, 0xdd, 0x09, 0x2f, 0x49, 0x33, 0xb0, 0x24, 0x19, 0xb2, + 0xe0, 0x32, 0x27, 0x98, 0x39, 0x0d, 0x1b, 0x0b, 0xc1, 0xe8, 0x61, 0x24, 0x08, 0x2f, 0xcd, 0x4a, + 0xec, 0x4d, 0x2d, 0x76, 0x5f, 0x52, 0x6f, 0xb7, 0x89, 0xad, 0x39, 0xde, 0xb7, 0x82, 0xee, 0xc1, + 0x44, 0x83, 0x60, 0x97, 0xb0, 0xd2, 0x25, 0xc9, 0x68, 0x59, 0xcb, 0xe8, 0x23, 0x49, 0x62, 0x29, + 0x52, 0xf4, 0x18, 0x0a, 0x2e, 0xf1, 0x70, 0x2b, 0x89, 0x8d, 0xd2, 0xdc, 0xa0, 0x50, 0x00, 0x49, + 0x2d, 0x63, 0x01, 0x7d, 0x00, 0xc5, 0x4f, 0xa8, 0x10, 0x84, 0x29, 0xf0, 0xe5, 0x41, 0xe0, 0x42, + 0x42, 0x2e, 0xd1, 0xe6, 0x43, 0x58, 0xcd, 0xca, 0x04, 0x3c, 0x0c, 0x7c, 0x4e, 0xd0, 0x02, 0x4c, + 0xb0, 0xc8, 0x8f, 0xa3, 0x27, 0x49, 0x05, 0xe3, 0x2c, 0xf2, 0x77, 0x5d, 0x93, 0x81, 0xa9, 0x07, + 0x6e, 0xf3, 0x96, 0xef, 0xa4, 0x79, 0xe4, 0x05, 0x4c, 0xaa, 0x60, 0x93, 0xe8, 0xc2, 0xd6, 0x96, + 0xde, 0xae, 0x79, 0xc9, 0xc8, 0x4a, 0x59, 0x98, 0x37, 0xe1, 0x46, 0xee, 0x99, 0x89, 0xc4, 0xe6, + 0x7b, 0xb0, 0x9e, 0x9d, 0xa4, 0xf3, 0xb5, 0xfa, 0xd7, 0x08, 0xac, 0xee, 0xd3, 0xba, 0x8f, 0xbd, + 0xff, 0x87, 0xfc, 0xde, 0x7b, 0xb9, 0xc7, 0xfa, 0x2f, 0xf7, 0x1a, 0x14, 0xb8, 0xd4, 0xc5, 0xf6, + 0x71, 0x93, 0xc8, 0x6c, 0x38, 0x6d, 0x41, 0xb2, 0xf4, 0x31, 0x6e, 0x12, 0xf4, 0x21, 0x14, 0x15, + 0x41, 0x92, 0x2f, 0x27, 0xce, 0x91, 0x2f, 0x15, 0xcb, 0x5d, 0x99, 0x35, 0x4b, 0x30, 0xe9, 0x04, + 0xbe, 0x60, 0x81, 0x27, 0xd3, 0x57, 0xd1, 0x4a, 0x3f, 0xcd, 0xeb, 0xb0, 0x96, 0x69, 0x47, 0xe5, + 0xa6, 0x2f, 0x0d, 0xf8, 0x96, 0xa2, 0xa1, 0xa2, 0x91, 0xff, 0x1e, 0xbd, 0x82, 0x99, 0x24, 0x6d, + 0x7e, 0xf5, 0x68, 0x2a, 0x4a, 0x46, 0x29, 0xe3, 0x3e, 0x1b, 0x8d, 0x0c, 0xb4, 0xd1, 0xe8, 0x57, + 0xb0, 0xd1, 0x58, 0xaf, 0x8d, 0xb6, 0x61, 0x63, 0xb0, 0xfe, 0xf9, 0xf1, 0xfa, 0xf7, 0x11, 0x58, + 0xb1, 0x08, 0x27, 0x6f, 0x4c, 0x39, 0xd2, 0x29, 0x39, 0x46, 0xbb, 0x4b, 0x0e, 0xf4, 0x10, 0x4a, + 0x2e, 0x71, 0x28, 0x8f, 0x9f, 0xd7, 0x1a, 0xf5, 0x29, 0x6f, 0xd8, 0xe4, 0x84, 0xf8, 0xed, 0xc0, + 0x1d, 0xb5, 0x16, 0xd2, 0xfd, 0x1d, 0xb9, 0xfd, 0x2c, 0xde, 0xdd, 0x75, 0xfb, 0x62, 0x7c, 0xbc, + 0x3f, 0xc6, 0x2b, 0x70, 0x85, 0x1f, 0xd1, 0xd0, 0x56, 0x3e, 0x62, 0x04, 0x87, 0xa1, 0xd7, 0x92, + 0x91, 0x3c, 0x65, 0x5d, 0x8e, 0xb7, 0x12, 0x13, 0x5b, 0xc9, 0x46, 0x9c, 0xef, 0xb2, 0xec, 0x95, + 0x6f, 0xe9, 0x3f, 0x8f, 0xc0, 0x4d, 0x65, 0xd3, 0x2a, 0xf6, 0x1d, 0xf2, 0x4d, 0x48, 0x10, 0xf3, + 0x30, 0xee, 0xe0, 0x88, 0xa7, 0xa9, 0x21, 0xf9, 0x40, 0xf7, 0x60, 0xb1, 0x46, 0x19, 0x17, 0x1d, + 0x21, 0x6d, 0x65, 0x90, 0x09, 0x49, 0x76, 0x45, 0xee, 0x76, 0x64, 0x92, 0xe6, 0xd9, 0x80, 0x5b, + 0x83, 0xac, 0xa3, 0xae, 0xfd, 0x3f, 0x46, 0xe0, 0xfa, 0x01, 0x61, 0x4d, 0xea, 0x63, 0x41, 0xde, + 0xf4, 0xb0, 0x7d, 0x00, 0x93, 0x2e, 0x11, 0x98, 0x7a, 0x5c, 0x15, 0xa1, 0xf9, 0x17, 0x3f, 0x25, + 0xee, 0x71, 0xca, 0x78, 0x9f, 0x53, 0x2e, 0x64, 0xdf, 0xb7, 0xc0, 0xcc, 0x33, 0x9a, 0xb2, 0xed, + 0x1f, 0x0d, 0x58, 0x7f, 0x4a, 0xb8, 0xc3, 0xe8, 0xe1, 0x9b, 0x62, 0x5a, 0xf3, 0xcb, 0x51, 0xb8, + 0x9e, 0x23, 0x93, 0xba, 0x75, 0x1e, 0x2c, 0x75, 0xcc, 0xe1, 0x04, 0x7e, 0x8d, 0xd6, 0x55, 0xbd, + 0xa2, 0x52, 0xfd, 0xbd, 0xf3, 0x49, 0x50, 0xed, 0x86, 0x5a, 0x8b, 0x44, 0xbb, 0x8e, 0x0e, 0x61, + 0xe9, 0xac, 0xaa, 0x36, 0xf5, 0x6b, 0x81, 0xd2, 0xf7, 0xf6, 0xf9, 0x4e, 0xdb, 0xf5, 0x6b, 0x41, + 0xa7, 0xea, 0xed, 0x59, 0x46, 0xaf, 0x00, 0x85, 0xc4, 0x77, 0xa9, 0x5f, 0xb7, 0xb1, 0x23, 0xe8, + 0x09, 0x15, 0x94, 0xf0, 0xd2, 0xe8, 0xfa, 0xe8, 0x46, 0x61, 0x6b, 0x43, 0x1f, 0x45, 0x09, 0xf9, + 0x76, 0x42, 0xdd, 0x92, 0xcc, 0x2f, 0x87, 0x3d, 0x8b, 0x94, 0x70, 0xf4, 0x63, 0x98, 0x4b, 0x19, + 0x3b, 0x0d, 0xea, 0xb9, 0x8c, 0xc4, 0xfd, 0x5d, 0xcc, 0xb6, 0x92, 0xc7, 0xb6, 0x1a, 0xd3, 0xf6, + 0x4a, 0x7e, 0x29, 0xec, 0xda, 0x62, 0xc4, 0x47, 0xfb, 0x1d, 0xd6, 0x69, 0x36, 0x56, 0x4d, 0x54, + 0xae, 0xc4, 0x4f, 0x15, 0x6d, 0x0f, 0xd3, 0x74, 0xd1, 0xfc, 0x62, 0x14, 0xe6, 0x7f, 0x10, 0x37, + 0xe3, 0xa9, 0xf9, 0x5e, 0xd3, 0x1d, 0x7f, 0x04, 0xe3, 0x72, 0x26, 0xa0, 0x9e, 0x70, 0x33, 0x97, + 0x93, 0x14, 0xd8, 0x4a, 0x00, 0xc8, 0x86, 0x45, 0xf9, 0x87, 0xcd, 0xc8, 0x27, 0xc4, 0x11, 0x71, + 0x7c, 0xba, 0x54, 0x0a, 0x35, 0x26, 0x7b, 0xa4, 0x6f, 0x6b, 0x59, 0x25, 0x2c, 0x24, 0xa2, 0x9a, + 0x02, 0xac, 0xf9, 0x63, 0xcd, 0x6a, 0x1c, 0x8f, 0xc9, 0x01, 0x4e, 0xe0, 0x73, 0xca, 0x05, 0xf1, + 0x9d, 0x96, 0xed, 0x91, 0x13, 0xe2, 0x49, 0xf3, 0x67, 0x75, 0x61, 0xf2, 0x84, 0x6a, 0x07, 0xf2, + 0x22, 0x46, 0x58, 0x0b, 0xc7, 0xba, 0x65, 0xf3, 0xaf, 0x06, 0x2c, 0xf4, 0xb9, 0x41, 0xdd, 0xbd, + 0x0f, 0xa1, 0x98, 0xaa, 0xc7, 0x23, 0x2f, 0xad, 0xad, 0x06, 0x94, 0x38, 0x4a, 0x8f, 0x18, 0x80, + 0x76, 0x61, 0xb6, 0xdb, 0x3e, 0xc4, 0x55, 0xce, 0x32, 0x07, 0xd9, 0x85, 0xb8, 0xd6, 0xcc, 0x71, + 0xf7, 0xa7, 0xf9, 0x5f, 0x03, 0x96, 0xd2, 0x6c, 0xd1, 0x6e, 0xed, 0x07, 0xc4, 0x4b, 0xcf, 0xac, + 0x60, 0x64, 0xb8, 0x59, 0xc1, 0x73, 0x98, 0x6d, 0x63, 0x3b, 0x03, 0x8b, 0xd9, 0x8c, 0x81, 0x45, + 0xca, 0x20, 0x19, 0x58, 0x88, 0xae, 0xaf, 0xb8, 0xc0, 0xa1, 0xbe, 0xe3, 0x45, 0x2e, 0xb1, 0x3b, + 0x0c, 0xb9, 0xc0, 0x22, 0x4a, 0x9e, 0x8e, 0x29, 0x6b, 0x41, 0xed, 0xa7, 0x4c, 0xf6, 0xe5, 0xa6, + 0xf9, 0x37, 0x03, 0x4a, 0x67, 0x35, 0x56, 0xae, 0x79, 0x0f, 0x26, 0xc3, 0xc0, 0xf3, 0x08, 0xe3, + 0x25, 0x43, 0x5e, 0xf1, 0x35, 0xbd, 0x57, 0x24, 0x8d, 0xbc, 0x7e, 0x29, 0x3d, 0x7a, 0x09, 0x73, + 0x67, 0x04, 0x49, 0x8c, 0x73, 0x23, 0x57, 0xb7, 0x44, 0x2c, 0x6b, 0x56, 0xf4, 0x8a, 0x79, 0x1f, + 0x96, 0x9f, 0x13, 0x91, 0x12, 0xf1, 0x27, 0xad, 0xa7, 0xd2, 0xf8, 0x03, 0x7c, 0x63, 0xfe, 0x7e, + 0x0c, 0xae, 0xe9, 0x71, 0x4a, 0xc3, 0x9f, 0xc2, 0x62, 0xbb, 0x30, 0xec, 0xc8, 0xdb, 0xc4, 0xa1, + 0x52, 0xf8, 0xfb, 0x5a, 0x61, 0xf3, 0x58, 0x56, 0xd2, 0xcc, 0x93, 0x52, 0xbc, 0xc4, 0xe1, 0x33, + 0x5f, 0xb0, 0x96, 0x75, 0xc5, 0x3d, 0xbb, 0x13, 0x0b, 0xa0, 0xf2, 0x73, 0xab, 0x4f, 0x80, 0x91, + 0x8b, 0x0a, 0x90, 0x66, 0xf0, 0xb3, 0x02, 0xe0, 0xb3, 0x3b, 0xe5, 0x28, 0xf6, 0xbf, 0x5e, 0x62, + 0x34, 0x07, 0xa3, 0x47, 0xa4, 0xa5, 0x6c, 0x1a, 0xff, 0x89, 0xaa, 0x30, 0x7e, 0x82, 0xbd, 0x88, + 0x28, 0x5f, 0xde, 0xd1, 0x4a, 0x97, 0x15, 0x4f, 0x56, 0x82, 0x7d, 0x3c, 0xf2, 0xc8, 0x88, 0x8f, + 0xcd, 0x92, 0xf3, 0x6b, 0x3c, 0xd6, 0xe4, 0xb0, 0x22, 0xef, 0x8c, 0x22, 0xd9, 0xc3, 0x4c, 0xc8, + 0x1c, 0xc8, 0xbf, 0xc6, 0x5b, 0x6e, 0xfe, 0x62, 0x04, 0x56, 0xb3, 0x4e, 0x55, 0x71, 0x78, 0x0c, + 0x2b, 0x9a, 0x30, 0x08, 0xdb, 0x84, 0x2a, 0x1c, 0x2b, 0xb9, 0x47, 0xb6, 0xf9, 0xbe, 0x24, 0x02, + 0xbb, 0x58, 0x60, 0xab, 0xdc, 0xef, 0xf1, 0xce, 0xd1, 0xf1, 0x91, 0x9a, 0xd0, 0xef, 0x3a, 0x72, + 0xe4, 0x62, 0x47, 0xf6, 0x47, 0x79, 0xe7, 0x48, 0x73, 0x09, 0x16, 0x9e, 0x13, 0x51, 0xf5, 0x22, + 0x2e, 0x54, 0xbe, 0x50, 0xa3, 0x95, 0x9f, 0x1b, 0xb0, 0xd8, 0xbf, 0xa3, 0x2c, 0xd3, 0x80, 0xab, + 0x3c, 0x0a, 0xc3, 0x80, 0x09, 0xe2, 0xda, 0x8e, 0x47, 0xe3, 0xae, 0xed, 0x84, 0x30, 0xae, 0xac, + 0x12, 0x3b, 0xe2, 0x1d, 0x7d, 0x1f, 0x9e, 0xa2, 0xaa, 0x12, 0xf4, 0x23, 0x85, 0xb1, 0x96, 0xb8, + 0x7e, 0xc3, 0xfc, 0xcd, 0x28, 0x98, 0xcf, 0x35, 0xbd, 0xd9, 0x47, 0xc9, 0xb4, 0xff, 0x35, 0xd5, + 0x0d, 0xcb, 0x30, 0x1d, 0xe2, 0x3a, 0xb1, 0x39, 0xfd, 0x2c, 0x79, 0x1d, 0xc6, 0xad, 0xa9, 0x78, + 0x61, 0x9f, 0x7e, 0x46, 0xd0, 0x2d, 0xb8, 0xe4, 0x93, 0x4f, 0x63, 0xaf, 0xd5, 0x89, 0x2d, 0x82, + 0x23, 0xe2, 0xab, 0x2e, 0x7f, 0x26, 0x5e, 0xde, 0xc3, 0x75, 0x72, 0x10, 0x2f, 0xa2, 0xb7, 0x01, + 0x9d, 0x62, 0x2a, 0xec, 0x5a, 0xc0, 0x6c, 0x9f, 0x9c, 0x26, 0xcd, 0xaf, 0x7c, 0xdc, 0xa7, 0xac, + 0x4b, 0xf1, 0xce, 0x4e, 0xc0, 0x3e, 0x26, 0xa7, 0xb2, 0xeb, 0x45, 0x36, 0x5c, 0x55, 0xff, 0xe0, + 0x50, 0x4d, 0x72, 0x8d, 0x7a, 0x82, 0xb0, 0xe4, 0x7d, 0x9a, 0x90, 0xef, 0xd3, 0x5b, 0x5a, 0x7d, + 0x24, 0x7c, 0x47, 0x12, 0xcb, 0x27, 0x6a, 0x51, 0xb1, 0xe9, 0x5b, 0x47, 0x37, 0x60, 0x46, 0x76, + 0xcd, 0x98, 0x39, 0x0d, 0x7a, 0x82, 0x93, 0xe9, 0xcd, 0x94, 0x55, 0x8c, 0x17, 0xb7, 0xd5, 0x9a, + 0xf9, 0x6f, 0x03, 0x6e, 0xe4, 0x7a, 0x43, 0xc5, 0xc7, 0x03, 0x98, 0x54, 0xc7, 0xe4, 0x56, 0x0e, + 0x29, 0x2c, 0x25, 0x46, 0xdf, 0x83, 0x02, 0xc3, 0xa7, 0x76, 0x8a, 0x4d, 0x82, 0x5d, 0x7f, 0xa5, + 0x9f, 0x62, 0x81, 0x9f, 0x78, 0xc1, 0xa1, 0x05, 0x0c, 0x9f, 0x2a, 0x46, 0x3a, 0xd3, 0x8f, 0xea, + 0x4c, 0x5f, 0x86, 0xa9, 0x44, 0x4f, 0xe2, 0xaa, 0x97, 0xb8, 0xfd, 0x6d, 0xb6, 0xa0, 0xb8, 0x43, + 0xb0, 0x88, 0x18, 0xd9, 0xf1, 0x70, 0x9d, 0x23, 0x0a, 0x5b, 0x9a, 0xc6, 0x00, 0x7b, 0x8c, 0x60, + 0x37, 0xae, 0xce, 0x9a, 0xa1, 0x47, 0xe2, 0x6b, 0x40, 0x18, 0x0b, 0x98, 0x4d, 0x7c, 0x7c, 0xe8, + 0x91, 0x64, 0x50, 0x30, 0x65, 0xdd, 0x39, 0x13, 0x3a, 0xdb, 0x09, 0xae, 0x9a, 0xc2, 0x9e, 0xc5, + 0xa8, 0x67, 0x09, 0xc8, 0xfc, 0xad, 0x01, 0xcb, 0x16, 0xa9, 0x31, 0xc2, 0x1b, 0xed, 0xff, 0x83, + 0x60, 0x7e, 0xc4, 0x5f, 0x53, 0x9b, 0xb6, 0x0a, 0xd7, 0xf4, 0xd2, 0x24, 0x5e, 0xde, 0xfa, 0xcf, + 0x1c, 0x14, 0xd2, 0x9d, 0xed, 0xbd, 0x5d, 0xf4, 0x4b, 0x03, 0x4a, 0x59, 0x53, 0x56, 0xf4, 0x6e, + 0xc6, 0x6c, 0x3f, 0xf7, 0x3f, 0x67, 0xe5, 0xfb, 0x43, 0xa2, 0x54, 0xfc, 0xfd, 0xcc, 0x80, 0x45, + 0xfd, 0xf4, 0x0c, 0x5d, 0x60, 0x3e, 0x58, 0xbe, 0x37, 0x14, 0x46, 0xc9, 0xf0, 0x07, 0x03, 0x96, + 0x73, 0x46, 0xd3, 0xe8, 0xe1, 0x10, 0x4c, 0xbb, 0x07, 0xe8, 0xe5, 0x47, 0xc3, 0x03, 0x95, 0x48, + 0x5f, 0x18, 0xb0, 0x94, 0x31, 0x82, 0x45, 0x19, 0x3a, 0xe6, 0x0e, 0xbe, 0xcb, 0xef, 0x0e, 0x07, + 0x52, 0x62, 0xfc, 0xc5, 0x80, 0xf5, 0x41, 0x53, 0x4e, 0xf4, 0x41, 0x1e, 0xeb, 0x41, 0xc3, 0xe1, + 0xf2, 0x77, 0x2f, 0x88, 0xee, 0x8a, 0x1f, 0xfd, 0x4c, 0x30, 0x23, 0x7e, 0x72, 0x07, 0xae, 0x19, + 0xf1, 0x33, 0x60, 0xe8, 0xf8, 0x27, 0x03, 0x56, 0xf3, 0xe7, 0x67, 0xe8, 0x71, 0x06, 0xdf, 0x73, + 0x8c, 0x24, 0xcb, 0xef, 0x5f, 0x08, 0xab, 0x64, 0xfb, 0x9d, 0x01, 0xe5, 0xec, 0xd9, 0x13, 0x7a, + 0xa0, 0x2f, 0x4f, 0x06, 0x4d, 0xf8, 0xca, 0x0f, 0x87, 0xc6, 0x29, 0x79, 0x7e, 0x6d, 0xc0, 0xd5, + 0xcc, 0x81, 0x12, 0xba, 0x9f, 0x5b, 0x99, 0x66, 0x4a, 0xf3, 0x60, 0x58, 0x98, 0x12, 0xa6, 0x06, + 0x33, 0x3d, 0x4d, 0x35, 0xca, 0x99, 0x05, 0xf4, 0xcd, 0x3f, 0xca, 0xb7, 0xcf, 0x43, 0xaa, 0xce, + 0x09, 0x60, 0xae, 0xbf, 0xba, 0x46, 0xef, 0x9c, 0xb3, 0x08, 0x4f, 0x4e, 0x1b, 0xae, 0x64, 0x47, + 0x9f, 0xc3, 0xbc, 0xae, 0xc7, 0x41, 0xdf, 0x19, 0xa2, 0x1d, 0x4a, 0x0e, 0xbe, 0x3b, 0x74, 0x03, + 0x25, 0xaf, 0xa4, 0xbe, 0x5e, 0xcf, 0xb8, 0x92, 0xb9, 0x2d, 0x45, 0xc6, 0x95, 0x1c, 0xd0, 0x10, + 0x50, 0x98, 0xed, 0x2d, 0x88, 0xd1, 0xed, 0x2c, 0x45, 0xce, 0xd6, 0xd3, 0xe5, 0xb7, 0xcf, 0x45, + 0xdb, 0xf5, 0x7a, 0xe4, 0x54, 0x5a, 0x19, 0xaf, 0xc7, 0xe0, 0x4a, 0x39, 0xe3, 0xf5, 0x38, 0x4f, + 0x51, 0xf7, 0x39, 0xcc, 0xeb, 0xca, 0x81, 0x0c, 0xf7, 0xe7, 0xd4, 0x31, 0x19, 0xee, 0xcf, 0xab, + 0x35, 0x9e, 0xb8, 0xb0, 0xe4, 0x04, 0x4d, 0x1d, 0xee, 0xc9, 0x7c, 0x8a, 0xd8, 0x4f, 0x7e, 0x84, + 0xb4, 0xc7, 0x02, 0x11, 0xec, 0x19, 0x3f, 0xb9, 0x5b, 0xa7, 0xa2, 0x11, 0x1d, 0x56, 0x9c, 0xa0, + 0xb9, 0xd9, 0xfd, 0x43, 0x9e, 0x3b, 0xd4, 0xf5, 0x36, 0xeb, 0x41, 0xf2, 0xfb, 0x23, 0xf5, 0xab, + 0x9e, 0xf7, 0x71, 0x48, 0x4f, 0xee, 0x1e, 0x4e, 0xc8, 0xb5, 0x7b, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0x14, 0x00, 0x82, 0xd7, 0xe4, 0x24, 0x00, 0x00, }, // uber/cadence/api/v1/service_worker.proto []byte{ diff --git a/.gen/proto/matching/v1/service.pb.yarpc.go b/.gen/proto/matching/v1/service.pb.yarpc.go index c4aa987c589..13314cf99d1 100644 --- a/.gen/proto/matching/v1/service.pb.yarpc.go +++ b/.gen/proto/matching/v1/service.pb.yarpc.go @@ -1673,149 +1673,151 @@ var yarpcFileDescriptorClosure826e827d3aabf7fc = [][]byte{ }, // uber/cadence/api/v1/service_workflow.proto []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0x1c, 0x49, - 0xf5, 0x57, 0xcf, 0xd8, 0xce, 0xf8, 0xcc, 0xd8, 0x71, 0x2a, 0xb1, 0x3d, 0x99, 0xc4, 0x97, 0x74, - 0x76, 0xf3, 0xf7, 0x3f, 0xbb, 0x19, 0x13, 0x67, 0x73, 0xd9, 0xec, 0xc2, 0xca, 0x99, 0xd8, 0x59, - 0xa3, 0xcd, 0xca, 0xb4, 0x0d, 0x11, 0xbc, 0xb4, 0xca, 0xdd, 0x35, 0x33, 0xb5, 0xee, 0xe9, 0x6e, - 0x57, 0x55, 0xdb, 0x3b, 0xcb, 0x03, 0x02, 0xad, 0x00, 0x71, 0x13, 0x3c, 0x22, 0x21, 0xf1, 0x00, - 0xcf, 0xbc, 0xf0, 0x15, 0x10, 0x1f, 0x81, 0x77, 0x3e, 0x01, 0xdf, 0x60, 0x85, 0xba, 0xaa, 0x7a, - 0x6e, 0xee, 0xee, 0xb1, 0x8d, 0x56, 0x09, 0xbc, 0xb9, 0xab, 0xce, 0xef, 0xd4, 0xb9, 0xd5, 0xa9, - 0x73, 0x8e, 0x07, 0xee, 0x46, 0x07, 0x84, 0xad, 0x3b, 0xd8, 0x25, 0xbe, 0x43, 0xd6, 0x71, 0x48, - 0xd7, 0x8f, 0xef, 0xaf, 0x73, 0xc2, 0x8e, 0xa9, 0x43, 0xec, 0x93, 0x80, 0x1d, 0x36, 0xbd, 0xe0, - 0xa4, 0x1e, 0xb2, 0x40, 0x04, 0xe8, 0x6a, 0x4c, 0x5b, 0xd7, 0xb4, 0x75, 0x1c, 0xd2, 0xfa, 0xf1, - 0xfd, 0xda, 0x72, 0x2b, 0x08, 0x5a, 0x1e, 0x59, 0x97, 0x24, 0x07, 0x51, 0x73, 0xdd, 0x8d, 0x18, - 0x16, 0x34, 0xf0, 0x15, 0xa8, 0xb6, 0x9a, 0x76, 0x80, 0x13, 0x74, 0x3a, 0x3d, 0x8a, 0x5b, 0x69, - 0x14, 0x6d, 0xca, 0x45, 0xc0, 0xba, 0x9a, 0x64, 0x25, 0x8d, 0xe4, 0x28, 0x22, 0x3d, 0x02, 0x33, - 0x8d, 0x40, 0x60, 0x7e, 0xe8, 0x51, 0x2e, 0xf2, 0x68, 0x86, 0x55, 0x34, 0xff, 0x66, 0xc0, 0x8a, - 0x45, 0xb8, 0xc0, 0x4c, 0xbc, 0xd2, 0x3b, 0x5b, 0x9f, 0x13, 0x27, 0x8a, 0x15, 0xb2, 0xc8, 0x51, - 0x44, 0xb8, 0x40, 0x0b, 0x30, 0xe5, 0x06, 0x1d, 0x4c, 0xfd, 0xaa, 0xb1, 0x6a, 0xac, 0x4d, 0x5b, - 0xfa, 0x0b, 0x7d, 0x17, 0x50, 0xc2, 0xcd, 0x26, 0x09, 0xa8, 0x5a, 0x58, 0x35, 0xd6, 0xca, 0x1b, - 0x77, 0xea, 0x29, 0xb6, 0xab, 0x9f, 0x3e, 0xe2, 0xca, 0xc9, 0xe8, 0x12, 0xaa, 0x41, 0x89, 0xba, - 0xc4, 0x17, 0x54, 0x74, 0xab, 0x45, 0x79, 0x60, 0xef, 0x3b, 0x16, 0x85, 0x11, 0xcc, 0x03, 0xbf, - 0x3a, 0xa1, 0x44, 0x51, 0x5f, 0xe6, 0xcf, 0x4b, 0xb0, 0xb4, 0x77, 0x21, 0x25, 0x56, 0xa0, 0xdc, - 0x53, 0x82, 0xba, 0x52, 0xfa, 0x69, 0x0b, 0x92, 0xa5, 0x1d, 0x17, 0x6d, 0xc3, 0x4c, 0x8f, 0x40, - 0x74, 0x43, 0x22, 0x65, 0x2a, 0x6f, 0xdc, 0xca, 0x55, 0x70, 0xbf, 0x1b, 0x12, 0xab, 0x72, 0x32, - 0xf0, 0x85, 0x9e, 0xc2, 0x74, 0xec, 0x1f, 0x3b, 0x76, 0x90, 0x94, 0xbe, 0xbc, 0xb1, 0x94, 0xca, - 0x63, 0x1f, 0xf3, 0xc3, 0x4f, 0x28, 0x17, 0x56, 0x49, 0xe8, 0xbf, 0xd0, 0x06, 0x4c, 0x52, 0x3f, - 0x8c, 0x44, 0x75, 0x52, 0xe2, 0x6e, 0xa6, 0xe2, 0x76, 0x71, 0xd7, 0x0b, 0xb0, 0x6b, 0x29, 0x52, - 0x84, 0x61, 0xb5, 0xe7, 0x14, 0x5b, 0x3a, 0xd8, 0x16, 0x81, 0xed, 0x78, 0x01, 0x27, 0xb6, 0xa0, - 0x1d, 0x12, 0x44, 0xa2, 0x3a, 0x25, 0xd9, 0x5d, 0xaf, 0xab, 0x90, 0xae, 0x27, 0x21, 0x5d, 0x7f, - 0xae, 0x43, 0xda, 0xba, 0xd9, 0x63, 0x21, 0xad, 0xbb, 0x1f, 0x34, 0x62, 0xfc, 0xbe, 0x82, 0xa3, - 0x57, 0x70, 0x43, 0xaa, 0x94, 0xc1, 0xfd, 0xd2, 0x38, 0xee, 0x8b, 0x31, 0x3a, 0x8d, 0xf1, 0x60, - 0x08, 0x94, 0x46, 0x42, 0x60, 0x09, 0x80, 0x29, 0x9f, 0xc6, 0xfe, 0x9a, 0x96, 0xbb, 0xd3, 0x7a, - 0x65, 0xc7, 0x45, 0x0e, 0x54, 0x07, 0xfc, 0x69, 0x33, 0x12, 0x71, 0x62, 0x87, 0x81, 0x47, 0x9d, - 0x6e, 0x15, 0x56, 0x8d, 0xb5, 0xd9, 0x8d, 0xbb, 0xb9, 0x9e, 0xdb, 0x71, 0xad, 0x18, 0xb2, 0x2b, - 0x11, 0xd6, 0xfc, 0x49, 0xda, 0x32, 0x6a, 0x40, 0x85, 0x11, 0xc1, 0xba, 0x09, 0xe3, 0xb2, 0xd4, - 0x74, 0x35, 0x95, 0xb1, 0x15, 0x13, 0x6a, 0x76, 0x65, 0xd6, 0xff, 0x40, 0xb7, 0x61, 0xc6, 0x61, - 0xb1, 0x6f, 0x9c, 0x36, 0x71, 0x23, 0x8f, 0x54, 0x2b, 0x52, 0x97, 0x4a, 0xbc, 0xb8, 0xa7, 0xd7, - 0xd0, 0x3d, 0x98, 0xe8, 0x90, 0x4e, 0x50, 0x9d, 0xd1, 0xb6, 0x4c, 0x3b, 0xe1, 0x25, 0xe9, 0x04, - 0x96, 0x24, 0x43, 0x16, 0x5c, 0xe1, 0x04, 0x33, 0xa7, 0x6d, 0x63, 0x21, 0x18, 0x3d, 0x88, 0x04, - 0xe1, 0xd5, 0x59, 0x89, 0x7d, 0x3b, 0x15, 0xbb, 0x27, 0xa9, 0x37, 0x7b, 0xc4, 0xd6, 0x1c, 0x1f, - 0x59, 0x41, 0x0f, 0x60, 0xaa, 0x4d, 0xb0, 0x4b, 0x58, 0xf5, 0xb2, 0x64, 0x74, 0x23, 0x95, 0xd1, - 0xc7, 0x92, 0xc4, 0xd2, 0xa4, 0xe8, 0x29, 0x94, 0x5d, 0xe2, 0xe1, 0xae, 0x8a, 0x8d, 0xea, 0xdc, - 0xb8, 0x50, 0x00, 0x49, 0x2d, 0x63, 0x01, 0x7d, 0x08, 0x95, 0xcf, 0xa8, 0x10, 0x84, 0x69, 0xf0, - 0x95, 0x71, 0xe0, 0xb2, 0x22, 0x97, 0x68, 0xf3, 0x31, 0x2c, 0x67, 0x65, 0x02, 0x1e, 0x06, 0x3e, - 0x27, 0x68, 0x1e, 0xa6, 0x58, 0xe4, 0xc7, 0xd1, 0xa3, 0x52, 0xc1, 0x24, 0x8b, 0xfc, 0x1d, 0xd7, - 0x7c, 0x1f, 0x56, 0xb3, 0x33, 0x61, 0x3e, 0xf4, 0xef, 0x05, 0x58, 0xde, 0xa3, 0x2d, 0x1f, 0x7b, - 0xff, 0x0d, 0x49, 0x74, 0xf8, 0x06, 0x4d, 0x8c, 0xde, 0xa0, 0x15, 0x28, 0x73, 0xa9, 0x8b, 0xed, - 0xe3, 0x0e, 0x91, 0x29, 0x67, 0xda, 0x02, 0xb5, 0xf4, 0x29, 0xee, 0x10, 0xf4, 0x11, 0x54, 0x34, - 0x81, 0x4a, 0x4a, 0x53, 0x67, 0x48, 0x4a, 0x9a, 0xe5, 0x8e, 0x4c, 0x4d, 0x55, 0xb8, 0xe4, 0x04, - 0xbe, 0x60, 0x81, 0x27, 0x73, 0x44, 0xc5, 0x4a, 0x3e, 0xcd, 0x5b, 0xb0, 0x92, 0x69, 0x47, 0xe5, - 0x02, 0xf3, 0x2b, 0x03, 0xfe, 0x4f, 0xd3, 0x50, 0xd1, 0xce, 0x4f, 0xfa, 0xaf, 0x60, 0x46, 0xe5, - 0x26, 0xad, 0x9d, 0xb4, 0x7d, 0x79, 0x63, 0x23, 0xfd, 0x2a, 0xe4, 0xb1, 0xb2, 0x2a, 0x92, 0x51, - 0xc2, 0x78, 0xc4, 0x46, 0x85, 0xb1, 0x36, 0x2a, 0xfe, 0x07, 0x36, 0x9a, 0x18, 0xb6, 0xd1, 0x26, - 0xac, 0x8d, 0xd7, 0x3f, 0x3f, 0x5e, 0xff, 0x52, 0x80, 0x25, 0x8b, 0x70, 0xf2, 0xc6, 0xbc, 0xf9, - 0xfd, 0x77, 0xbd, 0x38, 0xf8, 0xae, 0xa3, 0xc7, 0x50, 0x75, 0x89, 0x43, 0x79, 0xfc, 0x86, 0x35, - 0xa9, 0x4f, 0x79, 0xdb, 0x26, 0xc7, 0xc4, 0xef, 0x05, 0x6e, 0xd1, 0x9a, 0x4f, 0xf6, 0xb7, 0xe5, - 0xf6, 0x56, 0xbc, 0xbb, 0xe3, 0x8e, 0xc4, 0xf8, 0xe4, 0x68, 0x8c, 0xd7, 0xe1, 0x2a, 0x3f, 0xa4, - 0xa1, 0xad, 0x7d, 0xc4, 0x08, 0x0e, 0x43, 0xaf, 0x2b, 0x23, 0xb9, 0x64, 0x5d, 0x89, 0xb7, 0x94, - 0x89, 0x2d, 0xb5, 0x11, 0x27, 0x95, 0x2c, 0x7b, 0xe5, 0x5b, 0xfa, 0x0f, 0x05, 0x78, 0x5b, 0xdb, - 0xb4, 0x81, 0x7d, 0x87, 0xfc, 0x2f, 0x24, 0x88, 0x6b, 0x30, 0xe9, 0xe0, 0x88, 0x27, 0xa9, 0x41, - 0x7d, 0xa0, 0x07, 0xb0, 0xd0, 0xa4, 0x8c, 0x8b, 0xbe, 0x90, 0xb6, 0x36, 0xc8, 0x94, 0x24, 0xbb, - 0x2a, 0x77, 0xfb, 0x32, 0x49, 0xf3, 0xac, 0xc1, 0x9d, 0x71, 0xd6, 0xd1, 0xd7, 0xfe, 0xaf, 0x05, - 0xb8, 0xb5, 0x4f, 0x58, 0x87, 0xfa, 0x58, 0x90, 0x37, 0x3d, 0x6c, 0x1f, 0xc1, 0x25, 0x97, 0x08, - 0x4c, 0x3d, 0xae, 0x2b, 0xbd, 0xfc, 0x8b, 0x9f, 0x10, 0x0f, 0x39, 0x65, 0x72, 0xc4, 0x29, 0x17, - 0xb2, 0xef, 0x5b, 0x60, 0xe6, 0x19, 0x4d, 0xdb, 0xf6, 0x77, 0x06, 0xac, 0x3e, 0x27, 0xdc, 0x61, - 0xf4, 0xe0, 0x4d, 0x31, 0xad, 0xf9, 0x55, 0x11, 0x6e, 0xe5, 0xc8, 0xa4, 0x6f, 0x9d, 0x07, 0x8b, - 0x7d, 0x73, 0x38, 0x81, 0xdf, 0xa4, 0x2d, 0x5d, 0x14, 0xe8, 0x54, 0xff, 0xe0, 0x6c, 0x12, 0x34, - 0x06, 0xa1, 0xd6, 0x02, 0x49, 0x5d, 0x47, 0x07, 0xb0, 0x78, 0x5a, 0x55, 0x9b, 0xfa, 0xcd, 0x40, - 0xeb, 0x7b, 0xf7, 0x6c, 0xa7, 0xed, 0xf8, 0xcd, 0xa0, 0x5f, 0x5a, 0x0e, 0x2d, 0xa3, 0x57, 0x80, - 0x42, 0xe2, 0xbb, 0xd4, 0x6f, 0xd9, 0xd8, 0x11, 0xf4, 0x98, 0x0a, 0x4a, 0x78, 0xb5, 0xb8, 0x5a, - 0x5c, 0x2b, 0x6f, 0xac, 0xa5, 0x47, 0x91, 0x22, 0xdf, 0x54, 0xd4, 0x5d, 0xc9, 0xfc, 0x4a, 0x38, - 0xb4, 0x48, 0x09, 0x47, 0xdf, 0x87, 0xb9, 0x84, 0xb1, 0xd3, 0xa6, 0x9e, 0xcb, 0x48, 0xdc, 0x44, - 0xc5, 0x6c, 0xeb, 0x79, 0x6c, 0x1b, 0x31, 0xed, 0xb0, 0xe4, 0x97, 0xc3, 0x81, 0x2d, 0x46, 0x7c, - 0xb4, 0xd7, 0x67, 0x9d, 0x64, 0x63, 0xdd, 0xa9, 0xe4, 0x4a, 0xfc, 0x5c, 0xd3, 0x0e, 0x31, 0x4d, - 0x16, 0xcd, 0x2f, 0x8b, 0x70, 0xed, 0x3b, 0x71, 0xc7, 0x9b, 0x98, 0xef, 0x35, 0xdd, 0xf1, 0x27, - 0x30, 0x29, 0x1b, 0x6f, 0xfd, 0x84, 0x9b, 0xb9, 0x9c, 0xa4, 0xc0, 0x96, 0x02, 0x20, 0x1b, 0x16, - 0xe4, 0x1f, 0x36, 0x23, 0x9f, 0x11, 0x47, 0xc4, 0xf1, 0xe9, 0x52, 0x29, 0xd4, 0x84, 0x6c, 0x44, - 0xfe, 0x3f, 0x95, 0x95, 0x62, 0x21, 0x11, 0x8d, 0x04, 0x60, 0x5d, 0x3b, 0x4a, 0x59, 0x8d, 0xe3, - 0x51, 0x1d, 0xe0, 0x04, 0x3e, 0xa7, 0x5c, 0x10, 0xdf, 0xe9, 0xda, 0x1e, 0x39, 0x26, 0x9e, 0x34, - 0x7f, 0x56, 0xab, 0x23, 0x4f, 0x68, 0xf4, 0x21, 0x9f, 0xc4, 0x08, 0x6b, 0xfe, 0x28, 0x6d, 0xd9, - 0xfc, 0x93, 0x01, 0xf3, 0x23, 0x6e, 0xd0, 0x77, 0xef, 0x23, 0xa8, 0x24, 0xea, 0xf1, 0xc8, 0x4b, - 0x6a, 0xab, 0x31, 0x25, 0x8e, 0xd6, 0x23, 0x06, 0xa0, 0x1d, 0x98, 0x1d, 0xb4, 0x0f, 0x71, 0xb5, - 0xb3, 0xcc, 0x71, 0x76, 0x21, 0xae, 0x35, 0x73, 0x34, 0xf8, 0x69, 0xfe, 0xcb, 0x80, 0xc5, 0x24, - 0x5b, 0xf4, 0xfa, 0xe7, 0x31, 0xf1, 0x32, 0xd4, 0x90, 0x17, 0xce, 0xd7, 0x90, 0xbf, 0x80, 0xd9, - 0x1e, 0xb6, 0x3f, 0x15, 0x98, 0xcd, 0x98, 0x0a, 0x24, 0x0c, 0xd4, 0x54, 0x40, 0x0c, 0x7c, 0xc5, - 0x05, 0x0e, 0xf5, 0x1d, 0x2f, 0x72, 0x89, 0xdd, 0x67, 0xc8, 0x05, 0x16, 0x91, 0x7a, 0x3a, 0x4a, - 0xd6, 0xbc, 0xde, 0x4f, 0x98, 0xec, 0xc9, 0x4d, 0xf3, 0xcf, 0x06, 0x54, 0x4f, 0x6b, 0xac, 0x5d, - 0xf3, 0x3e, 0x5c, 0x0a, 0x03, 0xcf, 0x23, 0x8c, 0x57, 0x0d, 0x79, 0xc5, 0x57, 0xd2, 0xbd, 0x22, - 0x69, 0xe4, 0xf5, 0x4b, 0xe8, 0xd1, 0x4b, 0x98, 0x3b, 0x25, 0x88, 0x32, 0xce, 0xed, 0x5c, 0xdd, - 0x94, 0x58, 0xd6, 0xac, 0x18, 0x16, 0xf3, 0x21, 0xdc, 0x78, 0x41, 0x44, 0x42, 0xc4, 0x9f, 0x75, - 0x9f, 0x4b, 0xe3, 0x8f, 0xf1, 0x8d, 0xf9, 0x9b, 0x09, 0xb8, 0x99, 0x8e, 0xd3, 0x1a, 0xfe, 0x08, - 0x16, 0x7a, 0x85, 0x61, 0x5f, 0xde, 0x0e, 0x0e, 0xb5, 0xc2, 0xdf, 0x4e, 0x15, 0x36, 0x8f, 0x65, - 0x3d, 0xc9, 0x3c, 0x09, 0xc5, 0x4b, 0x1c, 0x6e, 0xf9, 0x82, 0x75, 0xad, 0xab, 0xee, 0xe9, 0x9d, - 0x58, 0x00, 0x9d, 0x9f, 0xbb, 0x23, 0x02, 0x14, 0x2e, 0x2a, 0x40, 0x92, 0xc1, 0x4f, 0x0b, 0x80, - 0x4f, 0xef, 0xd4, 0xa2, 0xd8, 0xff, 0xe9, 0x12, 0xa3, 0x39, 0x28, 0x1e, 0x92, 0xae, 0xb6, 0x69, - 0xfc, 0x27, 0x6a, 0xc0, 0xe4, 0x31, 0xf6, 0x22, 0xa2, 0x7d, 0x79, 0x2f, 0x55, 0xba, 0xac, 0x78, - 0xb2, 0x14, 0xf6, 0x69, 0xe1, 0x89, 0x11, 0x1f, 0x9b, 0x25, 0xe7, 0xd7, 0x78, 0xac, 0xc9, 0x61, - 0x49, 0xde, 0x19, 0x4d, 0xb2, 0x8b, 0x99, 0x90, 0x39, 0x90, 0x7f, 0x8d, 0xb7, 0xdc, 0xfc, 0x69, - 0x01, 0x96, 0xb3, 0x4e, 0xd5, 0x71, 0x78, 0x04, 0x4b, 0x29, 0x61, 0x10, 0xf6, 0x08, 0x75, 0x38, - 0xd6, 0x73, 0x8f, 0xec, 0xf1, 0x7d, 0x49, 0x04, 0x76, 0xb1, 0xc0, 0x56, 0x6d, 0xd4, 0xe3, 0xfd, - 0xa3, 0xe3, 0x23, 0x53, 0x42, 0x7f, 0xe0, 0xc8, 0xc2, 0xc5, 0x8e, 0x1c, 0x8d, 0xf2, 0xfe, 0x91, - 0xe6, 0x22, 0xcc, 0xbf, 0x20, 0xa2, 0xe1, 0x45, 0x5c, 0xe8, 0x7c, 0xa1, 0xac, 0x6e, 0xfe, 0xc4, - 0x80, 0x85, 0xd1, 0x1d, 0x6d, 0x99, 0x36, 0x5c, 0xe7, 0x51, 0x18, 0x06, 0x4c, 0x10, 0xd7, 0x76, - 0x3c, 0x1a, 0x77, 0x6d, 0xc7, 0x84, 0x71, 0x6d, 0x95, 0xd8, 0x11, 0xef, 0xa6, 0xf7, 0xe1, 0x09, - 0xaa, 0x21, 0x41, 0xdf, 0xd3, 0x18, 0x6b, 0x91, 0xa7, 0x6f, 0x98, 0xbf, 0x2c, 0x82, 0xf9, 0x22, - 0xa5, 0x37, 0xfb, 0x58, 0x8d, 0xd4, 0x5f, 0x53, 0xdd, 0x70, 0x03, 0xa6, 0x43, 0xdc, 0x22, 0x36, - 0xa7, 0x5f, 0xa8, 0xd7, 0x61, 0xd2, 0x2a, 0xc5, 0x0b, 0x7b, 0xf4, 0x0b, 0x82, 0xee, 0xc0, 0x65, - 0x9f, 0x7c, 0x1e, 0x7b, 0xad, 0x45, 0x6c, 0x11, 0x1c, 0x12, 0x5f, 0x77, 0xf9, 0x33, 0xf1, 0xf2, - 0x2e, 0x6e, 0x91, 0xfd, 0x78, 0x11, 0xbd, 0x03, 0xe8, 0x04, 0x53, 0x61, 0x37, 0x03, 0x66, 0xfb, - 0xe4, 0x44, 0x35, 0xbf, 0xf2, 0x71, 0x2f, 0x59, 0x97, 0xe3, 0x9d, 0xed, 0x80, 0x7d, 0x4a, 0x4e, - 0x64, 0xd7, 0x8b, 0x6c, 0xb8, 0xae, 0xff, 0x8b, 0xa0, 0x9b, 0xe4, 0x26, 0xf5, 0x04, 0x61, 0xea, - 0x7d, 0x9a, 0x92, 0xef, 0xd3, 0x5b, 0xa9, 0xfa, 0x48, 0xf8, 0xb6, 0x24, 0x96, 0x4f, 0xd4, 0x82, - 0x66, 0x33, 0xb2, 0x8e, 0x6e, 0xc3, 0x8c, 0xec, 0x9a, 0x31, 0x73, 0xda, 0xf4, 0x18, 0xab, 0xe9, - 0x4d, 0xc9, 0xaa, 0xc4, 0x8b, 0x9b, 0x7a, 0xcd, 0xfc, 0xa7, 0x01, 0xb7, 0x73, 0xbd, 0xa1, 0xe3, - 0xe3, 0x11, 0x5c, 0xd2, 0xc7, 0xe4, 0x56, 0x0e, 0x09, 0x2c, 0x21, 0x46, 0xdf, 0x82, 0x32, 0xc3, - 0x27, 0x76, 0x82, 0x55, 0xc1, 0x9e, 0x7e, 0xa5, 0x9f, 0x63, 0x81, 0x9f, 0x79, 0xc1, 0x81, 0x05, - 0x0c, 0x9f, 0x68, 0x46, 0x69, 0xa6, 0x2f, 0xa6, 0x99, 0xbe, 0x06, 0x25, 0xa5, 0x27, 0x71, 0xf5, - 0x4b, 0xdc, 0xfb, 0x36, 0xbb, 0x50, 0xd9, 0x26, 0x58, 0x44, 0x8c, 0x6c, 0x7b, 0xb8, 0xc5, 0x11, - 0x85, 0x8d, 0x94, 0xc6, 0x00, 0x7b, 0x8c, 0x60, 0x37, 0xae, 0xce, 0x3a, 0xa1, 0x47, 0xe2, 0x6b, - 0x40, 0x18, 0x0b, 0x98, 0x4d, 0x7c, 0x7c, 0xe0, 0x11, 0x35, 0x28, 0x28, 0x59, 0xf7, 0x4e, 0x85, - 0xce, 0xa6, 0xc2, 0x35, 0x12, 0xd8, 0x56, 0x8c, 0xda, 0x52, 0x20, 0xf3, 0x57, 0x06, 0xdc, 0xb0, - 0x48, 0x93, 0x11, 0xde, 0xee, 0xfd, 0xb3, 0x01, 0xf3, 0x43, 0xfe, 0x9a, 0xda, 0xb4, 0x65, 0xb8, - 0x99, 0x2e, 0x8d, 0xf2, 0xf2, 0xc6, 0x3f, 0x2e, 0x43, 0x39, 0xd9, 0xd9, 0xdc, 0xdd, 0x41, 0x3f, - 0x33, 0xa0, 0x9a, 0x35, 0x65, 0x45, 0xef, 0x65, 0x0c, 0xd0, 0x73, 0xff, 0x3d, 0x55, 0x7b, 0x78, - 0x4e, 0x94, 0x8e, 0xbf, 0x1f, 0x1b, 0xb0, 0x90, 0x3e, 0x3d, 0x43, 0x17, 0x98, 0x0f, 0xd6, 0x1e, - 0x9c, 0x0b, 0xa3, 0x65, 0xf8, 0xd2, 0x80, 0xc5, 0x8c, 0x79, 0x27, 0xca, 0x60, 0x98, 0x3b, 0x65, - 0xae, 0xbd, 0x77, 0x3e, 0x90, 0x16, 0xe3, 0x8f, 0x06, 0xac, 0x8e, 0x1b, 0x29, 0xa2, 0x0f, 0xf3, - 0x58, 0x8f, 0x9b, 0xc4, 0xd6, 0xbe, 0x79, 0x41, 0xf4, 0x80, 0xb3, 0xd2, 0x07, 0x70, 0x19, 0xce, - 0xca, 0x9d, 0x6e, 0x66, 0x38, 0x6b, 0xcc, 0x84, 0xef, 0xf7, 0x06, 0x2c, 0xe7, 0x0f, 0xab, 0xd0, - 0xd3, 0x0c, 0xbe, 0x67, 0x98, 0xff, 0xd5, 0x3e, 0xb8, 0x10, 0x56, 0xcb, 0xf6, 0x6b, 0x03, 0x6a, - 0xd9, 0x83, 0x1e, 0xf4, 0x28, 0xbd, 0x16, 0x18, 0x37, 0x4e, 0xab, 0x3d, 0x3e, 0x37, 0x4e, 0xcb, - 0xf3, 0x0b, 0x03, 0xae, 0x67, 0x4e, 0x6f, 0xd0, 0xc3, 0xdc, 0x32, 0x30, 0x53, 0x9a, 0x47, 0xe7, - 0x85, 0x69, 0x61, 0x9a, 0x30, 0x33, 0xd4, 0xc1, 0xa2, 0x9c, 0xc6, 0x7b, 0x64, 0xd8, 0x50, 0xbb, - 0x7b, 0x16, 0x52, 0x7d, 0x4e, 0x00, 0x73, 0xa3, 0xa5, 0x2c, 0x7a, 0xf7, 0x8c, 0x15, 0xaf, 0x3a, - 0xed, 0x7c, 0xf5, 0x31, 0xfa, 0x21, 0x5c, 0x4b, 0x6b, 0x28, 0xd0, 0x37, 0xce, 0xd1, 0x7b, 0xa8, - 0x83, 0xef, 0x9f, 0xbb, 0x5b, 0x91, 0x57, 0x32, 0xbd, 0x38, 0xce, 0xb8, 0x92, 0xb9, 0xf5, 0x7b, - 0xc6, 0x95, 0x1c, 0x53, 0x7d, 0x53, 0x98, 0x1d, 0xae, 0x3e, 0xd1, 0xdd, 0x2c, 0x45, 0x4e, 0x17, - 0xaf, 0xb5, 0x77, 0xce, 0x44, 0xab, 0x8f, 0xfa, 0xad, 0x21, 0x3b, 0xd9, 0xac, 0xb2, 0x06, 0x3d, - 0xce, 0x62, 0x36, 0xa6, 0x2c, 0xad, 0x3d, 0x39, 0x3f, 0xb0, 0xef, 0xfe, 0xb4, 0xb7, 0x37, 0xc3, - 0xfd, 0x39, 0x45, 0x43, 0x86, 0xfb, 0xf3, 0x1e, 0xf6, 0x67, 0x2e, 0x2c, 0x3a, 0x41, 0x27, 0x0d, - 0xf7, 0xec, 0x5a, 0x82, 0xd8, 0x53, 0x3f, 0xab, 0xd9, 0x65, 0x81, 0x08, 0x76, 0x8d, 0x1f, 0xdc, - 0x6f, 0x51, 0xd1, 0x8e, 0x0e, 0xea, 0x4e, 0xd0, 0x59, 0x1f, 0xfc, 0x69, 0xca, 0x3d, 0xea, 0x7a, - 0xeb, 0xad, 0x40, 0xfd, 0xa2, 0x46, 0xff, 0x4e, 0xe5, 0x03, 0x1c, 0xd2, 0xe3, 0xfb, 0x07, 0x53, - 0x72, 0xed, 0xc1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xdb, 0xd5, 0x62, 0xb6, 0x23, 0x00, - 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0xdc, 0xc6, + 0x15, 0x06, 0x75, 0xd7, 0xd9, 0x95, 0x2c, 0x8f, 0x75, 0x59, 0xaf, 0xac, 0x8b, 0xe9, 0xd8, 0x55, + 0x9d, 0x78, 0x55, 0xcb, 0xf1, 0x25, 0x4e, 0xda, 0x40, 0x5e, 0x5b, 0x8e, 0x0a, 0x3b, 0x50, 0x29, + 0xb5, 0x46, 0xfb, 0x42, 0x8c, 0xc8, 0xd9, 0xdd, 0x89, 0xb8, 0x24, 0x35, 0x33, 0x94, 0xb2, 0xc9, + 0x43, 0xd1, 0x22, 0x68, 0x8b, 0xde, 0xd0, 0x3e, 0x16, 0x28, 0xd0, 0x87, 0xf6, 0xb9, 0x2f, 0xfd, + 0x0b, 0x45, 0xff, 0x47, 0x1f, 0xfb, 0xd4, 0x7f, 0x10, 0x14, 0x1c, 0x0e, 0xf7, 0xa6, 0x21, 0x57, + 0xab, 0x20, 0xb0, 0x9b, 0x37, 0x71, 0xe6, 0x7c, 0x67, 0xce, 0x6d, 0xce, 0x9c, 0x73, 0xb4, 0x70, + 0x3b, 0x3a, 0x24, 0x6c, 0xd3, 0xc1, 0x2e, 0xf1, 0x1d, 0xb2, 0x89, 0x43, 0xba, 0x79, 0x72, 0x77, + 0x93, 0x13, 0x76, 0x42, 0x1d, 0x62, 0x9f, 0x06, 0xec, 0xa8, 0xe6, 0x05, 0xa7, 0x95, 0x90, 0x05, + 0x22, 0x40, 0x57, 0x62, 0xda, 0x8a, 0xa2, 0xad, 0xe0, 0x90, 0x56, 0x4e, 0xee, 0x96, 0x57, 0xeb, + 0x41, 0x50, 0xf7, 0xc8, 0xa6, 0x24, 0x39, 0x8c, 0x6a, 0x9b, 0x6e, 0xc4, 0xb0, 0xa0, 0x81, 0x9f, + 0x80, 0xca, 0xeb, 0xba, 0x03, 0x9c, 0xa0, 0xd9, 0x6c, 0x53, 0x5c, 0xd7, 0x51, 0x34, 0x28, 0x17, + 0x01, 0x6b, 0x29, 0x92, 0x35, 0x1d, 0xc9, 0x71, 0x44, 0xda, 0x04, 0xa6, 0x8e, 0x40, 0x60, 0x7e, + 0xe4, 0x51, 0x2e, 0xf2, 0x68, 0x7a, 0x55, 0x34, 0xff, 0x69, 0xc0, 0x9a, 0x45, 0xb8, 0xc0, 0x4c, + 0xbc, 0x52, 0x3b, 0xcf, 0x3e, 0x25, 0x4e, 0x14, 0x2b, 0x64, 0x91, 0xe3, 0x88, 0x70, 0x81, 0x16, + 0x61, 0xc2, 0x0d, 0x9a, 0x98, 0xfa, 0x25, 0x63, 0xdd, 0xd8, 0x98, 0xb6, 0xd4, 0x17, 0xfa, 0x21, + 0xa0, 0x94, 0x9b, 0x4d, 0x52, 0x50, 0x69, 0x64, 0xdd, 0xd8, 0x28, 0x6c, 0xdd, 0xaa, 0x68, 0x6c, + 0x57, 0x39, 0x7b, 0xc4, 0xe5, 0xd3, 0xfe, 0x25, 0x54, 0x86, 0x29, 0xea, 0x12, 0x5f, 0x50, 0xd1, + 0x2a, 0x8d, 0xca, 0x03, 0xdb, 0xdf, 0xb1, 0x28, 0x8c, 0x60, 0x1e, 0xf8, 0xa5, 0xb1, 0x44, 0x94, + 0xe4, 0xcb, 0xfc, 0xd5, 0x14, 0xac, 0xec, 0x5f, 0x48, 0x89, 0x35, 0x28, 0xb4, 0x95, 0xa0, 0xae, + 0x94, 0x7e, 0xda, 0x82, 0x74, 0x69, 0xd7, 0x45, 0x3b, 0x30, 0xd3, 0x26, 0x10, 0xad, 0x90, 0x48, + 0x99, 0x0a, 0x5b, 0xd7, 0x73, 0x15, 0x3c, 0x68, 0x85, 0xc4, 0x2a, 0x9e, 0x76, 0x7d, 0xa1, 0xc7, + 0x30, 0x1d, 0xfb, 0xc7, 0x8e, 0x1d, 0x24, 0xa5, 0x2f, 0x6c, 0xad, 0x68, 0x79, 0x1c, 0x60, 0x7e, + 0xf4, 0x82, 0x72, 0x61, 0x4d, 0x09, 0xf5, 0x17, 0xda, 0x82, 0x71, 0xea, 0x87, 0x91, 0x28, 0x8d, + 0x4b, 0xdc, 0x35, 0x2d, 0x6e, 0x0f, 0xb7, 0xbc, 0x00, 0xbb, 0x56, 0x42, 0x8a, 0x30, 0xac, 0xb7, + 0x9d, 0x62, 0x4b, 0x07, 0xdb, 0x22, 0xb0, 0x1d, 0x2f, 0xe0, 0xc4, 0x16, 0xb4, 0x49, 0x82, 0x48, + 0x94, 0x26, 0x24, 0xbb, 0xab, 0x95, 0x24, 0xa4, 0x2b, 0x69, 0x48, 0x57, 0x9e, 0xaa, 0x90, 0xb6, + 0xae, 0xb5, 0x59, 0x48, 0xeb, 0x1e, 0x04, 0xd5, 0x18, 0x7f, 0x90, 0xc0, 0xd1, 0x2b, 0x58, 0x96, + 0x2a, 0x65, 0x70, 0x9f, 0x1c, 0xc4, 0x7d, 0x29, 0x46, 0xeb, 0x18, 0x77, 0x87, 0xc0, 0x54, 0x5f, + 0x08, 0xac, 0x00, 0xb0, 0xc4, 0xa7, 0xb1, 0xbf, 0xa6, 0xe5, 0xee, 0xb4, 0x5a, 0xd9, 0x75, 0x91, + 0x03, 0xa5, 0x2e, 0x7f, 0xda, 0x8c, 0x44, 0x9c, 0xd8, 0x61, 0xe0, 0x51, 0xa7, 0x55, 0x82, 0x75, + 0x63, 0x63, 0x76, 0xeb, 0x76, 0xae, 0xe7, 0x76, 0x5d, 0x2b, 0x86, 0xec, 0x49, 0x84, 0xb5, 0x70, + 0xaa, 0x5b, 0x46, 0x55, 0x28, 0x32, 0x22, 0x58, 0x2b, 0x65, 0x5c, 0x90, 0x9a, 0xae, 0x6b, 0x19, + 0x5b, 0x31, 0xa1, 0x62, 0x57, 0x60, 0x9d, 0x0f, 0x74, 0x03, 0x66, 0x1c, 0x16, 0xfb, 0xc6, 0x69, + 0x10, 0x37, 0xf2, 0x48, 0xa9, 0x28, 0x75, 0x29, 0xc6, 0x8b, 0xfb, 0x6a, 0x0d, 0xdd, 0x81, 0xb1, + 0x26, 0x69, 0x06, 0xa5, 0x19, 0x65, 0x4b, 0xdd, 0x09, 0x2f, 0x49, 0x33, 0xb0, 0x24, 0x19, 0xb2, + 0xe0, 0x32, 0x27, 0x98, 0x39, 0x0d, 0x1b, 0x0b, 0xc1, 0xe8, 0x61, 0x24, 0x08, 0x2f, 0xcd, 0x4a, + 0xec, 0x4d, 0x2d, 0x76, 0x5f, 0x52, 0x6f, 0xb7, 0x89, 0xad, 0x39, 0xde, 0xb7, 0x82, 0xee, 0xc1, + 0x44, 0x83, 0x60, 0x97, 0xb0, 0xd2, 0x25, 0xc9, 0x68, 0x59, 0xcb, 0xe8, 0x23, 0x49, 0x62, 0x29, + 0x52, 0xf4, 0x18, 0x0a, 0x2e, 0xf1, 0x70, 0x2b, 0x89, 0x8d, 0xd2, 0xdc, 0xa0, 0x50, 0x00, 0x49, + 0x2d, 0x63, 0x01, 0x7d, 0x00, 0xc5, 0x4f, 0xa8, 0x10, 0x84, 0x29, 0xf0, 0xe5, 0x41, 0xe0, 0x42, + 0x42, 0x2e, 0xd1, 0xe6, 0x43, 0x58, 0xcd, 0xca, 0x04, 0x3c, 0x0c, 0x7c, 0x4e, 0xd0, 0x02, 0x4c, + 0xb0, 0xc8, 0x8f, 0xa3, 0x27, 0x49, 0x05, 0xe3, 0x2c, 0xf2, 0x77, 0x5d, 0x93, 0x81, 0xa9, 0x07, + 0x6e, 0xf3, 0x96, 0xef, 0xa4, 0x79, 0xe4, 0x05, 0x4c, 0xaa, 0x60, 0x93, 0xe8, 0xc2, 0xd6, 0x96, + 0xde, 0xae, 0x79, 0xc9, 0xc8, 0x4a, 0x59, 0x98, 0x37, 0xe1, 0x46, 0xee, 0x99, 0x89, 0xc4, 0xe6, + 0x7b, 0xb0, 0x9e, 0x9d, 0xa4, 0xf3, 0xb5, 0xfa, 0xd7, 0x08, 0xac, 0xee, 0xd3, 0xba, 0x8f, 0xbd, + 0xff, 0x87, 0xfc, 0xde, 0x7b, 0xb9, 0xc7, 0xfa, 0x2f, 0xf7, 0x1a, 0x14, 0xb8, 0xd4, 0xc5, 0xf6, + 0x71, 0x93, 0xc8, 0x6c, 0x38, 0x6d, 0x41, 0xb2, 0xf4, 0x31, 0x6e, 0x12, 0xf4, 0x21, 0x14, 0x15, + 0x41, 0x92, 0x2f, 0x27, 0xce, 0x91, 0x2f, 0x15, 0xcb, 0x5d, 0x99, 0x35, 0x4b, 0x30, 0xe9, 0x04, + 0xbe, 0x60, 0x81, 0x27, 0xd3, 0x57, 0xd1, 0x4a, 0x3f, 0xcd, 0xeb, 0xb0, 0x96, 0x69, 0x47, 0xe5, + 0xa6, 0x2f, 0x0d, 0xf8, 0x96, 0xa2, 0xa1, 0xa2, 0x91, 0xff, 0x1e, 0xbd, 0x82, 0x99, 0x24, 0x6d, + 0x7e, 0xf5, 0x68, 0x2a, 0x4a, 0x46, 0x29, 0xe3, 0x3e, 0x1b, 0x8d, 0x0c, 0xb4, 0xd1, 0xe8, 0x57, + 0xb0, 0xd1, 0x58, 0xaf, 0x8d, 0xb6, 0x61, 0x63, 0xb0, 0xfe, 0xf9, 0xf1, 0xfa, 0xf7, 0x11, 0x58, + 0xb1, 0x08, 0x27, 0x6f, 0x4c, 0x39, 0xd2, 0x29, 0x39, 0x46, 0xbb, 0x4b, 0x0e, 0xf4, 0x10, 0x4a, + 0x2e, 0x71, 0x28, 0x8f, 0x9f, 0xd7, 0x1a, 0xf5, 0x29, 0x6f, 0xd8, 0xe4, 0x84, 0xf8, 0xed, 0xc0, + 0x1d, 0xb5, 0x16, 0xd2, 0xfd, 0x1d, 0xb9, 0xfd, 0x2c, 0xde, 0xdd, 0x75, 0xfb, 0x62, 0x7c, 0xbc, + 0x3f, 0xc6, 0x2b, 0x70, 0x85, 0x1f, 0xd1, 0xd0, 0x56, 0x3e, 0x62, 0x04, 0x87, 0xa1, 0xd7, 0x92, + 0x91, 0x3c, 0x65, 0x5d, 0x8e, 0xb7, 0x12, 0x13, 0x5b, 0xc9, 0x46, 0x9c, 0xef, 0xb2, 0xec, 0x95, + 0x6f, 0xe9, 0x3f, 0x8f, 0xc0, 0x4d, 0x65, 0xd3, 0x2a, 0xf6, 0x1d, 0xf2, 0x4d, 0x48, 0x10, 0xf3, + 0x30, 0xee, 0xe0, 0x88, 0xa7, 0xa9, 0x21, 0xf9, 0x40, 0xf7, 0x60, 0xb1, 0x46, 0x19, 0x17, 0x1d, + 0x21, 0x6d, 0x65, 0x90, 0x09, 0x49, 0x76, 0x45, 0xee, 0x76, 0x64, 0x92, 0xe6, 0xd9, 0x80, 0x5b, + 0x83, 0xac, 0xa3, 0xae, 0xfd, 0x3f, 0x46, 0xe0, 0xfa, 0x01, 0x61, 0x4d, 0xea, 0x63, 0x41, 0xde, + 0xf4, 0xb0, 0x7d, 0x00, 0x93, 0x2e, 0x11, 0x98, 0x7a, 0x5c, 0x15, 0xa1, 0xf9, 0x17, 0x3f, 0x25, + 0xee, 0x71, 0xca, 0x78, 0x9f, 0x53, 0x2e, 0x64, 0xdf, 0xb7, 0xc0, 0xcc, 0x33, 0x9a, 0xb2, 0xed, + 0x1f, 0x0d, 0x58, 0x7f, 0x4a, 0xb8, 0xc3, 0xe8, 0xe1, 0x9b, 0x62, 0x5a, 0xf3, 0xcb, 0x51, 0xb8, + 0x9e, 0x23, 0x93, 0xba, 0x75, 0x1e, 0x2c, 0x75, 0xcc, 0xe1, 0x04, 0x7e, 0x8d, 0xd6, 0x55, 0xbd, + 0xa2, 0x52, 0xfd, 0xbd, 0xf3, 0x49, 0x50, 0xed, 0x86, 0x5a, 0x8b, 0x44, 0xbb, 0x8e, 0x0e, 0x61, + 0xe9, 0xac, 0xaa, 0x36, 0xf5, 0x6b, 0x81, 0xd2, 0xf7, 0xf6, 0xf9, 0x4e, 0xdb, 0xf5, 0x6b, 0x41, + 0xa7, 0xea, 0xed, 0x59, 0x46, 0xaf, 0x00, 0x85, 0xc4, 0x77, 0xa9, 0x5f, 0xb7, 0xb1, 0x23, 0xe8, + 0x09, 0x15, 0x94, 0xf0, 0xd2, 0xe8, 0xfa, 0xe8, 0x46, 0x61, 0x6b, 0x43, 0x1f, 0x45, 0x09, 0xf9, + 0x76, 0x42, 0xdd, 0x92, 0xcc, 0x2f, 0x87, 0x3d, 0x8b, 0x94, 0x70, 0xf4, 0x63, 0x98, 0x4b, 0x19, + 0x3b, 0x0d, 0xea, 0xb9, 0x8c, 0xc4, 0xfd, 0x5d, 0xcc, 0xb6, 0x92, 0xc7, 0xb6, 0x1a, 0xd3, 0xf6, + 0x4a, 0x7e, 0x29, 0xec, 0xda, 0x62, 0xc4, 0x47, 0xfb, 0x1d, 0xd6, 0x69, 0x36, 0x56, 0x4d, 0x54, + 0xae, 0xc4, 0x4f, 0x15, 0x6d, 0x0f, 0xd3, 0x74, 0xd1, 0xfc, 0x62, 0x14, 0xe6, 0x7f, 0x10, 0x37, + 0xe3, 0xa9, 0xf9, 0x5e, 0xd3, 0x1d, 0x7f, 0x04, 0xe3, 0x72, 0x26, 0xa0, 0x9e, 0x70, 0x33, 0x97, + 0x93, 0x14, 0xd8, 0x4a, 0x00, 0xc8, 0x86, 0x45, 0xf9, 0x87, 0xcd, 0xc8, 0x27, 0xc4, 0x11, 0x71, + 0x7c, 0xba, 0x54, 0x0a, 0x35, 0x26, 0x7b, 0xa4, 0x6f, 0x6b, 0x59, 0x25, 0x2c, 0x24, 0xa2, 0x9a, + 0x02, 0xac, 0xf9, 0x63, 0xcd, 0x6a, 0x1c, 0x8f, 0xc9, 0x01, 0x4e, 0xe0, 0x73, 0xca, 0x05, 0xf1, + 0x9d, 0x96, 0xed, 0x91, 0x13, 0xe2, 0x49, 0xf3, 0x67, 0x75, 0x61, 0xf2, 0x84, 0x6a, 0x07, 0xf2, + 0x22, 0x46, 0x58, 0x0b, 0xc7, 0xba, 0x65, 0xf3, 0xaf, 0x06, 0x2c, 0xf4, 0xb9, 0x41, 0xdd, 0xbd, + 0x0f, 0xa1, 0x98, 0xaa, 0xc7, 0x23, 0x2f, 0xad, 0xad, 0x06, 0x94, 0x38, 0x4a, 0x8f, 0x18, 0x80, + 0x76, 0x61, 0xb6, 0xdb, 0x3e, 0xc4, 0x55, 0xce, 0x32, 0x07, 0xd9, 0x85, 0xb8, 0xd6, 0xcc, 0x71, + 0xf7, 0xa7, 0xf9, 0x5f, 0x03, 0x96, 0xd2, 0x6c, 0xd1, 0x6e, 0xed, 0x07, 0xc4, 0x4b, 0xcf, 0xac, + 0x60, 0x64, 0xb8, 0x59, 0xc1, 0x73, 0x98, 0x6d, 0x63, 0x3b, 0x03, 0x8b, 0xd9, 0x8c, 0x81, 0x45, + 0xca, 0x20, 0x19, 0x58, 0x88, 0xae, 0xaf, 0xb8, 0xc0, 0xa1, 0xbe, 0xe3, 0x45, 0x2e, 0xb1, 0x3b, + 0x0c, 0xb9, 0xc0, 0x22, 0x4a, 0x9e, 0x8e, 0x29, 0x6b, 0x41, 0xed, 0xa7, 0x4c, 0xf6, 0xe5, 0xa6, + 0xf9, 0x37, 0x03, 0x4a, 0x67, 0x35, 0x56, 0xae, 0x79, 0x0f, 0x26, 0xc3, 0xc0, 0xf3, 0x08, 0xe3, + 0x25, 0x43, 0x5e, 0xf1, 0x35, 0xbd, 0x57, 0x24, 0x8d, 0xbc, 0x7e, 0x29, 0x3d, 0x7a, 0x09, 0x73, + 0x67, 0x04, 0x49, 0x8c, 0x73, 0x23, 0x57, 0xb7, 0x44, 0x2c, 0x6b, 0x56, 0xf4, 0x8a, 0x79, 0x1f, + 0x96, 0x9f, 0x13, 0x91, 0x12, 0xf1, 0x27, 0xad, 0xa7, 0xd2, 0xf8, 0x03, 0x7c, 0x63, 0xfe, 0x7e, + 0x0c, 0xae, 0xe9, 0x71, 0x4a, 0xc3, 0x9f, 0xc2, 0x62, 0xbb, 0x30, 0xec, 0xc8, 0xdb, 0xc4, 0xa1, + 0x52, 0xf8, 0xfb, 0x5a, 0x61, 0xf3, 0x58, 0x56, 0xd2, 0xcc, 0x93, 0x52, 0xbc, 0xc4, 0xe1, 0x33, + 0x5f, 0xb0, 0x96, 0x75, 0xc5, 0x3d, 0xbb, 0x13, 0x0b, 0xa0, 0xf2, 0x73, 0xab, 0x4f, 0x80, 0x91, + 0x8b, 0x0a, 0x90, 0x66, 0xf0, 0xb3, 0x02, 0xe0, 0xb3, 0x3b, 0xe5, 0x28, 0xf6, 0xbf, 0x5e, 0x62, + 0x34, 0x07, 0xa3, 0x47, 0xa4, 0xa5, 0x6c, 0x1a, 0xff, 0x89, 0xaa, 0x30, 0x7e, 0x82, 0xbd, 0x88, + 0x28, 0x5f, 0xde, 0xd1, 0x4a, 0x97, 0x15, 0x4f, 0x56, 0x82, 0x7d, 0x3c, 0xf2, 0xc8, 0x88, 0x8f, + 0xcd, 0x92, 0xf3, 0x6b, 0x3c, 0xd6, 0xe4, 0xb0, 0x22, 0xef, 0x8c, 0x22, 0xd9, 0xc3, 0x4c, 0xc8, + 0x1c, 0xc8, 0xbf, 0xc6, 0x5b, 0x6e, 0xfe, 0x62, 0x04, 0x56, 0xb3, 0x4e, 0x55, 0x71, 0x78, 0x0c, + 0x2b, 0x9a, 0x30, 0x08, 0xdb, 0x84, 0x2a, 0x1c, 0x2b, 0xb9, 0x47, 0xb6, 0xf9, 0xbe, 0x24, 0x02, + 0xbb, 0x58, 0x60, 0xab, 0xdc, 0xef, 0xf1, 0xce, 0xd1, 0xf1, 0x91, 0x9a, 0xd0, 0xef, 0x3a, 0x72, + 0xe4, 0x62, 0x47, 0xf6, 0x47, 0x79, 0xe7, 0x48, 0x73, 0x09, 0x16, 0x9e, 0x13, 0x51, 0xf5, 0x22, + 0x2e, 0x54, 0xbe, 0x50, 0xa3, 0x95, 0x9f, 0x1b, 0xb0, 0xd8, 0xbf, 0xa3, 0x2c, 0xd3, 0x80, 0xab, + 0x3c, 0x0a, 0xc3, 0x80, 0x09, 0xe2, 0xda, 0x8e, 0x47, 0xe3, 0xae, 0xed, 0x84, 0x30, 0xae, 0xac, + 0x12, 0x3b, 0xe2, 0x1d, 0x7d, 0x1f, 0x9e, 0xa2, 0xaa, 0x12, 0xf4, 0x23, 0x85, 0xb1, 0x96, 0xb8, + 0x7e, 0xc3, 0xfc, 0xcd, 0x28, 0x98, 0xcf, 0x35, 0xbd, 0xd9, 0x47, 0xc9, 0xb4, 0xff, 0x35, 0xd5, + 0x0d, 0xcb, 0x30, 0x1d, 0xe2, 0x3a, 0xb1, 0x39, 0xfd, 0x2c, 0x79, 0x1d, 0xc6, 0xad, 0xa9, 0x78, + 0x61, 0x9f, 0x7e, 0x46, 0xd0, 0x2d, 0xb8, 0xe4, 0x93, 0x4f, 0x63, 0xaf, 0xd5, 0x89, 0x2d, 0x82, + 0x23, 0xe2, 0xab, 0x2e, 0x7f, 0x26, 0x5e, 0xde, 0xc3, 0x75, 0x72, 0x10, 0x2f, 0xa2, 0xb7, 0x01, + 0x9d, 0x62, 0x2a, 0xec, 0x5a, 0xc0, 0x6c, 0x9f, 0x9c, 0x26, 0xcd, 0xaf, 0x7c, 0xdc, 0xa7, 0xac, + 0x4b, 0xf1, 0xce, 0x4e, 0xc0, 0x3e, 0x26, 0xa7, 0xb2, 0xeb, 0x45, 0x36, 0x5c, 0x55, 0xff, 0xe0, + 0x50, 0x4d, 0x72, 0x8d, 0x7a, 0x82, 0xb0, 0xe4, 0x7d, 0x9a, 0x90, 0xef, 0xd3, 0x5b, 0x5a, 0x7d, + 0x24, 0x7c, 0x47, 0x12, 0xcb, 0x27, 0x6a, 0x51, 0xb1, 0xe9, 0x5b, 0x47, 0x37, 0x60, 0x46, 0x76, + 0xcd, 0x98, 0x39, 0x0d, 0x7a, 0x82, 0x93, 0xe9, 0xcd, 0x94, 0x55, 0x8c, 0x17, 0xb7, 0xd5, 0x9a, + 0xf9, 0x6f, 0x03, 0x6e, 0xe4, 0x7a, 0x43, 0xc5, 0xc7, 0x03, 0x98, 0x54, 0xc7, 0xe4, 0x56, 0x0e, + 0x29, 0x2c, 0x25, 0x46, 0xdf, 0x83, 0x02, 0xc3, 0xa7, 0x76, 0x8a, 0x4d, 0x82, 0x5d, 0x7f, 0xa5, + 0x9f, 0x62, 0x81, 0x9f, 0x78, 0xc1, 0xa1, 0x05, 0x0c, 0x9f, 0x2a, 0x46, 0x3a, 0xd3, 0x8f, 0xea, + 0x4c, 0x5f, 0x86, 0xa9, 0x44, 0x4f, 0xe2, 0xaa, 0x97, 0xb8, 0xfd, 0x6d, 0xb6, 0xa0, 0xb8, 0x43, + 0xb0, 0x88, 0x18, 0xd9, 0xf1, 0x70, 0x9d, 0x23, 0x0a, 0x5b, 0x9a, 0xc6, 0x00, 0x7b, 0x8c, 0x60, + 0x37, 0xae, 0xce, 0x9a, 0xa1, 0x47, 0xe2, 0x6b, 0x40, 0x18, 0x0b, 0x98, 0x4d, 0x7c, 0x7c, 0xe8, + 0x91, 0x64, 0x50, 0x30, 0x65, 0xdd, 0x39, 0x13, 0x3a, 0xdb, 0x09, 0xae, 0x9a, 0xc2, 0x9e, 0xc5, + 0xa8, 0x67, 0x09, 0xc8, 0xfc, 0xad, 0x01, 0xcb, 0x16, 0xa9, 0x31, 0xc2, 0x1b, 0xed, 0xff, 0x83, + 0x60, 0x7e, 0xc4, 0x5f, 0x53, 0x9b, 0xb6, 0x0a, 0xd7, 0xf4, 0xd2, 0x24, 0x5e, 0xde, 0xfa, 0xcf, + 0x1c, 0x14, 0xd2, 0x9d, 0xed, 0xbd, 0x5d, 0xf4, 0x4b, 0x03, 0x4a, 0x59, 0x53, 0x56, 0xf4, 0x6e, + 0xc6, 0x6c, 0x3f, 0xf7, 0x3f, 0x67, 0xe5, 0xfb, 0x43, 0xa2, 0x54, 0xfc, 0xfd, 0xcc, 0x80, 0x45, + 0xfd, 0xf4, 0x0c, 0x5d, 0x60, 0x3e, 0x58, 0xbe, 0x37, 0x14, 0x46, 0xc9, 0xf0, 0x07, 0x03, 0x96, + 0x73, 0x46, 0xd3, 0xe8, 0xe1, 0x10, 0x4c, 0xbb, 0x07, 0xe8, 0xe5, 0x47, 0xc3, 0x03, 0x95, 0x48, + 0x5f, 0x18, 0xb0, 0x94, 0x31, 0x82, 0x45, 0x19, 0x3a, 0xe6, 0x0e, 0xbe, 0xcb, 0xef, 0x0e, 0x07, + 0x52, 0x62, 0xfc, 0xc5, 0x80, 0xf5, 0x41, 0x53, 0x4e, 0xf4, 0x41, 0x1e, 0xeb, 0x41, 0xc3, 0xe1, + 0xf2, 0x77, 0x2f, 0x88, 0xee, 0x8a, 0x1f, 0xfd, 0x4c, 0x30, 0x23, 0x7e, 0x72, 0x07, 0xae, 0x19, + 0xf1, 0x33, 0x60, 0xe8, 0xf8, 0x27, 0x03, 0x56, 0xf3, 0xe7, 0x67, 0xe8, 0x71, 0x06, 0xdf, 0x73, + 0x8c, 0x24, 0xcb, 0xef, 0x5f, 0x08, 0xab, 0x64, 0xfb, 0x9d, 0x01, 0xe5, 0xec, 0xd9, 0x13, 0x7a, + 0xa0, 0x2f, 0x4f, 0x06, 0x4d, 0xf8, 0xca, 0x0f, 0x87, 0xc6, 0x29, 0x79, 0x7e, 0x6d, 0xc0, 0xd5, + 0xcc, 0x81, 0x12, 0xba, 0x9f, 0x5b, 0x99, 0x66, 0x4a, 0xf3, 0x60, 0x58, 0x98, 0x12, 0xa6, 0x06, + 0x33, 0x3d, 0x4d, 0x35, 0xca, 0x99, 0x05, 0xf4, 0xcd, 0x3f, 0xca, 0xb7, 0xcf, 0x43, 0xaa, 0xce, + 0x09, 0x60, 0xae, 0xbf, 0xba, 0x46, 0xef, 0x9c, 0xb3, 0x08, 0x4f, 0x4e, 0x1b, 0xae, 0x64, 0x47, + 0x9f, 0xc3, 0xbc, 0xae, 0xc7, 0x41, 0xdf, 0x19, 0xa2, 0x1d, 0x4a, 0x0e, 0xbe, 0x3b, 0x74, 0x03, + 0x25, 0xaf, 0xa4, 0xbe, 0x5e, 0xcf, 0xb8, 0x92, 0xb9, 0x2d, 0x45, 0xc6, 0x95, 0x1c, 0xd0, 0x10, + 0x50, 0x98, 0xed, 0x2d, 0x88, 0xd1, 0xed, 0x2c, 0x45, 0xce, 0xd6, 0xd3, 0xe5, 0xb7, 0xcf, 0x45, + 0xdb, 0xf5, 0x7a, 0xe4, 0x54, 0x5a, 0x19, 0xaf, 0xc7, 0xe0, 0x4a, 0x39, 0xe3, 0xf5, 0x38, 0x4f, + 0x51, 0xf7, 0x39, 0xcc, 0xeb, 0xca, 0x81, 0x0c, 0xf7, 0xe7, 0xd4, 0x31, 0x19, 0xee, 0xcf, 0xab, + 0x35, 0x9e, 0xb8, 0xb0, 0xe4, 0x04, 0x4d, 0x1d, 0xee, 0xc9, 0x7c, 0x8a, 0xd8, 0x4f, 0x7e, 0x84, + 0xb4, 0xc7, 0x02, 0x11, 0xec, 0x19, 0x3f, 0xb9, 0x5b, 0xa7, 0xa2, 0x11, 0x1d, 0x56, 0x9c, 0xa0, + 0xb9, 0xd9, 0xfd, 0x43, 0x9e, 0x3b, 0xd4, 0xf5, 0x36, 0xeb, 0x41, 0xf2, 0xfb, 0x23, 0xf5, 0xab, + 0x9e, 0xf7, 0x71, 0x48, 0x4f, 0xee, 0x1e, 0x4e, 0xc8, 0xb5, 0x7b, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0x14, 0x00, 0x82, 0xd7, 0xe4, 0x24, 0x00, 0x00, }, // uber/cadence/shared/v1/history.proto []byte{ diff --git a/client/frontend/client.go b/client/frontend/client.go index e22a5965723..c7c8650f718 100644 --- a/client/frontend/client.go +++ b/client/frontend/client.go @@ -499,6 +499,17 @@ func (c *clientImpl) StartWorkflowExecution( return c.client.StartWorkflowExecution(ctx, request, opts...) } +func (c *clientImpl) StartWorkflowExecutionAsync( + ctx context.Context, + request *types.StartWorkflowExecutionAsyncRequest, + opts ...yarpc.CallOption, +) (*types.StartWorkflowExecutionAsyncResponse, error) { + + ctx, cancel := c.createContext(ctx) + defer cancel() + return c.client.StartWorkflowExecutionAsync(ctx, request, opts...) +} + func (c *clientImpl) TerminateWorkflowExecution( ctx context.Context, request *types.TerminateWorkflowExecutionRequest, diff --git a/client/frontend/interface.go b/client/frontend/interface.go index 0fd49df00b8..b2f5f4cc8db 100644 --- a/client/frontend/interface.go +++ b/client/frontend/interface.go @@ -76,6 +76,7 @@ type Client interface { SignalWithStartWorkflowExecution(context.Context, *types.SignalWithStartWorkflowExecutionRequest, ...yarpc.CallOption) (*types.StartWorkflowExecutionResponse, error) SignalWorkflowExecution(context.Context, *types.SignalWorkflowExecutionRequest, ...yarpc.CallOption) error StartWorkflowExecution(context.Context, *types.StartWorkflowExecutionRequest, ...yarpc.CallOption) (*types.StartWorkflowExecutionResponse, error) + StartWorkflowExecutionAsync(context.Context, *types.StartWorkflowExecutionAsyncRequest, ...yarpc.CallOption) (*types.StartWorkflowExecutionAsyncResponse, error) TerminateWorkflowExecution(context.Context, *types.TerminateWorkflowExecutionRequest, ...yarpc.CallOption) error UpdateDomain(context.Context, *types.UpdateDomainRequest, ...yarpc.CallOption) (*types.UpdateDomainResponse, error) } diff --git a/client/frontend/interface_mock.go b/client/frontend/interface_mock.go index 7f9ed87fc20..4bc411ec793 100644 --- a/client/frontend/interface_mock.go +++ b/client/frontend/interface_mock.go @@ -826,6 +826,26 @@ func (mr *MockClientMockRecorder) StartWorkflowExecution(arg0, arg1 interface{}, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartWorkflowExecution", reflect.TypeOf((*MockClient)(nil).StartWorkflowExecution), varargs...) } +// StartWorkflowExecutionAsync mocks base method. +func (m *MockClient) StartWorkflowExecutionAsync(arg0 context.Context, arg1 *types.StartWorkflowExecutionAsyncRequest, arg2 ...yarpc.CallOption) (*types.StartWorkflowExecutionAsyncResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "StartWorkflowExecutionAsync", varargs...) + ret0, _ := ret[0].(*types.StartWorkflowExecutionAsyncResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StartWorkflowExecutionAsync indicates an expected call of StartWorkflowExecutionAsync. +func (mr *MockClientMockRecorder) StartWorkflowExecutionAsync(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartWorkflowExecutionAsync", reflect.TypeOf((*MockClient)(nil).StartWorkflowExecutionAsync), varargs...) +} + // TerminateWorkflowExecution mocks base method. func (m *MockClient) TerminateWorkflowExecution(arg0 context.Context, arg1 *types.TerminateWorkflowExecutionRequest, arg2 ...yarpc.CallOption) error { m.ctrl.T.Helper() diff --git a/client/wrappers/errorinjectors/frontend_generated.go b/client/wrappers/errorinjectors/frontend_generated.go index 4dcb3c765b8..cdb1c5d4340 100644 --- a/client/wrappers/errorinjectors/frontend_generated.go +++ b/client/wrappers/errorinjectors/frontend_generated.go @@ -842,6 +842,26 @@ func (c *frontendClient) StartWorkflowExecution(ctx context.Context, sp1 *types. return } +func (c *frontendClient) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest, p1 ...yarpc.CallOption) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + fakeErr := c.fakeErrFn(c.errorRate) + var forwardCall bool + if forwardCall = c.forwardCallFn(fakeErr); forwardCall { + sp2, err = c.client.StartWorkflowExecutionAsync(ctx, sp1, p1...) + } + + if fakeErr != nil { + c.logger.Error(msgFrontendInjectedFakeErr, + tag.FrontendClientOperationStartWorkflowExecutionAsync, + tag.Error(fakeErr), + tag.Bool(forwardCall), + tag.ClientError(err), + ) + err = fakeErr + return + } + return +} + func (c *frontendClient) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest, p1 ...yarpc.CallOption) (err error) { fakeErr := c.fakeErrFn(c.errorRate) var forwardCall bool diff --git a/client/wrappers/grpc/frontend_generated.go b/client/wrappers/grpc/frontend_generated.go index d74983d7c78..f86ba586d3c 100644 --- a/client/wrappers/grpc/frontend_generated.go +++ b/client/wrappers/grpc/frontend_generated.go @@ -231,6 +231,11 @@ func (g frontendClient) StartWorkflowExecution(ctx context.Context, sp1 *types.S return proto.ToStartWorkflowExecutionResponse(response), proto.ToError(err) } +func (g frontendClient) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest, p1 ...yarpc.CallOption) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + response, err := g.c.StartWorkflowExecutionAsync(ctx, proto.FromStartWorkflowExecutionAsyncRequest(sp1), p1...) + return proto.ToStartWorkflowExecutionAsyncResponse(response), proto.ToError(err) +} + func (g frontendClient) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest, p1 ...yarpc.CallOption) (err error) { _, err = g.c.TerminateWorkflowExecution(ctx, proto.FromTerminateWorkflowExecutionRequest(tp1), p1...) return proto.ToError(err) diff --git a/client/wrappers/metered/frontend_generated.go b/client/wrappers/metered/frontend_generated.go index ee731994564..b2f54ef9c84 100644 --- a/client/wrappers/metered/frontend_generated.go +++ b/client/wrappers/metered/frontend_generated.go @@ -557,6 +557,19 @@ func (c *frontendClient) StartWorkflowExecution(ctx context.Context, sp1 *types. return sp2, err } +func (c *frontendClient) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest, p1 ...yarpc.CallOption) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + c.metricsClient.IncCounter(metrics.FrontendClientStartWorkflowExecutionAsyncScope, metrics.CadenceClientRequests) + + sw := c.metricsClient.StartTimer(metrics.FrontendClientStartWorkflowExecutionAsyncScope, metrics.CadenceClientLatency) + sp2, err = c.client.StartWorkflowExecutionAsync(ctx, sp1, p1...) + sw.Stop() + + if err != nil { + c.metricsClient.IncCounter(metrics.FrontendClientStartWorkflowExecutionAsyncScope, metrics.CadenceClientFailures) + } + return sp2, err +} + func (c *frontendClient) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest, p1 ...yarpc.CallOption) (err error) { c.metricsClient.IncCounter(metrics.FrontendClientTerminateWorkflowExecutionScope, metrics.CadenceClientRequests) diff --git a/client/wrappers/retryable/frontend_generated.go b/client/wrappers/retryable/frontend_generated.go index af83c85a0f4..b0dc30c5c06 100644 --- a/client/wrappers/retryable/frontend_generated.go +++ b/client/wrappers/retryable/frontend_generated.go @@ -430,6 +430,17 @@ func (c *frontendClient) StartWorkflowExecution(ctx context.Context, sp1 *types. return resp, err } +func (c *frontendClient) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest, p1 ...yarpc.CallOption) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + var resp *types.StartWorkflowExecutionAsyncResponse + op := func() error { + var err error + resp, err = c.client.StartWorkflowExecutionAsync(ctx, sp1, p1...) + return err + } + err = c.throttleRetry.Do(ctx, op) + return resp, err +} + func (c *frontendClient) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest, p1 ...yarpc.CallOption) (err error) { op := func() error { return c.client.TerminateWorkflowExecution(ctx, tp1, p1...) diff --git a/client/wrappers/thrift/frontend_generated.go b/client/wrappers/thrift/frontend_generated.go index cf71cdecac8..901e3a772ba 100644 --- a/client/wrappers/thrift/frontend_generated.go +++ b/client/wrappers/thrift/frontend_generated.go @@ -230,6 +230,11 @@ func (g frontendClient) StartWorkflowExecution(ctx context.Context, sp1 *types.S return thrift.ToStartWorkflowExecutionResponse(response), thrift.ToError(err) } +func (g frontendClient) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest, p1 ...yarpc.CallOption) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + response, err := g.c.StartWorkflowExecutionAsync(ctx, thrift.FromStartWorkflowExecutionAsyncRequest(sp1), p1...) + return thrift.ToStartWorkflowExecutionAsyncResponse(response), thrift.ToError(err) +} + func (g frontendClient) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest, p1 ...yarpc.CallOption) (err error) { err = g.c.TerminateWorkflowExecution(ctx, thrift.FromTerminateWorkflowExecutionRequest(tp1), p1...) return thrift.ToError(err) diff --git a/cmd/server/go.mod b/cmd/server/go.mod index 571858d7604..1dce83ed5c7 100644 --- a/cmd/server/go.mod +++ b/cmd/server/go.mod @@ -43,7 +43,7 @@ require ( github.com/startreedata/pinot-client-go v0.0.0-20230303070132-3b84c28a9e95 // latest release doesn't support pinot v0.12, so use master branch github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible // indirect - github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825 + github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07 github.com/uber/ringpop-go v0.8.5 // indirect github.com/uber/tchannel-go v1.22.2 // indirect github.com/urfave/cli v1.22.4 diff --git a/cmd/server/go.sum b/cmd/server/go.sum index 47887bc43c5..fc0983a0389 100644 --- a/cmd/server/go.sum +++ b/cmd/server/go.sum @@ -392,8 +392,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825 h1:t6CB2U4TvrG/jjMBU+CL7s90Pny4jR4/zV1L9NK7lmc= -github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07 h1:VxvBaCqyXmHIxPHYcQrz3oBsCeiO7diPyFau6E1CgaE= +github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= diff --git a/common/log/tag/values.go b/common/log/tag/values.go index 8e8e27a898a..a52f1b0fd98 100644 --- a/common/log/tag/values.go +++ b/common/log/tag/values.go @@ -353,6 +353,7 @@ var ( FrontendClientOperationSignalWithStartWorkflowExecution = clientOperation("frontend-signal-with-start-wf-execution") FrontendClientOperationSignalWorkflowExecution = clientOperation("frontend-signal-wf-execution") FrontendClientOperationStartWorkflowExecution = clientOperation("frontend-start-wf-execution") + FrontendClientOperationStartWorkflowExecutionAsync = clientOperation("frontend-start-wf-execution-async") FrontendClientOperationTerminateWorkflowExecution = clientOperation("frontend-terminate-wf-execution") FrontendClientOperationUpdateDomain = clientOperation("frontend-update-domain") FrontendClientOperationGetClusterInfo = clientOperation("frontend-get-cluster-info") diff --git a/common/metrics/defs.go b/common/metrics/defs.go index f17848cf85c..22b691a953f 100644 --- a/common/metrics/defs.go +++ b/common/metrics/defs.go @@ -485,6 +485,8 @@ const ( FrontendClientSignalWorkflowExecutionScope // FrontendClientStartWorkflowExecutionScope tracks RPC calls to frontend service FrontendClientStartWorkflowExecutionScope + // FrontendClientStartWorkflowExecutionAsyncScope tracks RPC calls to frontend service + FrontendClientStartWorkflowExecutionAsyncScope // FrontendClientRestartWorkflowExecutionScope tracks RPC calls to frontend service FrontendClientRestartWorkflowExecutionScope // FrontendClientTerminateWorkflowExecutionScope tracks RPC calls to frontend service @@ -657,6 +659,8 @@ const ( DCRedirectionSignalWorkflowExecutionScope // DCRedirectionStartWorkflowExecutionScope tracks RPC calls for dc redirection DCRedirectionStartWorkflowExecutionScope + // DCRedirectionStartWorkflowExecutionAsyncScope tracks RPC calls for dc redirection + DCRedirectionStartWorkflowExecutionAsyncScope // DCRedirectionTerminateWorkflowExecutionScope tracks RPC calls for dc redirection DCRedirectionTerminateWorkflowExecutionScope // DCRedirectionUpdateDomainScope tracks RPC calls for dc redirection @@ -1525,6 +1529,7 @@ var ScopeDefs = map[ServiceIdx]map[int]scopeDefinition{ FrontendClientSignalWithStartWorkflowExecutionScope: {operation: "FrontendClientSignalWithStartWorkflowExecution", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, FrontendClientSignalWorkflowExecutionScope: {operation: "FrontendClientSignalWorkflowExecution", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, FrontendClientStartWorkflowExecutionScope: {operation: "FrontendClientStartWorkflowExecution", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, + FrontendClientStartWorkflowExecutionAsyncScope: {operation: "FrontendClientStartWorkflowExecutionAsync", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, FrontendClientTerminateWorkflowExecutionScope: {operation: "FrontendClientTerminateWorkflowExecution", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, FrontendClientUpdateDomainScope: {operation: "FrontendClientUpdateDomain", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, FrontendClientListWorkflowExecutionsScope: {operation: "FrontendClientListWorkflowExecutions", tags: map[string]string{CadenceRoleTagName: FrontendClientRoleTagValue}}, @@ -1612,6 +1617,7 @@ var ScopeDefs = map[ServiceIdx]map[int]scopeDefinition{ DCRedirectionSignalWithStartWorkflowExecutionScope: {operation: "DCRedirectionSignalWithStartWorkflowExecution", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, DCRedirectionSignalWorkflowExecutionScope: {operation: "DCRedirectionSignalWorkflowExecution", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, DCRedirectionStartWorkflowExecutionScope: {operation: "DCRedirectionStartWorkflowExecution", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, + DCRedirectionStartWorkflowExecutionAsyncScope: {operation: "DCRedirectionStartWorkflowExecutionAsync", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, DCRedirectionTerminateWorkflowExecutionScope: {operation: "DCRedirectionTerminateWorkflowExecution", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, DCRedirectionUpdateDomainScope: {operation: "DCRedirectionUpdateDomain", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, DCRedirectionListTaskListPartitionsScope: {operation: "DCRedirectionListTaskListPartitions", tags: map[string]string{CadenceRoleTagName: DCRedirectionRoleTagValue}}, diff --git a/common/types/mapper/proto/api.go b/common/types/mapper/proto/api.go index a6d7e2b9d41..168df0263a3 100644 --- a/common/types/mapper/proto/api.go +++ b/common/types/mapper/proto/api.go @@ -3643,6 +3643,38 @@ func ToRestartWorkflowExecutionResponse(t *apiv1.RestartWorkflowExecutionRespons } } +func FromStartWorkflowExecutionAsyncRequest(t *types.StartWorkflowExecutionAsyncRequest) *apiv1.StartWorkflowExecutionAsyncRequest { + if t == nil { + return nil + } + return &apiv1.StartWorkflowExecutionAsyncRequest{ + Request: FromStartWorkflowExecutionRequest(t.StartWorkflowExecutionRequest), + } +} + +func ToStartWorkflowExecutionAsyncRequest(t *apiv1.StartWorkflowExecutionAsyncRequest) *types.StartWorkflowExecutionAsyncRequest { + if t == nil { + return nil + } + return &types.StartWorkflowExecutionAsyncRequest{ + StartWorkflowExecutionRequest: ToStartWorkflowExecutionRequest(t.Request), + } +} + +func FromStartWorkflowExecutionAsyncResponse(t *types.StartWorkflowExecutionAsyncResponse) *apiv1.StartWorkflowExecutionAsyncResponse { + if t == nil { + return nil + } + return &apiv1.StartWorkflowExecutionAsyncResponse{} +} + +func ToStartWorkflowExecutionAsyncResponse(t *apiv1.StartWorkflowExecutionAsyncResponse) *types.StartWorkflowExecutionAsyncResponse { + if t == nil { + return nil + } + return &types.StartWorkflowExecutionAsyncResponse{} +} + func FromStartWorkflowExecutionRequest(t *types.StartWorkflowExecutionRequest) *apiv1.StartWorkflowExecutionRequest { if t == nil { return nil diff --git a/common/types/mapper/proto/api_test.go b/common/types/mapper/proto/api_test.go index 9adf5a98f1b..a2b18d24a53 100644 --- a/common/types/mapper/proto/api_test.go +++ b/common/types/mapper/proto/api_test.go @@ -625,6 +625,16 @@ func TestStartWorkflowExecutionResponse(t *testing.T) { assert.Equal(t, item, ToStartWorkflowExecutionResponse(FromStartWorkflowExecutionResponse(item))) } } +func TestStartWorkflowExecutionAsyncRequest(t *testing.T) { + for _, item := range []*types.StartWorkflowExecutionAsyncRequest{nil, {}, &testdata.StartWorkflowExecutionAsyncRequest} { + assert.Equal(t, item, ToStartWorkflowExecutionAsyncRequest(FromStartWorkflowExecutionAsyncRequest(item))) + } +} +func TestStartWorkflowExecutionAsyncResponse(t *testing.T) { + for _, item := range []*types.StartWorkflowExecutionAsyncResponse{nil, {}, &testdata.StartWorkflowExecutionAsyncResponse} { + assert.Equal(t, item, ToStartWorkflowExecutionAsyncResponse(FromStartWorkflowExecutionAsyncResponse(item))) + } +} func TestStatusFilter(t *testing.T) { for _, item := range []*types.WorkflowExecutionCloseStatus{nil, &testdata.WorkflowExecutionCloseStatus} { assert.Equal(t, item, ToStatusFilter(FromStatusFilter(item))) diff --git a/common/types/mapper/thrift/shared.go b/common/types/mapper/thrift/shared.go index c8d3f74cad0..257edaf5e5d 100644 --- a/common/types/mapper/thrift/shared.go +++ b/common/types/mapper/thrift/shared.go @@ -5262,6 +5262,38 @@ func ToStartTimerDecisionAttributes(t *shared.StartTimerDecisionAttributes) *typ } } +func FromStartWorkflowExecutionAsyncRequest(t *types.StartWorkflowExecutionAsyncRequest) *shared.StartWorkflowExecutionAsyncRequest { + if t == nil { + return nil + } + return &shared.StartWorkflowExecutionAsyncRequest{ + Request: FromStartWorkflowExecutionRequest(t.StartWorkflowExecutionRequest), + } +} + +func ToStartWorkflowExecutionAsyncRequest(t *shared.StartWorkflowExecutionAsyncRequest) *types.StartWorkflowExecutionAsyncRequest { + if t == nil { + return nil + } + return &types.StartWorkflowExecutionAsyncRequest{ + StartWorkflowExecutionRequest: ToStartWorkflowExecutionRequest(t.Request), + } +} + +func FromStartWorkflowExecutionAsyncResponse(t *types.StartWorkflowExecutionAsyncResponse) *shared.StartWorkflowExecutionAsyncResponse { + if t == nil { + return nil + } + return &shared.StartWorkflowExecutionAsyncResponse{} +} + +func ToStartWorkflowExecutionAsyncResponse(t *shared.StartWorkflowExecutionAsyncResponse) *types.StartWorkflowExecutionAsyncResponse { + if t == nil { + return nil + } + return &types.StartWorkflowExecutionAsyncResponse{} +} + // FromStartWorkflowExecutionRequest converts internal StartWorkflowExecutionRequest type to thrift func FromStartWorkflowExecutionRequest(t *types.StartWorkflowExecutionRequest) *shared.StartWorkflowExecutionRequest { if t == nil { diff --git a/common/types/mapper/thrift/shared_test.go b/common/types/mapper/thrift/shared_test.go index 2428b852033..12fec5b1c82 100644 --- a/common/types/mapper/thrift/shared_test.go +++ b/common/types/mapper/thrift/shared_test.go @@ -2745,6 +2745,20 @@ func TestStartWorkflowExecutionRequestConversion(t *testing.T) { } } +func TestStartWorkflowExecutionAsyncRequestConversion(t *testing.T) { + testCases := []*types.StartWorkflowExecutionAsyncRequest{ + nil, + {}, + &testdata.StartWorkflowExecutionAsyncRequest, + } + + for _, original := range testCases { + thriftObj := FromStartWorkflowExecutionAsyncRequest(original) + roundTripObj := ToStartWorkflowExecutionAsyncRequest(thriftObj) + assert.Equal(t, original, roundTripObj) + } +} + func TestRestartWorkflowExecutionResponseConversion(t *testing.T) { testCases := []*types.RestartWorkflowExecutionResponse{ nil, @@ -2773,6 +2787,20 @@ func TestStartWorkflowExecutionResponseConversion(t *testing.T) { } } +func TestStartWorkflowExecutionAsyncResponseConversion(t *testing.T) { + testCases := []*types.StartWorkflowExecutionAsyncResponse{ + nil, + {}, + &testdata.StartWorkflowExecutionAsyncResponse, + } + + for _, original := range testCases { + thriftObj := FromStartWorkflowExecutionAsyncResponse(original) + roundTripObj := ToStartWorkflowExecutionAsyncResponse(thriftObj) + assert.Equal(t, original, roundTripObj) + } +} + func TestStickyExecutionAttributesConversion(t *testing.T) { testCases := []*types.StickyExecutionAttributes{ nil, diff --git a/common/types/shared.go b/common/types/shared.go index 20ab61e16eb..797a2804fa1 100644 --- a/common/types/shared.go +++ b/common/types/shared.go @@ -6321,6 +6321,13 @@ func (v *StartWorkflowExecutionResponse) GetRunID() (o string) { return } +type StartWorkflowExecutionAsyncRequest struct { + *StartWorkflowExecutionRequest +} + +type StartWorkflowExecutionAsyncResponse struct { +} + // RestartWorkflowExecutionResponse is an internal type (TBD...) type RestartWorkflowExecutionResponse struct { RunID string `json:"runId,omitempty"` diff --git a/common/types/testdata/service_frontend.go b/common/types/testdata/service_frontend.go index 0d1ed5a8a9a..d460166de3f 100644 --- a/common/types/testdata/service_frontend.go +++ b/common/types/testdata/service_frontend.go @@ -324,7 +324,11 @@ var ( StartWorkflowExecutionResponse = types.StartWorkflowExecutionResponse{ RunID: RunID, } - SignalWorkflowExecutionRequest = types.SignalWorkflowExecutionRequest{ + StartWorkflowExecutionAsyncRequest = types.StartWorkflowExecutionAsyncRequest{ + StartWorkflowExecutionRequest: &StartWorkflowExecutionRequest, + } + StartWorkflowExecutionAsyncResponse = types.StartWorkflowExecutionAsyncResponse{} + SignalWorkflowExecutionRequest = types.SignalWorkflowExecutionRequest{ Domain: DomainName, WorkflowExecution: &WorkflowExecution, SignalName: SignalName, diff --git a/go.mod b/go.mod index ad6ca11bee6..43bbae9a79b 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/startreedata/pinot-client-go v0.0.0-20230303070132-3b84c28a9e95 // latest release doesn't support pinot v0.12, so use master branch github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible - github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825 + github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07 github.com/uber/ringpop-go v0.8.5 github.com/uber/tchannel-go v1.22.2 github.com/urfave/cli v1.22.4 diff --git a/go.sum b/go.sum index 099c5d212f5..80b25767353 100644 --- a/go.sum +++ b/go.sum @@ -439,8 +439,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825 h1:t6CB2U4TvrG/jjMBU+CL7s90Pny4jR4/zV1L9NK7lmc= -github.com/uber/cadence-idl v0.0.0-20240119174829-b5c878f44825/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07 h1:VxvBaCqyXmHIxPHYcQrz3oBsCeiO7diPyFau6E1CgaE= +github.com/uber/cadence-idl v0.0.0-20240122233329-e98679fb0e07/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= diff --git a/idls b/idls index b5c878f4482..e98679fb0e0 160000 --- a/idls +++ b/idls @@ -1 +1 @@ -Subproject commit b5c878f44825359431112674c01e525acde96949 +Subproject commit e98679fb0e073a9b8cb44496645be26297e5356e diff --git a/service/frontend/api/handler.go b/service/frontend/api/handler.go index bf923d463f5..f0fc8a82aad 100644 --- a/service/frontend/api/handler.go +++ b/service/frontend/api/handler.go @@ -2014,6 +2014,13 @@ func (wh *WorkflowHandler) RespondQueryTaskCompleted( return nil } +func (wh *WorkflowHandler) StartWorkflowExecutionAsync( + ctx context.Context, + startRequest *types.StartWorkflowExecutionAsyncRequest, +) (resp *types.StartWorkflowExecutionAsyncResponse, retError error) { + return nil, &types.BadRequestError{Message: "not supported"} +} + // StartWorkflowExecution - Creates a new workflow execution func (wh *WorkflowHandler) StartWorkflowExecution( ctx context.Context, diff --git a/service/frontend/api/interface.go b/service/frontend/api/interface.go index 775568c650d..1dac1bf41d4 100644 --- a/service/frontend/api/interface.go +++ b/service/frontend/api/interface.go @@ -75,6 +75,7 @@ type ( SignalWithStartWorkflowExecution(context.Context, *types.SignalWithStartWorkflowExecutionRequest) (*types.StartWorkflowExecutionResponse, error) SignalWorkflowExecution(context.Context, *types.SignalWorkflowExecutionRequest) error StartWorkflowExecution(context.Context, *types.StartWorkflowExecutionRequest) (*types.StartWorkflowExecutionResponse, error) + StartWorkflowExecutionAsync(context.Context, *types.StartWorkflowExecutionAsyncRequest) (*types.StartWorkflowExecutionAsyncResponse, error) TerminateWorkflowExecution(context.Context, *types.TerminateWorkflowExecutionRequest) error UpdateDomain(context.Context, *types.UpdateDomainRequest) (*types.UpdateDomainResponse, error) } diff --git a/service/frontend/api/interface_mock.go b/service/frontend/api/interface_mock.go index 2f138fb8d05..440a66e481a 100644 --- a/service/frontend/api/interface_mock.go +++ b/service/frontend/api/interface_mock.go @@ -645,6 +645,21 @@ func (mr *MockHandlerMockRecorder) StartWorkflowExecution(arg0, arg1 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartWorkflowExecution", reflect.TypeOf((*MockHandler)(nil).StartWorkflowExecution), arg0, arg1) } +// StartWorkflowExecutionAsync mocks base method. +func (m *MockHandler) StartWorkflowExecutionAsync(arg0 context.Context, arg1 *types.StartWorkflowExecutionAsyncRequest) (*types.StartWorkflowExecutionAsyncResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StartWorkflowExecutionAsync", arg0, arg1) + ret0, _ := ret[0].(*types.StartWorkflowExecutionAsyncResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StartWorkflowExecutionAsync indicates an expected call of StartWorkflowExecutionAsync. +func (mr *MockHandlerMockRecorder) StartWorkflowExecutionAsync(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartWorkflowExecutionAsync", reflect.TypeOf((*MockHandler)(nil).StartWorkflowExecutionAsync), arg0, arg1) +} + // TerminateWorkflowExecution mocks base method. func (m *MockHandler) TerminateWorkflowExecution(arg0 context.Context, arg1 *types.TerminateWorkflowExecutionRequest) error { m.ctrl.T.Helper() diff --git a/service/frontend/wrappers/accesscontrolled/api_generated.go b/service/frontend/wrappers/accesscontrolled/api_generated.go index d643bff45b6..b544cec3f14 100644 --- a/service/frontend/wrappers/accesscontrolled/api_generated.go +++ b/service/frontend/wrappers/accesscontrolled/api_generated.go @@ -586,6 +586,10 @@ func (a *apiHandler) StartWorkflowExecution(ctx context.Context, sp1 *types.Star return a.handler.StartWorkflowExecution(ctx, sp1) } +func (a *apiHandler) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + return a.handler.StartWorkflowExecutionAsync(ctx, sp1) +} + func (a *apiHandler) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest) (err error) { scope := a.getMetricsScopeWithDomain(metrics.FrontendTerminateWorkflowExecutionScope, tp1.GetDomain()) attr := &authorization.Attributes{ diff --git a/service/frontend/wrappers/clusterredirection/api_generated.go b/service/frontend/wrappers/clusterredirection/api_generated.go index 2c5686914fc..f7393cbf421 100644 --- a/service/frontend/wrappers/clusterredirection/api_generated.go +++ b/service/frontend/wrappers/clusterredirection/api_generated.go @@ -910,6 +910,30 @@ func (handler *clusterRedirectionHandler) StartWorkflowExecution(ctx context.Con return sp2, err } +func (handler *clusterRedirectionHandler) StartWorkflowExecutionAsync(ctx context.Context, sp1 *types.StartWorkflowExecutionAsyncRequest) (sp2 *types.StartWorkflowExecutionAsyncResponse, err error) { + var apiName = "StartWorkflowExecutionAsync" + var cluster string + + scope, startTime := handler.beforeCall(metrics.DCRedirectionStartWorkflowExecutionAsyncScope) + defer func() { + handler.afterCall(recover(), scope, startTime, cluster, &err) + }() + + err = handler.redirectionPolicy.WithDomainNameRedirect(ctx, sp1.GetDomain(), apiName, func(targetDC string) error { + cluster = targetDC + switch { + case targetDC == handler.currentClusterName: + sp2, err = handler.frontendHandler.StartWorkflowExecutionAsync(ctx, sp1) + default: + remoteClient := handler.GetRemoteFrontendClient(targetDC) + sp2, err = remoteClient.StartWorkflowExecutionAsync(ctx, sp1, handler.callOptions...) + } + return err + }) + + return sp2, err +} + func (handler *clusterRedirectionHandler) TerminateWorkflowExecution(ctx context.Context, tp1 *types.TerminateWorkflowExecutionRequest) (err error) { var apiName = "TerminateWorkflowExecution" var cluster string diff --git a/service/frontend/wrappers/grpc/api_generated.go b/service/frontend/wrappers/grpc/api_generated.go index 38b6e807408..c77824dc754 100644 --- a/service/frontend/wrappers/grpc/api_generated.go +++ b/service/frontend/wrappers/grpc/api_generated.go @@ -238,6 +238,11 @@ func (g APIHandler) StartWorkflowExecution(ctx context.Context, request *apiv1.S return proto.FromStartWorkflowExecutionResponse(response), proto.FromError(err) } +func (g APIHandler) StartWorkflowExecutionAsync(ctx context.Context, request *apiv1.StartWorkflowExecutionAsyncRequest) (*apiv1.StartWorkflowExecutionAsyncResponse, error) { + response, err := g.h.StartWorkflowExecutionAsync(ctx, proto.ToStartWorkflowExecutionAsyncRequest(request)) + return proto.FromStartWorkflowExecutionAsyncResponse(response), proto.FromError(err) +} + func (g APIHandler) TerminateWorkflowExecution(ctx context.Context, request *apiv1.TerminateWorkflowExecutionRequest) (*apiv1.TerminateWorkflowExecutionResponse, error) { err := g.h.TerminateWorkflowExecution(ctx, proto.ToTerminateWorkflowExecutionRequest(request)) return &apiv1.TerminateWorkflowExecutionResponse{}, proto.FromError(err) diff --git a/service/frontend/wrappers/thrift/api_generated.go b/service/frontend/wrappers/thrift/api_generated.go index 205ac44aaa8..9a7699d249f 100644 --- a/service/frontend/wrappers/thrift/api_generated.go +++ b/service/frontend/wrappers/thrift/api_generated.go @@ -228,6 +228,11 @@ func (g APIHandler) StartWorkflowExecution(ctx context.Context, StartRequest *sh return thrift.FromStartWorkflowExecutionResponse(response), thrift.FromError(err) } +func (g APIHandler) StartWorkflowExecutionAsync(ctx context.Context, StartRequest *shared.StartWorkflowExecutionAsyncRequest) (sp1 *shared.StartWorkflowExecutionAsyncResponse, err error) { + response, err := g.h.StartWorkflowExecutionAsync(ctx, thrift.ToStartWorkflowExecutionAsyncRequest(StartRequest)) + return thrift.FromStartWorkflowExecutionAsyncResponse(response), thrift.FromError(err) +} + func (g APIHandler) TerminateWorkflowExecution(ctx context.Context, TerminateRequest *shared.TerminateWorkflowExecutionRequest) (err error) { err = g.h.TerminateWorkflowExecution(ctx, thrift.ToTerminateWorkflowExecutionRequest(TerminateRequest)) return thrift.FromError(err)