/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SWF { namespace Model { /** *

Contains information about a workflow execution.

See Also:

* AWS * API Reference

*/ class WorkflowExecutionInfo { public: AWS_SWF_API WorkflowExecutionInfo(); AWS_SWF_API WorkflowExecutionInfo(Aws::Utils::Json::JsonView jsonValue); AWS_SWF_API WorkflowExecutionInfo& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SWF_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The workflow execution this information is about.

*/ inline const WorkflowExecution& GetExecution() const{ return m_execution; } /** *

The workflow execution this information is about.

*/ inline bool ExecutionHasBeenSet() const { return m_executionHasBeenSet; } /** *

The workflow execution this information is about.

*/ inline void SetExecution(const WorkflowExecution& value) { m_executionHasBeenSet = true; m_execution = value; } /** *

The workflow execution this information is about.

*/ inline void SetExecution(WorkflowExecution&& value) { m_executionHasBeenSet = true; m_execution = std::move(value); } /** *

The workflow execution this information is about.

*/ inline WorkflowExecutionInfo& WithExecution(const WorkflowExecution& value) { SetExecution(value); return *this;} /** *

The workflow execution this information is about.

*/ inline WorkflowExecutionInfo& WithExecution(WorkflowExecution&& value) { SetExecution(std::move(value)); return *this;} /** *

The type of the workflow execution.

*/ inline const WorkflowType& GetWorkflowType() const{ return m_workflowType; } /** *

The type of the workflow execution.

*/ inline bool WorkflowTypeHasBeenSet() const { return m_workflowTypeHasBeenSet; } /** *

The type of the workflow execution.

*/ inline void SetWorkflowType(const WorkflowType& value) { m_workflowTypeHasBeenSet = true; m_workflowType = value; } /** *

The type of the workflow execution.

*/ inline void SetWorkflowType(WorkflowType&& value) { m_workflowTypeHasBeenSet = true; m_workflowType = std::move(value); } /** *

The type of the workflow execution.

*/ inline WorkflowExecutionInfo& WithWorkflowType(const WorkflowType& value) { SetWorkflowType(value); return *this;} /** *

The type of the workflow execution.

*/ inline WorkflowExecutionInfo& WithWorkflowType(WorkflowType&& value) { SetWorkflowType(std::move(value)); return *this;} /** *

The time when the execution was started.

*/ inline const Aws::Utils::DateTime& GetStartTimestamp() const{ return m_startTimestamp; } /** *

The time when the execution was started.

*/ inline bool StartTimestampHasBeenSet() const { return m_startTimestampHasBeenSet; } /** *

The time when the execution was started.

*/ inline void SetStartTimestamp(const Aws::Utils::DateTime& value) { m_startTimestampHasBeenSet = true; m_startTimestamp = value; } /** *

The time when the execution was started.

*/ inline void SetStartTimestamp(Aws::Utils::DateTime&& value) { m_startTimestampHasBeenSet = true; m_startTimestamp = std::move(value); } /** *

The time when the execution was started.

*/ inline WorkflowExecutionInfo& WithStartTimestamp(const Aws::Utils::DateTime& value) { SetStartTimestamp(value); return *this;} /** *

The time when the execution was started.

*/ inline WorkflowExecutionInfo& WithStartTimestamp(Aws::Utils::DateTime&& value) { SetStartTimestamp(std::move(value)); return *this;} /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline const Aws::Utils::DateTime& GetCloseTimestamp() const{ return m_closeTimestamp; } /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline bool CloseTimestampHasBeenSet() const { return m_closeTimestampHasBeenSet; } /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline void SetCloseTimestamp(const Aws::Utils::DateTime& value) { m_closeTimestampHasBeenSet = true; m_closeTimestamp = value; } /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline void SetCloseTimestamp(Aws::Utils::DateTime&& value) { m_closeTimestampHasBeenSet = true; m_closeTimestamp = std::move(value); } /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline WorkflowExecutionInfo& WithCloseTimestamp(const Aws::Utils::DateTime& value) { SetCloseTimestamp(value); return *this;} /** *

The time when the workflow execution was closed. Set only if the execution * status is CLOSED.

*/ inline WorkflowExecutionInfo& WithCloseTimestamp(Aws::Utils::DateTime&& value) { SetCloseTimestamp(std::move(value)); return *this;} /** *

The current status of the execution.

*/ inline const ExecutionStatus& GetExecutionStatus() const{ return m_executionStatus; } /** *

The current status of the execution.

*/ inline bool ExecutionStatusHasBeenSet() const { return m_executionStatusHasBeenSet; } /** *

The current status of the execution.

*/ inline void SetExecutionStatus(const ExecutionStatus& value) { m_executionStatusHasBeenSet = true; m_executionStatus = value; } /** *

The current status of the execution.

*/ inline void SetExecutionStatus(ExecutionStatus&& value) { m_executionStatusHasBeenSet = true; m_executionStatus = std::move(value); } /** *

The current status of the execution.

*/ inline WorkflowExecutionInfo& WithExecutionStatus(const ExecutionStatus& value) { SetExecutionStatus(value); return *this;} /** *

The current status of the execution.

*/ inline WorkflowExecutionInfo& WithExecutionStatus(ExecutionStatus&& value) { SetExecutionStatus(std::move(value)); return *this;} /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline const CloseStatus& GetCloseStatus() const{ return m_closeStatus; } /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline bool CloseStatusHasBeenSet() const { return m_closeStatusHasBeenSet; } /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline void SetCloseStatus(const CloseStatus& value) { m_closeStatusHasBeenSet = true; m_closeStatus = value; } /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline void SetCloseStatus(CloseStatus&& value) { m_closeStatusHasBeenSet = true; m_closeStatus = std::move(value); } /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline WorkflowExecutionInfo& WithCloseStatus(const CloseStatus& value) { SetCloseStatus(value); return *this;} /** *

If the execution status is closed then this specifies how the execution was * closed:

  • COMPLETED – the execution was * successfully completed.

  • CANCELED – the execution * was canceled.Cancellation allows the implementation to gracefully clean up * before the execution is closed.

  • TERMINATED – the * execution was force terminated.

  • FAILED – the * execution failed to complete.

  • TIMED_OUT – the * execution did not complete in the alloted time and was automatically timed * out.

  • CONTINUED_AS_NEW – the execution is * logically continued. This means the current execution was completed and a new * execution was started to carry on the workflow.

*/ inline WorkflowExecutionInfo& WithCloseStatus(CloseStatus&& value) { SetCloseStatus(std::move(value)); return *this;} /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline const WorkflowExecution& GetParent() const{ return m_parent; } /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline bool ParentHasBeenSet() const { return m_parentHasBeenSet; } /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline void SetParent(const WorkflowExecution& value) { m_parentHasBeenSet = true; m_parent = value; } /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline void SetParent(WorkflowExecution&& value) { m_parentHasBeenSet = true; m_parent = std::move(value); } /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline WorkflowExecutionInfo& WithParent(const WorkflowExecution& value) { SetParent(value); return *this;} /** *

If this workflow execution is a child of another execution then contains the * workflow execution that started this execution.

*/ inline WorkflowExecutionInfo& WithParent(WorkflowExecution&& value) { SetParent(std::move(value)); return *this;} /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline const Aws::Vector& GetTagList() const{ return m_tagList; } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline bool TagListHasBeenSet() const { return m_tagListHasBeenSet; } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline void SetTagList(const Aws::Vector& value) { m_tagListHasBeenSet = true; m_tagList = value; } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline void SetTagList(Aws::Vector&& value) { m_tagListHasBeenSet = true; m_tagList = std::move(value); } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline WorkflowExecutionInfo& WithTagList(const Aws::Vector& value) { SetTagList(value); return *this;} /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline WorkflowExecutionInfo& WithTagList(Aws::Vector&& value) { SetTagList(std::move(value)); return *this;} /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline WorkflowExecutionInfo& AddTagList(const Aws::String& value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline WorkflowExecutionInfo& AddTagList(Aws::String&& value) { m_tagListHasBeenSet = true; m_tagList.push_back(std::move(value)); return *this; } /** *

The list of tags associated with the workflow execution. Tags can be used to * identify and list workflow executions of interest through the visibility APIs. A * workflow execution can have a maximum of 5 tags.

*/ inline WorkflowExecutionInfo& AddTagList(const char* value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; } /** *

Set to true if a cancellation is requested for this workflow execution.

*/ inline bool GetCancelRequested() const{ return m_cancelRequested; } /** *

Set to true if a cancellation is requested for this workflow execution.

*/ inline bool CancelRequestedHasBeenSet() const { return m_cancelRequestedHasBeenSet; } /** *

Set to true if a cancellation is requested for this workflow execution.

*/ inline void SetCancelRequested(bool value) { m_cancelRequestedHasBeenSet = true; m_cancelRequested = value; } /** *

Set to true if a cancellation is requested for this workflow execution.

*/ inline WorkflowExecutionInfo& WithCancelRequested(bool value) { SetCancelRequested(value); return *this;} private: WorkflowExecution m_execution; bool m_executionHasBeenSet = false; WorkflowType m_workflowType; bool m_workflowTypeHasBeenSet = false; Aws::Utils::DateTime m_startTimestamp; bool m_startTimestampHasBeenSet = false; Aws::Utils::DateTime m_closeTimestamp; bool m_closeTimestampHasBeenSet = false; ExecutionStatus m_executionStatus; bool m_executionStatusHasBeenSet = false; CloseStatus m_closeStatus; bool m_closeStatusHasBeenSet = false; WorkflowExecution m_parent; bool m_parentHasBeenSet = false; Aws::Vector m_tagList; bool m_tagListHasBeenSet = false; bool m_cancelRequested; bool m_cancelRequestedHasBeenSet = false; }; } // namespace Model } // namespace SWF } // namespace Aws