/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Glue { namespace Model { /** *

A workflow is a collection of multiple dependent Glue jobs and crawlers that * are run to complete a complex ETL task. A workflow manages the execution and * monitoring of all its jobs and crawlers.

See Also:

AWS API * Reference

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

The name of the workflow.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the workflow.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the workflow.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the workflow.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the workflow.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the workflow.

*/ inline Workflow& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the workflow.

*/ inline Workflow& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the workflow.

*/ inline Workflow& WithName(const char* value) { SetName(value); return *this;} /** *

A description of the workflow.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the workflow.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the workflow.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the workflow.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the workflow.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the workflow.

*/ inline Workflow& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the workflow.

*/ inline Workflow& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the workflow.

*/ inline Workflow& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline const Aws::Map& GetDefaultRunProperties() const{ return m_defaultRunProperties; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline bool DefaultRunPropertiesHasBeenSet() const { return m_defaultRunPropertiesHasBeenSet; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline void SetDefaultRunProperties(const Aws::Map& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties = value; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline void SetDefaultRunProperties(Aws::Map&& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties = std::move(value); } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& WithDefaultRunProperties(const Aws::Map& value) { SetDefaultRunProperties(value); return *this;} /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& WithDefaultRunProperties(Aws::Map&& value) { SetDefaultRunProperties(std::move(value)); return *this;} /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(const Aws::String& key, const Aws::String& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(key, value); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(Aws::String&& key, const Aws::String& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(std::move(key), value); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(const Aws::String& key, Aws::String&& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(key, std::move(value)); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(Aws::String&& key, Aws::String&& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(std::move(key), std::move(value)); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(const char* key, Aws::String&& value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(key, std::move(value)); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(Aws::String&& key, const char* value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(std::move(key), value); return *this; } /** *

A collection of properties to be used as part of each execution of the * workflow. The run properties are made available to each job in the workflow. A * job can modify the properties for the next jobs in the flow.

*/ inline Workflow& AddDefaultRunProperties(const char* key, const char* value) { m_defaultRunPropertiesHasBeenSet = true; m_defaultRunProperties.emplace(key, value); return *this; } /** *

The date and time when the workflow was created.

*/ inline const Aws::Utils::DateTime& GetCreatedOn() const{ return m_createdOn; } /** *

The date and time when the workflow was created.

*/ inline bool CreatedOnHasBeenSet() const { return m_createdOnHasBeenSet; } /** *

The date and time when the workflow was created.

*/ inline void SetCreatedOn(const Aws::Utils::DateTime& value) { m_createdOnHasBeenSet = true; m_createdOn = value; } /** *

The date and time when the workflow was created.

*/ inline void SetCreatedOn(Aws::Utils::DateTime&& value) { m_createdOnHasBeenSet = true; m_createdOn = std::move(value); } /** *

The date and time when the workflow was created.

*/ inline Workflow& WithCreatedOn(const Aws::Utils::DateTime& value) { SetCreatedOn(value); return *this;} /** *

The date and time when the workflow was created.

*/ inline Workflow& WithCreatedOn(Aws::Utils::DateTime&& value) { SetCreatedOn(std::move(value)); return *this;} /** *

The date and time when the workflow was last modified.

*/ inline const Aws::Utils::DateTime& GetLastModifiedOn() const{ return m_lastModifiedOn; } /** *

The date and time when the workflow was last modified.

*/ inline bool LastModifiedOnHasBeenSet() const { return m_lastModifiedOnHasBeenSet; } /** *

The date and time when the workflow was last modified.

*/ inline void SetLastModifiedOn(const Aws::Utils::DateTime& value) { m_lastModifiedOnHasBeenSet = true; m_lastModifiedOn = value; } /** *

The date and time when the workflow was last modified.

*/ inline void SetLastModifiedOn(Aws::Utils::DateTime&& value) { m_lastModifiedOnHasBeenSet = true; m_lastModifiedOn = std::move(value); } /** *

The date and time when the workflow was last modified.

*/ inline Workflow& WithLastModifiedOn(const Aws::Utils::DateTime& value) { SetLastModifiedOn(value); return *this;} /** *

The date and time when the workflow was last modified.

*/ inline Workflow& WithLastModifiedOn(Aws::Utils::DateTime&& value) { SetLastModifiedOn(std::move(value)); return *this;} /** *

The information about the last execution of the workflow.

*/ inline const WorkflowRun& GetLastRun() const{ return m_lastRun; } /** *

The information about the last execution of the workflow.

*/ inline bool LastRunHasBeenSet() const { return m_lastRunHasBeenSet; } /** *

The information about the last execution of the workflow.

*/ inline void SetLastRun(const WorkflowRun& value) { m_lastRunHasBeenSet = true; m_lastRun = value; } /** *

The information about the last execution of the workflow.

*/ inline void SetLastRun(WorkflowRun&& value) { m_lastRunHasBeenSet = true; m_lastRun = std::move(value); } /** *

The information about the last execution of the workflow.

*/ inline Workflow& WithLastRun(const WorkflowRun& value) { SetLastRun(value); return *this;} /** *

The information about the last execution of the workflow.

*/ inline Workflow& WithLastRun(WorkflowRun&& value) { SetLastRun(std::move(value)); return *this;} /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline const WorkflowGraph& GetGraph() const{ return m_graph; } /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline bool GraphHasBeenSet() const { return m_graphHasBeenSet; } /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline void SetGraph(const WorkflowGraph& value) { m_graphHasBeenSet = true; m_graph = value; } /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline void SetGraph(WorkflowGraph&& value) { m_graphHasBeenSet = true; m_graph = std::move(value); } /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline Workflow& WithGraph(const WorkflowGraph& value) { SetGraph(value); return *this;} /** *

The graph representing all the Glue components that belong to the workflow as * nodes and directed connections between them as edges.

*/ inline Workflow& WithGraph(WorkflowGraph&& value) { SetGraph(std::move(value)); return *this;} /** *

You can use this parameter to prevent unwanted multiple updates to data, to * control costs, or in some cases, to prevent exceeding the maximum number of * concurrent runs of any of the component jobs. If you leave this parameter blank, * there is no limit to the number of concurrent workflow runs.

*/ inline int GetMaxConcurrentRuns() const{ return m_maxConcurrentRuns; } /** *

You can use this parameter to prevent unwanted multiple updates to data, to * control costs, or in some cases, to prevent exceeding the maximum number of * concurrent runs of any of the component jobs. If you leave this parameter blank, * there is no limit to the number of concurrent workflow runs.

*/ inline bool MaxConcurrentRunsHasBeenSet() const { return m_maxConcurrentRunsHasBeenSet; } /** *

You can use this parameter to prevent unwanted multiple updates to data, to * control costs, or in some cases, to prevent exceeding the maximum number of * concurrent runs of any of the component jobs. If you leave this parameter blank, * there is no limit to the number of concurrent workflow runs.

*/ inline void SetMaxConcurrentRuns(int value) { m_maxConcurrentRunsHasBeenSet = true; m_maxConcurrentRuns = value; } /** *

You can use this parameter to prevent unwanted multiple updates to data, to * control costs, or in some cases, to prevent exceeding the maximum number of * concurrent runs of any of the component jobs. If you leave this parameter blank, * there is no limit to the number of concurrent workflow runs.

*/ inline Workflow& WithMaxConcurrentRuns(int value) { SetMaxConcurrentRuns(value); return *this;} /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline const BlueprintDetails& GetBlueprintDetails() const{ return m_blueprintDetails; } /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline bool BlueprintDetailsHasBeenSet() const { return m_blueprintDetailsHasBeenSet; } /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline void SetBlueprintDetails(const BlueprintDetails& value) { m_blueprintDetailsHasBeenSet = true; m_blueprintDetails = value; } /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline void SetBlueprintDetails(BlueprintDetails&& value) { m_blueprintDetailsHasBeenSet = true; m_blueprintDetails = std::move(value); } /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline Workflow& WithBlueprintDetails(const BlueprintDetails& value) { SetBlueprintDetails(value); return *this;} /** *

This structure indicates the details of the blueprint that this particular * workflow is created from.

*/ inline Workflow& WithBlueprintDetails(BlueprintDetails&& value) { SetBlueprintDetails(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Map m_defaultRunProperties; bool m_defaultRunPropertiesHasBeenSet = false; Aws::Utils::DateTime m_createdOn; bool m_createdOnHasBeenSet = false; Aws::Utils::DateTime m_lastModifiedOn; bool m_lastModifiedOnHasBeenSet = false; WorkflowRun m_lastRun; bool m_lastRunHasBeenSet = false; WorkflowGraph m_graph; bool m_graphHasBeenSet = false; int m_maxConcurrentRuns; bool m_maxConcurrentRunsHasBeenSet = false; BlueprintDetails m_blueprintDetails; bool m_blueprintDetailsHasBeenSet = false; }; } // namespace Model } // namespace Glue } // namespace Aws