/** * 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 namespace Aws { namespace AutoScalingPlans { namespace Model { /** */ class AWS_AUTOSCALINGPLANS_API CreateScalingPlanRequest : public AutoScalingPlansRequest { public: CreateScalingPlanRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateScalingPlan"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

The name of the scaling plan. Names cannot contain vertical bars, colons, or * forward slashes.

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

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

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

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

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

A CloudFormation stack or 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 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 set of tags. You can create one scaling plan per * application source.

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

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

*/ inline CreateScalingPlanRequest& 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 CreateScalingPlanRequest& WithScalingInstructions(const Aws::Vector& value) { SetScalingInstructions(value); return *this;} /** *

The scaling instructions.

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

The scaling instructions.

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

The scaling instructions.

*/ inline CreateScalingPlanRequest& AddScalingInstructions(ScalingInstruction&& value) { m_scalingInstructionsHasBeenSet = true; m_scalingInstructions.push_back(std::move(value)); return *this; } private: Aws::String m_scalingPlanName; bool m_scalingPlanNameHasBeenSet; ApplicationSource m_applicationSource; bool m_applicationSourceHasBeenSet; Aws::Vector m_scalingInstructions; bool m_scalingInstructionsHasBeenSet; }; } // namespace Model } // namespace AutoScalingPlans } // namespace Aws