<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: temporal/api/history/v1/message.proto

namespace Temporal\Api\History\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Always the first event in workflow history
 *
 * Generated from protobuf message <code>temporal.api.history.v1.WorkflowExecutionStartedEventAttributes</code>
 */
class WorkflowExecutionStartedEventAttributes extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowType workflow_type = 1;</code>
     */
    protected $workflow_type = null;
    /**
     * If this workflow is a child, the namespace our parent lives in.
     * SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
     *
     * Generated from protobuf field <code>string parent_workflow_namespace = 2;</code>
     */
    protected $parent_workflow_namespace = '';
    /**
     * Generated from protobuf field <code>string parent_workflow_namespace_id = 27;</code>
     */
    protected $parent_workflow_namespace_id = '';
    /**
     * Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
     * If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution parent_workflow_execution = 3;</code>
     */
    protected $parent_workflow_execution = null;
    /**
     * EventID of the child execution initiated event in parent workflow
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_id = 4;</code>
     */
    protected $parent_initiated_event_id = 0;
    /**
     * Generated from protobuf field <code>.temporal.api.taskqueue.v1.TaskQueue task_queue = 5;</code>
     */
    protected $task_queue = null;
    /**
     * SDK will deserialize this and provide it as arguments to the workflow function
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads input = 6;</code>
     */
    protected $input = null;
    /**
     * Total workflow execution timeout including retries and continue as new.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_execution_timeout = 7;</code>
     */
    protected $workflow_execution_timeout = null;
    /**
     * Timeout of a single workflow run.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_run_timeout = 8;</code>
     */
    protected $workflow_run_timeout = null;
    /**
     * Timeout of a single workflow task.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_task_timeout = 9;</code>
     */
    protected $workflow_task_timeout = null;
    /**
     * Run id of the previous workflow which continued-as-new or retried or cron executed into this
     * workflow.
     *
     * Generated from protobuf field <code>string continued_execution_run_id = 10;</code>
     */
    protected $continued_execution_run_id = '';
    /**
     * Generated from protobuf field <code>.temporal.api.enums.v1.ContinueAsNewInitiator initiator = 11;</code>
     */
    protected $initiator = 0;
    /**
     * Generated from protobuf field <code>.temporal.api.failure.v1.Failure continued_failure = 12;</code>
     */
    protected $continued_failure = null;
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads last_completion_result = 13;</code>
     */
    protected $last_completion_result = null;
    /**
     * This is the run id when the WorkflowExecutionStarted event was written.
     * A workflow reset changes the execution run_id, but preserves this field.
     *
     * Generated from protobuf field <code>string original_execution_run_id = 14;</code>
     */
    protected $original_execution_run_id = '';
    /**
     * Identity of the client who requested this execution
     *
     * Generated from protobuf field <code>string identity = 15;</code>
     */
    protected $identity = '';
    /**
     * This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
     * Used to identify a chain.
     *
     * Generated from protobuf field <code>string first_execution_run_id = 16;</code>
     */
    protected $first_execution_run_id = '';
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.RetryPolicy retry_policy = 17;</code>
     */
    protected $retry_policy = null;
    /**
     * Starting at 1, the number of times we have tried to execute this workflow
     *
     * Generated from protobuf field <code>int32 attempt = 18;</code>
     */
    protected $attempt = 0;
    /**
     * The absolute time at which the workflow will be timed out.
     * This is passed without change to the next run/retry of a workflow.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp workflow_execution_expiration_time = 19;</code>
     */
    protected $workflow_execution_expiration_time = null;
    /**
     * If this workflow runs on a cron schedule, it will appear here
     *
     * Generated from protobuf field <code>string cron_schedule = 20;</code>
     */
    protected $cron_schedule = '';
    /**
     * For a cron workflow, this contains the amount of time between when this iteration of
     * the cron workflow was scheduled and when it should run next per its cron_schedule.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration first_workflow_task_backoff = 21;</code>
     */
    protected $first_workflow_task_backoff = null;
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Memo memo = 22;</code>
     */
    protected $memo = null;
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.SearchAttributes search_attributes = 23;</code>
     */
    protected $search_attributes = null;
    /**
     * Generated from protobuf field <code>.temporal.api.workflow.v1.ResetPoints prev_auto_reset_points = 24;</code>
     */
    protected $prev_auto_reset_points = null;
    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Header header = 25;</code>
     */
    protected $header = null;
    /**
     * Version of the child execution initiated event in parent workflow
     * It should be used together with parent_initiated_event_id to identify
     * a child initiated event for global namespace
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_version = 26;</code>
     */
    protected $parent_initiated_event_version = 0;
    /**
     * This field is new in 1.21.
     *
     * Generated from protobuf field <code>string workflow_id = 28;</code>
     */
    protected $workflow_id = '';
    /**
     * If this workflow intends to use anything other than the current overall default version for
     * the queue, then we include it here.
     * Deprecated. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkerVersionStamp source_version_stamp = 29 [deprecated = true];</code>
     * @deprecated
     */
    protected $source_version_stamp = null;
    /**
     * Completion callbacks attached when this workflow was started.
     *
     * Generated from protobuf field <code>repeated .temporal.api.common.v1.Callback completion_callbacks = 30;</code>
     */
    private $completion_callbacks;
    /**
     * Contains information about the root workflow execution.
     * The root workflow execution is defined as follows:
     *   1. A workflow without parent workflow is its own root workflow.
     *   2. A workflow that has a parent workflow has the same root workflow as its parent workflow.
     * When the workflow is its own root workflow, then root_workflow_execution is nil.
     * Note: workflows continued as new or reseted may or may not have parents, check examples below.
     * Examples:
     *   Scenario 1: Workflow W1 starts child workflow W2, and W2 starts child workflow W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 2: Workflow W1 starts child workflow W2, and W2 continued as new W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 3: Workflow W1 continued as new W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *   Scenario 4: Workflow W1 starts child workflow W2, and W2 is reseted, creating W3
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 5: Workflow W1 is reseted, creating W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution root_workflow_execution = 31;</code>
     */
    protected $root_workflow_execution = null;
    /**
     * When present, this execution is assigned to the build ID of its parent or previous execution.
     * Deprecated. This field should be cleaned up when versioning-2 API is removed. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>string inherited_build_id = 32 [deprecated = true];</code>
     * @deprecated
     */
    protected $inherited_build_id = '';
    /**
     * Versioning override applied to this workflow when it was started.
     * Children, crons, retries, and continue-as-new will inherit source run's override if pinned
     * and if the new workflow's Task Queue belongs to the override version.
     *
     * Generated from protobuf field <code>.temporal.api.workflow.v1.VersioningOverride versioning_override = 33;</code>
     */
    protected $versioning_override = null;
    /**
     * When present, it means this is a child workflow of a parent that is Pinned to this Worker
     * Deployment Version. In this case, child workflow will start as Pinned to this Version instead
     * of starting on the Current Version of its Task Queue.
     * This is set only if the child workflow is starting on a Task Queue belonging to the same
     * Worker Deployment Version.
     * Deprecated. Use `parent_versioning_info`.
     *
     * Generated from protobuf field <code>string parent_pinned_worker_deployment_version = 34 [deprecated = true];</code>
     * @deprecated
     */
    protected $parent_pinned_worker_deployment_version = '';
    /**
     * Priority metadata
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Priority priority = 35;</code>
     */
    protected $priority = null;
    /**
     * If present, the new workflow should start on this version with pinned base behavior.
     * Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
     * New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
     * new run's Task Queue belongs to that version.
     * New run initiated by workflow Cron will never inherit.
     * New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
     * of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
     * parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
     * Pinned override is inherited if Task Queue of new run is compatible with the override version.
     * Override is inherited separately and takes precedence over inherited base version.
     *
     * Generated from protobuf field <code>.temporal.api.deployment.v1.WorkerDeploymentVersion inherited_pinned_version = 37;</code>
     */
    protected $inherited_pinned_version = null;
    /**
     * A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
     * eager execution was accepted by the server.
     * Only populated by server with version >= 1.29.0.
     *
     * Generated from protobuf field <code>bool eager_execution_accepted = 38;</code>
     */
    protected $eager_execution_accepted = false;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Temporal\Api\Common\V1\WorkflowType $workflow_type
     *     @type string $parent_workflow_namespace
     *           If this workflow is a child, the namespace our parent lives in.
     *           SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
     *     @type string $parent_workflow_namespace_id
     *     @type \Temporal\Api\Common\V1\WorkflowExecution $parent_workflow_execution
     *           Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
     *           If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
     *     @type int|string $parent_initiated_event_id
     *           EventID of the child execution initiated event in parent workflow
     *     @type \Temporal\Api\Taskqueue\V1\TaskQueue $task_queue
     *     @type \Temporal\Api\Common\V1\Payloads $input
     *           SDK will deserialize this and provide it as arguments to the workflow function
     *     @type \Google\Protobuf\Duration $workflow_execution_timeout
     *           Total workflow execution timeout including retries and continue as new.
     *     @type \Google\Protobuf\Duration $workflow_run_timeout
     *           Timeout of a single workflow run.
     *     @type \Google\Protobuf\Duration $workflow_task_timeout
     *           Timeout of a single workflow task.
     *     @type string $continued_execution_run_id
     *           Run id of the previous workflow which continued-as-new or retried or cron executed into this
     *           workflow.
     *     @type int $initiator
     *     @type \Temporal\Api\Failure\V1\Failure $continued_failure
     *     @type \Temporal\Api\Common\V1\Payloads $last_completion_result
     *     @type string $original_execution_run_id
     *           This is the run id when the WorkflowExecutionStarted event was written.
     *           A workflow reset changes the execution run_id, but preserves this field.
     *     @type string $identity
     *           Identity of the client who requested this execution
     *     @type string $first_execution_run_id
     *           This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
     *           Used to identify a chain.
     *     @type \Temporal\Api\Common\V1\RetryPolicy $retry_policy
     *     @type int $attempt
     *           Starting at 1, the number of times we have tried to execute this workflow
     *     @type \Google\Protobuf\Timestamp $workflow_execution_expiration_time
     *           The absolute time at which the workflow will be timed out.
     *           This is passed without change to the next run/retry of a workflow.
     *     @type string $cron_schedule
     *           If this workflow runs on a cron schedule, it will appear here
     *     @type \Google\Protobuf\Duration $first_workflow_task_backoff
     *           For a cron workflow, this contains the amount of time between when this iteration of
     *           the cron workflow was scheduled and when it should run next per its cron_schedule.
     *     @type \Temporal\Api\Common\V1\Memo $memo
     *     @type \Temporal\Api\Common\V1\SearchAttributes $search_attributes
     *     @type \Temporal\Api\Workflow\V1\ResetPoints $prev_auto_reset_points
     *     @type \Temporal\Api\Common\V1\Header $header
     *     @type int|string $parent_initiated_event_version
     *           Version of the child execution initiated event in parent workflow
     *           It should be used together with parent_initiated_event_id to identify
     *           a child initiated event for global namespace
     *     @type string $workflow_id
     *           This field is new in 1.21.
     *     @type \Temporal\Api\Common\V1\WorkerVersionStamp $source_version_stamp
     *           If this workflow intends to use anything other than the current overall default version for
     *           the queue, then we include it here.
     *           Deprecated. [cleanup-experimental-wv]
     *     @type \Temporal\Api\Common\V1\Callback[] $completion_callbacks
     *           Completion callbacks attached when this workflow was started.
     *     @type \Temporal\Api\Common\V1\WorkflowExecution $root_workflow_execution
     *           Contains information about the root workflow execution.
     *           The root workflow execution is defined as follows:
     *             1. A workflow without parent workflow is its own root workflow.
     *             2. A workflow that has a parent workflow has the same root workflow as its parent workflow.
     *           When the workflow is its own root workflow, then root_workflow_execution is nil.
     *           Note: workflows continued as new or reseted may or may not have parents, check examples below.
     *           Examples:
     *             Scenario 1: Workflow W1 starts child workflow W2, and W2 starts child workflow W3.
     *               - The root workflow of all three workflows is W1.
     *               - W1 has root_workflow_execution set to nil.
     *               - W2 and W3 have root_workflow_execution set to W1.
     *             Scenario 2: Workflow W1 starts child workflow W2, and W2 continued as new W3.
     *               - The root workflow of all three workflows is W1.
     *               - W1 has root_workflow_execution set to nil.
     *               - W2 and W3 have root_workflow_execution set to W1.
     *             Scenario 3: Workflow W1 continued as new W2.
     *               - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *               - W1 and W2 have root_workflow_execution set to nil.
     *             Scenario 4: Workflow W1 starts child workflow W2, and W2 is reseted, creating W3
     *               - The root workflow of all three workflows is W1.
     *               - W1 has root_workflow_execution set to nil.
     *               - W2 and W3 have root_workflow_execution set to W1.
     *             Scenario 5: Workflow W1 is reseted, creating W2.
     *               - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *               - W1 and W2 have root_workflow_execution set to nil.
     *     @type string $inherited_build_id
     *           When present, this execution is assigned to the build ID of its parent or previous execution.
     *           Deprecated. This field should be cleaned up when versioning-2 API is removed. [cleanup-experimental-wv]
     *     @type \Temporal\Api\Workflow\V1\VersioningOverride $versioning_override
     *           Versioning override applied to this workflow when it was started.
     *           Children, crons, retries, and continue-as-new will inherit source run's override if pinned
     *           and if the new workflow's Task Queue belongs to the override version.
     *     @type string $parent_pinned_worker_deployment_version
     *           When present, it means this is a child workflow of a parent that is Pinned to this Worker
     *           Deployment Version. In this case, child workflow will start as Pinned to this Version instead
     *           of starting on the Current Version of its Task Queue.
     *           This is set only if the child workflow is starting on a Task Queue belonging to the same
     *           Worker Deployment Version.
     *           Deprecated. Use `parent_versioning_info`.
     *     @type \Temporal\Api\Common\V1\Priority $priority
     *           Priority metadata
     *     @type \Temporal\Api\Deployment\V1\WorkerDeploymentVersion $inherited_pinned_version
     *           If present, the new workflow should start on this version with pinned base behavior.
     *           Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
     *           New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
     *           new run's Task Queue belongs to that version.
     *           New run initiated by workflow Cron will never inherit.
     *           New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
     *           of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
     *           parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
     *           Pinned override is inherited if Task Queue of new run is compatible with the override version.
     *           Override is inherited separately and takes precedence over inherited base version.
     *     @type bool $eager_execution_accepted
     *           A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
     *           eager execution was accepted by the server.
     *           Only populated by server with version >= 1.29.0.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Temporal\Api\History\V1\Message::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowType workflow_type = 1;</code>
     * @return \Temporal\Api\Common\V1\WorkflowType|null
     */
    public function getWorkflowType()
    {
        return $this->workflow_type;
    }

    public function hasWorkflowType()
    {
        return isset($this->workflow_type);
    }

    public function clearWorkflowType()
    {
        unset($this->workflow_type);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowType workflow_type = 1;</code>
     * @param \Temporal\Api\Common\V1\WorkflowType $var
     * @return $this
     */
    public function setWorkflowType($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\WorkflowType::class);
        $this->workflow_type = $var;

        return $this;
    }

    /**
     * If this workflow is a child, the namespace our parent lives in.
     * SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
     *
     * Generated from protobuf field <code>string parent_workflow_namespace = 2;</code>
     * @return string
     */
    public function getParentWorkflowNamespace()
    {
        return $this->parent_workflow_namespace;
    }

    /**
     * If this workflow is a child, the namespace our parent lives in.
     * SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
     *
     * Generated from protobuf field <code>string parent_workflow_namespace = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setParentWorkflowNamespace($var)
    {
        GPBUtil::checkString($var, True);
        $this->parent_workflow_namespace = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string parent_workflow_namespace_id = 27;</code>
     * @return string
     */
    public function getParentWorkflowNamespaceId()
    {
        return $this->parent_workflow_namespace_id;
    }

    /**
     * Generated from protobuf field <code>string parent_workflow_namespace_id = 27;</code>
     * @param string $var
     * @return $this
     */
    public function setParentWorkflowNamespaceId($var)
    {
        GPBUtil::checkString($var, True);
        $this->parent_workflow_namespace_id = $var;

        return $this;
    }

    /**
     * Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
     * If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution parent_workflow_execution = 3;</code>
     * @return \Temporal\Api\Common\V1\WorkflowExecution|null
     */
    public function getParentWorkflowExecution()
    {
        return $this->parent_workflow_execution;
    }

    public function hasParentWorkflowExecution()
    {
        return isset($this->parent_workflow_execution);
    }

    public function clearParentWorkflowExecution()
    {
        unset($this->parent_workflow_execution);
    }

    /**
     * Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
     * If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution parent_workflow_execution = 3;</code>
     * @param \Temporal\Api\Common\V1\WorkflowExecution $var
     * @return $this
     */
    public function setParentWorkflowExecution($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\WorkflowExecution::class);
        $this->parent_workflow_execution = $var;

        return $this;
    }

    /**
     * EventID of the child execution initiated event in parent workflow
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_id = 4;</code>
     * @return int|string
     */
    public function getParentInitiatedEventId()
    {
        return $this->parent_initiated_event_id;
    }

    /**
     * EventID of the child execution initiated event in parent workflow
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_id = 4;</code>
     * @param int|string $var
     * @return $this
     */
    public function setParentInitiatedEventId($var)
    {
        GPBUtil::checkInt64($var);
        $this->parent_initiated_event_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.taskqueue.v1.TaskQueue task_queue = 5;</code>
     * @return \Temporal\Api\Taskqueue\V1\TaskQueue|null
     */
    public function getTaskQueue()
    {
        return $this->task_queue;
    }

    public function hasTaskQueue()
    {
        return isset($this->task_queue);
    }

    public function clearTaskQueue()
    {
        unset($this->task_queue);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.taskqueue.v1.TaskQueue task_queue = 5;</code>
     * @param \Temporal\Api\Taskqueue\V1\TaskQueue $var
     * @return $this
     */
    public function setTaskQueue($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Taskqueue\V1\TaskQueue::class);
        $this->task_queue = $var;

        return $this;
    }

    /**
     * SDK will deserialize this and provide it as arguments to the workflow function
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads input = 6;</code>
     * @return \Temporal\Api\Common\V1\Payloads|null
     */
    public function getInput()
    {
        return $this->input;
    }

    public function hasInput()
    {
        return isset($this->input);
    }

    public function clearInput()
    {
        unset($this->input);
    }

    /**
     * SDK will deserialize this and provide it as arguments to the workflow function
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads input = 6;</code>
     * @param \Temporal\Api\Common\V1\Payloads $var
     * @return $this
     */
    public function setInput($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\Payloads::class);
        $this->input = $var;

        return $this;
    }

    /**
     * Total workflow execution timeout including retries and continue as new.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_execution_timeout = 7;</code>
     * @return \Google\Protobuf\Duration|null
     */
    public function getWorkflowExecutionTimeout()
    {
        return $this->workflow_execution_timeout;
    }

    public function hasWorkflowExecutionTimeout()
    {
        return isset($this->workflow_execution_timeout);
    }

    public function clearWorkflowExecutionTimeout()
    {
        unset($this->workflow_execution_timeout);
    }

    /**
     * Total workflow execution timeout including retries and continue as new.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_execution_timeout = 7;</code>
     * @param \Google\Protobuf\Duration $var
     * @return $this
     */
    public function setWorkflowExecutionTimeout($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
        $this->workflow_execution_timeout = $var;

        return $this;
    }

    /**
     * Timeout of a single workflow run.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_run_timeout = 8;</code>
     * @return \Google\Protobuf\Duration|null
     */
    public function getWorkflowRunTimeout()
    {
        return $this->workflow_run_timeout;
    }

    public function hasWorkflowRunTimeout()
    {
        return isset($this->workflow_run_timeout);
    }

    public function clearWorkflowRunTimeout()
    {
        unset($this->workflow_run_timeout);
    }

    /**
     * Timeout of a single workflow run.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_run_timeout = 8;</code>
     * @param \Google\Protobuf\Duration $var
     * @return $this
     */
    public function setWorkflowRunTimeout($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
        $this->workflow_run_timeout = $var;

        return $this;
    }

    /**
     * Timeout of a single workflow task.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_task_timeout = 9;</code>
     * @return \Google\Protobuf\Duration|null
     */
    public function getWorkflowTaskTimeout()
    {
        return $this->workflow_task_timeout;
    }

    public function hasWorkflowTaskTimeout()
    {
        return isset($this->workflow_task_timeout);
    }

    public function clearWorkflowTaskTimeout()
    {
        unset($this->workflow_task_timeout);
    }

    /**
     * Timeout of a single workflow task.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration workflow_task_timeout = 9;</code>
     * @param \Google\Protobuf\Duration $var
     * @return $this
     */
    public function setWorkflowTaskTimeout($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
        $this->workflow_task_timeout = $var;

        return $this;
    }

    /**
     * Run id of the previous workflow which continued-as-new or retried or cron executed into this
     * workflow.
     *
     * Generated from protobuf field <code>string continued_execution_run_id = 10;</code>
     * @return string
     */
    public function getContinuedExecutionRunId()
    {
        return $this->continued_execution_run_id;
    }

    /**
     * Run id of the previous workflow which continued-as-new or retried or cron executed into this
     * workflow.
     *
     * Generated from protobuf field <code>string continued_execution_run_id = 10;</code>
     * @param string $var
     * @return $this
     */
    public function setContinuedExecutionRunId($var)
    {
        GPBUtil::checkString($var, True);
        $this->continued_execution_run_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.enums.v1.ContinueAsNewInitiator initiator = 11;</code>
     * @return int
     */
    public function getInitiator()
    {
        return $this->initiator;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.enums.v1.ContinueAsNewInitiator initiator = 11;</code>
     * @param int $var
     * @return $this
     */
    public function setInitiator($var)
    {
        GPBUtil::checkEnum($var, \Temporal\Api\Enums\V1\ContinueAsNewInitiator::class);
        $this->initiator = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.failure.v1.Failure continued_failure = 12;</code>
     * @return \Temporal\Api\Failure\V1\Failure|null
     */
    public function getContinuedFailure()
    {
        return $this->continued_failure;
    }

    public function hasContinuedFailure()
    {
        return isset($this->continued_failure);
    }

    public function clearContinuedFailure()
    {
        unset($this->continued_failure);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.failure.v1.Failure continued_failure = 12;</code>
     * @param \Temporal\Api\Failure\V1\Failure $var
     * @return $this
     */
    public function setContinuedFailure($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Failure\V1\Failure::class);
        $this->continued_failure = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads last_completion_result = 13;</code>
     * @return \Temporal\Api\Common\V1\Payloads|null
     */
    public function getLastCompletionResult()
    {
        return $this->last_completion_result;
    }

    public function hasLastCompletionResult()
    {
        return isset($this->last_completion_result);
    }

    public function clearLastCompletionResult()
    {
        unset($this->last_completion_result);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Payloads last_completion_result = 13;</code>
     * @param \Temporal\Api\Common\V1\Payloads $var
     * @return $this
     */
    public function setLastCompletionResult($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\Payloads::class);
        $this->last_completion_result = $var;

        return $this;
    }

    /**
     * This is the run id when the WorkflowExecutionStarted event was written.
     * A workflow reset changes the execution run_id, but preserves this field.
     *
     * Generated from protobuf field <code>string original_execution_run_id = 14;</code>
     * @return string
     */
    public function getOriginalExecutionRunId()
    {
        return $this->original_execution_run_id;
    }

    /**
     * This is the run id when the WorkflowExecutionStarted event was written.
     * A workflow reset changes the execution run_id, but preserves this field.
     *
     * Generated from protobuf field <code>string original_execution_run_id = 14;</code>
     * @param string $var
     * @return $this
     */
    public function setOriginalExecutionRunId($var)
    {
        GPBUtil::checkString($var, True);
        $this->original_execution_run_id = $var;

        return $this;
    }

    /**
     * Identity of the client who requested this execution
     *
     * Generated from protobuf field <code>string identity = 15;</code>
     * @return string
     */
    public function getIdentity()
    {
        return $this->identity;
    }

    /**
     * Identity of the client who requested this execution
     *
     * Generated from protobuf field <code>string identity = 15;</code>
     * @param string $var
     * @return $this
     */
    public function setIdentity($var)
    {
        GPBUtil::checkString($var, True);
        $this->identity = $var;

        return $this;
    }

    /**
     * This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
     * Used to identify a chain.
     *
     * Generated from protobuf field <code>string first_execution_run_id = 16;</code>
     * @return string
     */
    public function getFirstExecutionRunId()
    {
        return $this->first_execution_run_id;
    }

    /**
     * This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
     * Used to identify a chain.
     *
     * Generated from protobuf field <code>string first_execution_run_id = 16;</code>
     * @param string $var
     * @return $this
     */
    public function setFirstExecutionRunId($var)
    {
        GPBUtil::checkString($var, True);
        $this->first_execution_run_id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.RetryPolicy retry_policy = 17;</code>
     * @return \Temporal\Api\Common\V1\RetryPolicy|null
     */
    public function getRetryPolicy()
    {
        return $this->retry_policy;
    }

    public function hasRetryPolicy()
    {
        return isset($this->retry_policy);
    }

    public function clearRetryPolicy()
    {
        unset($this->retry_policy);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.RetryPolicy retry_policy = 17;</code>
     * @param \Temporal\Api\Common\V1\RetryPolicy $var
     * @return $this
     */
    public function setRetryPolicy($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\RetryPolicy::class);
        $this->retry_policy = $var;

        return $this;
    }

    /**
     * Starting at 1, the number of times we have tried to execute this workflow
     *
     * Generated from protobuf field <code>int32 attempt = 18;</code>
     * @return int
     */
    public function getAttempt()
    {
        return $this->attempt;
    }

    /**
     * Starting at 1, the number of times we have tried to execute this workflow
     *
     * Generated from protobuf field <code>int32 attempt = 18;</code>
     * @param int $var
     * @return $this
     */
    public function setAttempt($var)
    {
        GPBUtil::checkInt32($var);
        $this->attempt = $var;

        return $this;
    }

    /**
     * The absolute time at which the workflow will be timed out.
     * This is passed without change to the next run/retry of a workflow.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp workflow_execution_expiration_time = 19;</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getWorkflowExecutionExpirationTime()
    {
        return $this->workflow_execution_expiration_time;
    }

    public function hasWorkflowExecutionExpirationTime()
    {
        return isset($this->workflow_execution_expiration_time);
    }

    public function clearWorkflowExecutionExpirationTime()
    {
        unset($this->workflow_execution_expiration_time);
    }

    /**
     * The absolute time at which the workflow will be timed out.
     * This is passed without change to the next run/retry of a workflow.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp workflow_execution_expiration_time = 19;</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setWorkflowExecutionExpirationTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->workflow_execution_expiration_time = $var;

        return $this;
    }

    /**
     * If this workflow runs on a cron schedule, it will appear here
     *
     * Generated from protobuf field <code>string cron_schedule = 20;</code>
     * @return string
     */
    public function getCronSchedule()
    {
        return $this->cron_schedule;
    }

    /**
     * If this workflow runs on a cron schedule, it will appear here
     *
     * Generated from protobuf field <code>string cron_schedule = 20;</code>
     * @param string $var
     * @return $this
     */
    public function setCronSchedule($var)
    {
        GPBUtil::checkString($var, True);
        $this->cron_schedule = $var;

        return $this;
    }

    /**
     * For a cron workflow, this contains the amount of time between when this iteration of
     * the cron workflow was scheduled and when it should run next per its cron_schedule.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration first_workflow_task_backoff = 21;</code>
     * @return \Google\Protobuf\Duration|null
     */
    public function getFirstWorkflowTaskBackoff()
    {
        return $this->first_workflow_task_backoff;
    }

    public function hasFirstWorkflowTaskBackoff()
    {
        return isset($this->first_workflow_task_backoff);
    }

    public function clearFirstWorkflowTaskBackoff()
    {
        unset($this->first_workflow_task_backoff);
    }

    /**
     * For a cron workflow, this contains the amount of time between when this iteration of
     * the cron workflow was scheduled and when it should run next per its cron_schedule.
     *
     * Generated from protobuf field <code>.google.protobuf.Duration first_workflow_task_backoff = 21;</code>
     * @param \Google\Protobuf\Duration $var
     * @return $this
     */
    public function setFirstWorkflowTaskBackoff($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
        $this->first_workflow_task_backoff = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Memo memo = 22;</code>
     * @return \Temporal\Api\Common\V1\Memo|null
     */
    public function getMemo()
    {
        return $this->memo;
    }

    public function hasMemo()
    {
        return isset($this->memo);
    }

    public function clearMemo()
    {
        unset($this->memo);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Memo memo = 22;</code>
     * @param \Temporal\Api\Common\V1\Memo $var
     * @return $this
     */
    public function setMemo($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\Memo::class);
        $this->memo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.SearchAttributes search_attributes = 23;</code>
     * @return \Temporal\Api\Common\V1\SearchAttributes|null
     */
    public function getSearchAttributes()
    {
        return $this->search_attributes;
    }

    public function hasSearchAttributes()
    {
        return isset($this->search_attributes);
    }

    public function clearSearchAttributes()
    {
        unset($this->search_attributes);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.SearchAttributes search_attributes = 23;</code>
     * @param \Temporal\Api\Common\V1\SearchAttributes $var
     * @return $this
     */
    public function setSearchAttributes($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\SearchAttributes::class);
        $this->search_attributes = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.workflow.v1.ResetPoints prev_auto_reset_points = 24;</code>
     * @return \Temporal\Api\Workflow\V1\ResetPoints|null
     */
    public function getPrevAutoResetPoints()
    {
        return $this->prev_auto_reset_points;
    }

    public function hasPrevAutoResetPoints()
    {
        return isset($this->prev_auto_reset_points);
    }

    public function clearPrevAutoResetPoints()
    {
        unset($this->prev_auto_reset_points);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.workflow.v1.ResetPoints prev_auto_reset_points = 24;</code>
     * @param \Temporal\Api\Workflow\V1\ResetPoints $var
     * @return $this
     */
    public function setPrevAutoResetPoints($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Workflow\V1\ResetPoints::class);
        $this->prev_auto_reset_points = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Header header = 25;</code>
     * @return \Temporal\Api\Common\V1\Header|null
     */
    public function getHeader()
    {
        return $this->header;
    }

    public function hasHeader()
    {
        return isset($this->header);
    }

    public function clearHeader()
    {
        unset($this->header);
    }

    /**
     * Generated from protobuf field <code>.temporal.api.common.v1.Header header = 25;</code>
     * @param \Temporal\Api\Common\V1\Header $var
     * @return $this
     */
    public function setHeader($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\Header::class);
        $this->header = $var;

        return $this;
    }

    /**
     * Version of the child execution initiated event in parent workflow
     * It should be used together with parent_initiated_event_id to identify
     * a child initiated event for global namespace
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_version = 26;</code>
     * @return int|string
     */
    public function getParentInitiatedEventVersion()
    {
        return $this->parent_initiated_event_version;
    }

    /**
     * Version of the child execution initiated event in parent workflow
     * It should be used together with parent_initiated_event_id to identify
     * a child initiated event for global namespace
     *
     * Generated from protobuf field <code>int64 parent_initiated_event_version = 26;</code>
     * @param int|string $var
     * @return $this
     */
    public function setParentInitiatedEventVersion($var)
    {
        GPBUtil::checkInt64($var);
        $this->parent_initiated_event_version = $var;

        return $this;
    }

    /**
     * This field is new in 1.21.
     *
     * Generated from protobuf field <code>string workflow_id = 28;</code>
     * @return string
     */
    public function getWorkflowId()
    {
        return $this->workflow_id;
    }

    /**
     * This field is new in 1.21.
     *
     * Generated from protobuf field <code>string workflow_id = 28;</code>
     * @param string $var
     * @return $this
     */
    public function setWorkflowId($var)
    {
        GPBUtil::checkString($var, True);
        $this->workflow_id = $var;

        return $this;
    }

    /**
     * If this workflow intends to use anything other than the current overall default version for
     * the queue, then we include it here.
     * Deprecated. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkerVersionStamp source_version_stamp = 29 [deprecated = true];</code>
     * @return \Temporal\Api\Common\V1\WorkerVersionStamp|null
     * @deprecated
     */
    public function getSourceVersionStamp()
    {
        if (isset($this->source_version_stamp)) {
            @trigger_error('source_version_stamp is deprecated.', E_USER_DEPRECATED);
        }
        return $this->source_version_stamp;
    }

    public function hasSourceVersionStamp()
    {
        if (isset($this->source_version_stamp)) {
            @trigger_error('source_version_stamp is deprecated.', E_USER_DEPRECATED);
        }
        return isset($this->source_version_stamp);
    }

    public function clearSourceVersionStamp()
    {
        @trigger_error('source_version_stamp is deprecated.', E_USER_DEPRECATED);
        unset($this->source_version_stamp);
    }

    /**
     * If this workflow intends to use anything other than the current overall default version for
     * the queue, then we include it here.
     * Deprecated. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkerVersionStamp source_version_stamp = 29 [deprecated = true];</code>
     * @param \Temporal\Api\Common\V1\WorkerVersionStamp $var
     * @return $this
     * @deprecated
     */
    public function setSourceVersionStamp($var)
    {
        @trigger_error('source_version_stamp is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\WorkerVersionStamp::class);
        $this->source_version_stamp = $var;

        return $this;
    }

    /**
     * Completion callbacks attached when this workflow was started.
     *
     * Generated from protobuf field <code>repeated .temporal.api.common.v1.Callback completion_callbacks = 30;</code>
     * @return RepeatedField<\Temporal\Api\Common\V1\Callback>
     */
    public function getCompletionCallbacks()
    {
        return $this->completion_callbacks;
    }

    /**
     * Completion callbacks attached when this workflow was started.
     *
     * Generated from protobuf field <code>repeated .temporal.api.common.v1.Callback completion_callbacks = 30;</code>
     * @param \Temporal\Api\Common\V1\Callback[] $var
     * @return $this
     */
    public function setCompletionCallbacks($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Temporal\Api\Common\V1\Callback::class);
        $this->completion_callbacks = $arr;

        return $this;
    }

    /**
     * Contains information about the root workflow execution.
     * The root workflow execution is defined as follows:
     *   1. A workflow without parent workflow is its own root workflow.
     *   2. A workflow that has a parent workflow has the same root workflow as its parent workflow.
     * When the workflow is its own root workflow, then root_workflow_execution is nil.
     * Note: workflows continued as new or reseted may or may not have parents, check examples below.
     * Examples:
     *   Scenario 1: Workflow W1 starts child workflow W2, and W2 starts child workflow W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 2: Workflow W1 starts child workflow W2, and W2 continued as new W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 3: Workflow W1 continued as new W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *   Scenario 4: Workflow W1 starts child workflow W2, and W2 is reseted, creating W3
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 5: Workflow W1 is reseted, creating W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution root_workflow_execution = 31;</code>
     * @return \Temporal\Api\Common\V1\WorkflowExecution|null
     */
    public function getRootWorkflowExecution()
    {
        return $this->root_workflow_execution;
    }

    public function hasRootWorkflowExecution()
    {
        return isset($this->root_workflow_execution);
    }

    public function clearRootWorkflowExecution()
    {
        unset($this->root_workflow_execution);
    }

    /**
     * Contains information about the root workflow execution.
     * The root workflow execution is defined as follows:
     *   1. A workflow without parent workflow is its own root workflow.
     *   2. A workflow that has a parent workflow has the same root workflow as its parent workflow.
     * When the workflow is its own root workflow, then root_workflow_execution is nil.
     * Note: workflows continued as new or reseted may or may not have parents, check examples below.
     * Examples:
     *   Scenario 1: Workflow W1 starts child workflow W2, and W2 starts child workflow W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 2: Workflow W1 starts child workflow W2, and W2 continued as new W3.
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 3: Workflow W1 continued as new W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *   Scenario 4: Workflow W1 starts child workflow W2, and W2 is reseted, creating W3
     *     - The root workflow of all three workflows is W1.
     *     - W1 has root_workflow_execution set to nil.
     *     - W2 and W3 have root_workflow_execution set to W1.
     *   Scenario 5: Workflow W1 is reseted, creating W2.
     *     - The root workflow of W1 is W1 and the root workflow of W2 is W2.
     *     - W1 and W2 have root_workflow_execution set to nil.
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.WorkflowExecution root_workflow_execution = 31;</code>
     * @param \Temporal\Api\Common\V1\WorkflowExecution $var
     * @return $this
     */
    public function setRootWorkflowExecution($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\WorkflowExecution::class);
        $this->root_workflow_execution = $var;

        return $this;
    }

    /**
     * When present, this execution is assigned to the build ID of its parent or previous execution.
     * Deprecated. This field should be cleaned up when versioning-2 API is removed. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>string inherited_build_id = 32 [deprecated = true];</code>
     * @return string
     * @deprecated
     */
    public function getInheritedBuildId()
    {
        if ($this->inherited_build_id !== '') {
            @trigger_error('inherited_build_id is deprecated.', E_USER_DEPRECATED);
        }
        return $this->inherited_build_id;
    }

    /**
     * When present, this execution is assigned to the build ID of its parent or previous execution.
     * Deprecated. This field should be cleaned up when versioning-2 API is removed. [cleanup-experimental-wv]
     *
     * Generated from protobuf field <code>string inherited_build_id = 32 [deprecated = true];</code>
     * @param string $var
     * @return $this
     * @deprecated
     */
    public function setInheritedBuildId($var)
    {
        @trigger_error('inherited_build_id is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkString($var, True);
        $this->inherited_build_id = $var;

        return $this;
    }

    /**
     * Versioning override applied to this workflow when it was started.
     * Children, crons, retries, and continue-as-new will inherit source run's override if pinned
     * and if the new workflow's Task Queue belongs to the override version.
     *
     * Generated from protobuf field <code>.temporal.api.workflow.v1.VersioningOverride versioning_override = 33;</code>
     * @return \Temporal\Api\Workflow\V1\VersioningOverride|null
     */
    public function getVersioningOverride()
    {
        return $this->versioning_override;
    }

    public function hasVersioningOverride()
    {
        return isset($this->versioning_override);
    }

    public function clearVersioningOverride()
    {
        unset($this->versioning_override);
    }

    /**
     * Versioning override applied to this workflow when it was started.
     * Children, crons, retries, and continue-as-new will inherit source run's override if pinned
     * and if the new workflow's Task Queue belongs to the override version.
     *
     * Generated from protobuf field <code>.temporal.api.workflow.v1.VersioningOverride versioning_override = 33;</code>
     * @param \Temporal\Api\Workflow\V1\VersioningOverride $var
     * @return $this
     */
    public function setVersioningOverride($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Workflow\V1\VersioningOverride::class);
        $this->versioning_override = $var;

        return $this;
    }

    /**
     * When present, it means this is a child workflow of a parent that is Pinned to this Worker
     * Deployment Version. In this case, child workflow will start as Pinned to this Version instead
     * of starting on the Current Version of its Task Queue.
     * This is set only if the child workflow is starting on a Task Queue belonging to the same
     * Worker Deployment Version.
     * Deprecated. Use `parent_versioning_info`.
     *
     * Generated from protobuf field <code>string parent_pinned_worker_deployment_version = 34 [deprecated = true];</code>
     * @return string
     * @deprecated
     */
    public function getParentPinnedWorkerDeploymentVersion()
    {
        if ($this->parent_pinned_worker_deployment_version !== '') {
            @trigger_error('parent_pinned_worker_deployment_version is deprecated.', E_USER_DEPRECATED);
        }
        return $this->parent_pinned_worker_deployment_version;
    }

    /**
     * When present, it means this is a child workflow of a parent that is Pinned to this Worker
     * Deployment Version. In this case, child workflow will start as Pinned to this Version instead
     * of starting on the Current Version of its Task Queue.
     * This is set only if the child workflow is starting on a Task Queue belonging to the same
     * Worker Deployment Version.
     * Deprecated. Use `parent_versioning_info`.
     *
     * Generated from protobuf field <code>string parent_pinned_worker_deployment_version = 34 [deprecated = true];</code>
     * @param string $var
     * @return $this
     * @deprecated
     */
    public function setParentPinnedWorkerDeploymentVersion($var)
    {
        @trigger_error('parent_pinned_worker_deployment_version is deprecated.', E_USER_DEPRECATED);
        GPBUtil::checkString($var, True);
        $this->parent_pinned_worker_deployment_version = $var;

        return $this;
    }

    /**
     * Priority metadata
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Priority priority = 35;</code>
     * @return \Temporal\Api\Common\V1\Priority|null
     */
    public function getPriority()
    {
        return $this->priority;
    }

    public function hasPriority()
    {
        return isset($this->priority);
    }

    public function clearPriority()
    {
        unset($this->priority);
    }

    /**
     * Priority metadata
     *
     * Generated from protobuf field <code>.temporal.api.common.v1.Priority priority = 35;</code>
     * @param \Temporal\Api\Common\V1\Priority $var
     * @return $this
     */
    public function setPriority($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Common\V1\Priority::class);
        $this->priority = $var;

        return $this;
    }

    /**
     * If present, the new workflow should start on this version with pinned base behavior.
     * Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
     * New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
     * new run's Task Queue belongs to that version.
     * New run initiated by workflow Cron will never inherit.
     * New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
     * of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
     * parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
     * Pinned override is inherited if Task Queue of new run is compatible with the override version.
     * Override is inherited separately and takes precedence over inherited base version.
     *
     * Generated from protobuf field <code>.temporal.api.deployment.v1.WorkerDeploymentVersion inherited_pinned_version = 37;</code>
     * @return \Temporal\Api\Deployment\V1\WorkerDeploymentVersion|null
     */
    public function getInheritedPinnedVersion()
    {
        return $this->inherited_pinned_version;
    }

    public function hasInheritedPinnedVersion()
    {
        return isset($this->inherited_pinned_version);
    }

    public function clearInheritedPinnedVersion()
    {
        unset($this->inherited_pinned_version);
    }

    /**
     * If present, the new workflow should start on this version with pinned base behavior.
     * Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
     * New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
     * new run's Task Queue belongs to that version.
     * New run initiated by workflow Cron will never inherit.
     * New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
     * of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
     * parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
     * Pinned override is inherited if Task Queue of new run is compatible with the override version.
     * Override is inherited separately and takes precedence over inherited base version.
     *
     * Generated from protobuf field <code>.temporal.api.deployment.v1.WorkerDeploymentVersion inherited_pinned_version = 37;</code>
     * @param \Temporal\Api\Deployment\V1\WorkerDeploymentVersion $var
     * @return $this
     */
    public function setInheritedPinnedVersion($var)
    {
        GPBUtil::checkMessage($var, \Temporal\Api\Deployment\V1\WorkerDeploymentVersion::class);
        $this->inherited_pinned_version = $var;

        return $this;
    }

    /**
     * A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
     * eager execution was accepted by the server.
     * Only populated by server with version >= 1.29.0.
     *
     * Generated from protobuf field <code>bool eager_execution_accepted = 38;</code>
     * @return bool
     */
    public function getEagerExecutionAccepted()
    {
        return $this->eager_execution_accepted;
    }

    /**
     * A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
     * eager execution was accepted by the server.
     * Only populated by server with version >= 1.29.0.
     *
     * Generated from protobuf field <code>bool eager_execution_accepted = 38;</code>
     * @param bool $var
     * @return $this
     */
    public function setEagerExecutionAccepted($var)
    {
        GPBUtil::checkBool($var);
        $this->eager_execution_accepted = $var;

        return $this;
    }

}

