/** * 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 AutoScalingPlans { namespace Model { /** *

Represents a scaling plan.

See Also:

AWS * API Reference

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

The name of the scaling plan.

*/ inline const Aws::String& GetScalingPlanName() const{ return m_scalingPlanName; } /** *

The name of the scaling plan.

*/ inline bool ScalingPlanNameHasBeenSet() const { return m_scalingPlanNameHasBeenSet; } /** *

The name of the scaling plan.

*/ inline void SetScalingPlanName(const Aws::String& value) { m_scalingPlanNameHasBeenSet = true; m_scalingPlanName = value; } /** *

The name of the scaling plan.

*/ inline void SetScalingPlanName(Aws::String&& value) { m_scalingPlanNameHasBeenSet = true; m_scalingPlanName = std::move(value); } /** *

The name of the scaling plan.

*/ inline void SetScalingPlanName(const char* value) { m_scalingPlanNameHasBeenSet = true; m_scalingPlanName.assign(value); } /** *

The name of the scaling plan.

*/ inline ScalingPlan& WithScalingPlanName(const Aws::String& value) { SetScalingPlanName(value); return *this;} /** *

The name of the scaling plan.

*/ inline ScalingPlan& WithScalingPlanName(Aws::String&& value) { SetScalingPlanName(std::move(value)); return *this;} /** *

The name of the scaling plan.

*/ inline ScalingPlan& WithScalingPlanName(const char* value) { SetScalingPlanName(value); return *this;} /** *

The version number of the scaling plan.

*/ inline long long GetScalingPlanVersion() const{ return m_scalingPlanVersion; } /** *

The version number of the scaling plan.

*/ inline bool ScalingPlanVersionHasBeenSet() const { return m_scalingPlanVersionHasBeenSet; } /** *

The version number of the scaling plan.

*/ inline void SetScalingPlanVersion(long long value) { m_scalingPlanVersionHasBeenSet = true; m_scalingPlanVersion = value; } /** *

The version number of the scaling plan.

*/ inline ScalingPlan& WithScalingPlanVersion(long long value) { SetScalingPlanVersion(value); return *this;} /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline const ApplicationSource& GetApplicationSource() const{ return m_applicationSource; } /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline bool ApplicationSourceHasBeenSet() const { return m_applicationSourceHasBeenSet; } /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline void SetApplicationSource(const ApplicationSource& value) { m_applicationSourceHasBeenSet = true; m_applicationSource = value; } /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline void SetApplicationSource(ApplicationSource&& value) { m_applicationSourceHasBeenSet = true; m_applicationSource = std::move(value); } /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline ScalingPlan& WithApplicationSource(const ApplicationSource& value) { SetApplicationSource(value); return *this;} /** *

A CloudFormation stack or a set of tags. You can create one scaling plan per * application source.

*/ inline ScalingPlan& WithApplicationSource(ApplicationSource&& value) { SetApplicationSource(std::move(value)); return *this;} /** *

The scaling instructions.

*/ inline const Aws::Vector& GetScalingInstructions() const{ return m_scalingInstructions; } /** *

The scaling instructions.

*/ inline bool ScalingInstructionsHasBeenSet() const { return m_scalingInstructionsHasBeenSet; } /** *

The scaling instructions.

*/ inline void SetScalingInstructions(const Aws::Vector& value) { m_scalingInstructionsHasBeenSet = true; m_scalingInstructions = value; } /** *

The scaling instructions.

*/ inline void SetScalingInstructions(Aws::Vector&& value) { m_scalingInstructionsHasBeenSet = true; m_scalingInstructions = std::move(value); } /** *

The scaling instructions.

*/ inline ScalingPlan& WithScalingInstructions(const Aws::Vector& value) { SetScalingInstructions(value); return *this;} /** *

The scaling instructions.

*/ inline ScalingPlan& WithScalingInstructions(Aws::Vector&& value) { SetScalingInstructions(std::move(value)); return *this;} /** *

The scaling instructions.

*/ inline ScalingPlan& AddScalingInstructions(const ScalingInstruction& value) { m_scalingInstructionsHasBeenSet = true; m_scalingInstructions.push_back(value); return *this; } /** *

The scaling instructions.

*/ inline ScalingPlan& AddScalingInstructions(ScalingInstruction&& value) { m_scalingInstructionsHasBeenSet = true; m_scalingInstructions.push_back(std::move(value)); return *this; } /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline const ScalingPlanStatusCode& GetStatusCode() const{ return m_statusCode; } /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline bool StatusCodeHasBeenSet() const { return m_statusCodeHasBeenSet; } /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline void SetStatusCode(const ScalingPlanStatusCode& value) { m_statusCodeHasBeenSet = true; m_statusCode = value; } /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline void SetStatusCode(ScalingPlanStatusCode&& value) { m_statusCodeHasBeenSet = true; m_statusCode = std::move(value); } /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline ScalingPlan& WithStatusCode(const ScalingPlanStatusCode& value) { SetStatusCode(value); return *this;} /** *

The status of the scaling plan.

  • Active - The * scaling plan is active.

  • ActiveWithProblems - The * scaling plan is active, but the scaling configuration for one or more resources * could not be applied.

  • CreationInProgress - The * scaling plan is being created.

  • CreationFailed - * The scaling plan could not be created.

  • * DeletionInProgress - The scaling plan is being deleted.

  • *
  • DeletionFailed - The scaling plan could not be * deleted.

  • UpdateInProgress - The scaling plan is * being updated.

  • UpdateFailed - The scaling plan * could not be updated.

*/ inline ScalingPlan& WithStatusCode(ScalingPlanStatusCode&& value) { SetStatusCode(std::move(value)); return *this;} /** *

A simple message about the current status of the scaling plan.

*/ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** *

A simple message about the current status of the scaling plan.

*/ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** *

A simple message about the current status of the scaling plan.

*/ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** *

A simple message about the current status of the scaling plan.

*/ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** *

A simple message about the current status of the scaling plan.

*/ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** *

A simple message about the current status of the scaling plan.

*/ inline ScalingPlan& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** *

A simple message about the current status of the scaling plan.

*/ inline ScalingPlan& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** *

A simple message about the current status of the scaling plan.

*/ inline ScalingPlan& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline const Aws::Utils::DateTime& GetStatusStartTime() const{ return m_statusStartTime; } /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline bool StatusStartTimeHasBeenSet() const { return m_statusStartTimeHasBeenSet; } /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline void SetStatusStartTime(const Aws::Utils::DateTime& value) { m_statusStartTimeHasBeenSet = true; m_statusStartTime = value; } /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline void SetStatusStartTime(Aws::Utils::DateTime&& value) { m_statusStartTimeHasBeenSet = true; m_statusStartTime = std::move(value); } /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline ScalingPlan& WithStatusStartTime(const Aws::Utils::DateTime& value) { SetStatusStartTime(value); return *this;} /** *

The Unix time stamp when the scaling plan entered the current status.

*/ inline ScalingPlan& WithStatusStartTime(Aws::Utils::DateTime&& value) { SetStatusStartTime(std::move(value)); return *this;} /** *

The Unix time stamp when the scaling plan was created.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The Unix time stamp when the scaling plan was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The Unix time stamp when the scaling plan was created.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The Unix time stamp when the scaling plan was created.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The Unix time stamp when the scaling plan was created.

*/ inline ScalingPlan& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The Unix time stamp when the scaling plan was created.

*/ inline ScalingPlan& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} private: Aws::String m_scalingPlanName; bool m_scalingPlanNameHasBeenSet = false; long long m_scalingPlanVersion; bool m_scalingPlanVersionHasBeenSet = false; ApplicationSource m_applicationSource; bool m_applicationSourceHasBeenSet = false; Aws::Vector m_scalingInstructions; bool m_scalingInstructionsHasBeenSet = false; ScalingPlanStatusCode m_statusCode; bool m_statusCodeHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; Aws::Utils::DateTime m_statusStartTime; bool m_statusStartTimeHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; }; } // namespace Model } // namespace AutoScalingPlans } // namespace Aws