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

Specification for a cluster (job flow) step.

See Also:

AWS * API Reference

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The name of the step.

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

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline const ActionOnFailure& GetActionOnFailure() const{ return m_actionOnFailure; } /** *

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline bool ActionOnFailureHasBeenSet() const { return m_actionOnFailureHasBeenSet; } /** *

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline void SetActionOnFailure(const ActionOnFailure& value) { m_actionOnFailureHasBeenSet = true; m_actionOnFailure = value; } /** *

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline void SetActionOnFailure(ActionOnFailure&& value) { m_actionOnFailureHasBeenSet = true; m_actionOnFailure = std::move(value); } /** *

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline StepConfig& WithActionOnFailure(const ActionOnFailure& value) { SetActionOnFailure(value); return *this;} /** *

The action to take when the step fails. Use one of the following values:

*
  • TERMINATE_CLUSTER - Shuts down the cluster.

  • *
  • CANCEL_AND_WAIT - Cancels any pending steps and returns * the cluster to the WAITING state.

  • * CONTINUE - Continues to the next step in the queue.

  • *

    TERMINATE_JOB_FLOW - Shuts down the cluster. * TERMINATE_JOB_FLOW is provided for backward compatibility. We * recommend using TERMINATE_CLUSTER instead.

If a * cluster's StepConcurrencyLevel is greater than 1, do * not use AddJobFlowSteps to submit a step with this parameter set to * CANCEL_AND_WAIT or TERMINATE_CLUSTER. The step is not * submitted and the action fails with a message that the * ActionOnFailure setting is not valid.

If you change a * cluster's StepConcurrencyLevel to be greater than 1 while a step is * running, the ActionOnFailure parameter may not behave as you * expect. In this case, for a step that fails with this parameter set to * CANCEL_AND_WAIT, pending steps and the running step are not * canceled; for a step that fails with this parameter set to * TERMINATE_CLUSTER, the cluster does not terminate.

*/ inline StepConfig& WithActionOnFailure(ActionOnFailure&& value) { SetActionOnFailure(std::move(value)); return *this;} /** *

The JAR file used for the step.

*/ inline const HadoopJarStepConfig& GetHadoopJarStep() const{ return m_hadoopJarStep; } /** *

The JAR file used for the step.

*/ inline bool HadoopJarStepHasBeenSet() const { return m_hadoopJarStepHasBeenSet; } /** *

The JAR file used for the step.

*/ inline void SetHadoopJarStep(const HadoopJarStepConfig& value) { m_hadoopJarStepHasBeenSet = true; m_hadoopJarStep = value; } /** *

The JAR file used for the step.

*/ inline void SetHadoopJarStep(HadoopJarStepConfig&& value) { m_hadoopJarStepHasBeenSet = true; m_hadoopJarStep = std::move(value); } /** *

The JAR file used for the step.

*/ inline StepConfig& WithHadoopJarStep(const HadoopJarStepConfig& value) { SetHadoopJarStep(value); return *this;} /** *

The JAR file used for the step.

*/ inline StepConfig& WithHadoopJarStep(HadoopJarStepConfig&& value) { SetHadoopJarStep(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; ActionOnFailure m_actionOnFailure; bool m_actionOnFailureHasBeenSet = false; HadoopJarStepConfig m_hadoopJarStep; bool m_hadoopJarStepHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws