/** * 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 Lightsail { namespace Model { /** */ class CreateDiskRequest : public LightsailRequest { public: AWS_LIGHTSAIL_API CreateDiskRequest(); // 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 "CreateDisk"; } AWS_LIGHTSAIL_API Aws::String SerializePayload() const override; AWS_LIGHTSAIL_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline const Aws::String& GetDiskName() const{ return m_diskName; } /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline bool DiskNameHasBeenSet() const { return m_diskNameHasBeenSet; } /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline void SetDiskName(const Aws::String& value) { m_diskNameHasBeenSet = true; m_diskName = value; } /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline void SetDiskName(Aws::String&& value) { m_diskNameHasBeenSet = true; m_diskName = std::move(value); } /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline void SetDiskName(const char* value) { m_diskNameHasBeenSet = true; m_diskName.assign(value); } /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline CreateDiskRequest& WithDiskName(const Aws::String& value) { SetDiskName(value); return *this;} /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline CreateDiskRequest& WithDiskName(Aws::String&& value) { SetDiskName(std::move(value)); return *this;} /** *

The unique Lightsail disk name (e.g., my-disk).

*/ inline CreateDiskRequest& WithDiskName(const char* value) { SetDiskName(value); return *this;} /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline CreateDiskRequest& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline CreateDiskRequest& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone where you want to create the disk (e.g., * us-east-2a). Use the same Availability Zone as the Lightsail * instance to which you want to attach the disk.

Use the get * regions operation to list the Availability Zones where Lightsail is * currently available.

*/ inline CreateDiskRequest& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The size of the disk in GB (e.g., 32).

*/ inline int GetSizeInGb() const{ return m_sizeInGb; } /** *

The size of the disk in GB (e.g., 32).

*/ inline bool SizeInGbHasBeenSet() const { return m_sizeInGbHasBeenSet; } /** *

The size of the disk in GB (e.g., 32).

*/ inline void SetSizeInGb(int value) { m_sizeInGbHasBeenSet = true; m_sizeInGb = value; } /** *

The size of the disk in GB (e.g., 32).

*/ inline CreateDiskRequest& WithSizeInGb(int value) { SetSizeInGb(value); return *this;} /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline CreateDiskRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline CreateDiskRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline CreateDiskRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tag keys and optional values to add to the resource during create.

*

Use the TagResource action to tag a resource after it's * created.

*/ inline CreateDiskRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline const Aws::Vector& GetAddOns() const{ return m_addOns; } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline bool AddOnsHasBeenSet() const { return m_addOnsHasBeenSet; } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline void SetAddOns(const Aws::Vector& value) { m_addOnsHasBeenSet = true; m_addOns = value; } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline void SetAddOns(Aws::Vector&& value) { m_addOnsHasBeenSet = true; m_addOns = std::move(value); } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline CreateDiskRequest& WithAddOns(const Aws::Vector& value) { SetAddOns(value); return *this;} /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline CreateDiskRequest& WithAddOns(Aws::Vector&& value) { SetAddOns(std::move(value)); return *this;} /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline CreateDiskRequest& AddAddOns(const AddOnRequest& value) { m_addOnsHasBeenSet = true; m_addOns.push_back(value); return *this; } /** *

An array of objects that represent the add-ons to enable for the new * disk.

*/ inline CreateDiskRequest& AddAddOns(AddOnRequest&& value) { m_addOnsHasBeenSet = true; m_addOns.push_back(std::move(value)); return *this; } private: Aws::String m_diskName; bool m_diskNameHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; int m_sizeInGb; bool m_sizeInGbHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_addOns; bool m_addOnsHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws