/** * 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 CreateScalingPlanRequest : public AutoScalingPlansRequest { public: AWS_AUTOSCALINGPLANS_API 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_AUTOSCALINGPLANS_API Aws::String SerializePayload() const override; AWS_AUTOSCALINGPLANS_API 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.

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

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

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

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

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

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

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

*/ 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.

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

*/ 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.

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

*/ 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.

For more information, see ApplicationSource * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

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

The scaling instructions.

For more information, see ScalingInstruction * in the AWS Auto Scaling API Reference.

*/ 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 = false; ApplicationSource m_applicationSource; bool m_applicationSourceHasBeenSet = false; Aws::Vector m_scalingInstructions; bool m_scalingInstructionsHasBeenSet = false; }; } // namespace Model } // namespace AutoScalingPlans } // namespace Aws