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

Describes a bundle, which is a set of specs describing your virtual private * server (or instance).

See Also:

AWS * API Reference

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

The price in US dollars (e.g., 5.0) of the bundle.

*/ inline double GetPrice() const{ return m_price; } /** *

The price in US dollars (e.g., 5.0) of the bundle.

*/ inline bool PriceHasBeenSet() const { return m_priceHasBeenSet; } /** *

The price in US dollars (e.g., 5.0) of the bundle.

*/ inline void SetPrice(double value) { m_priceHasBeenSet = true; m_price = value; } /** *

The price in US dollars (e.g., 5.0) of the bundle.

*/ inline Bundle& WithPrice(double value) { SetPrice(value); return *this;} /** *

The number of vCPUs included in the bundle (e.g., 2).

*/ inline int GetCpuCount() const{ return m_cpuCount; } /** *

The number of vCPUs included in the bundle (e.g., 2).

*/ inline bool CpuCountHasBeenSet() const { return m_cpuCountHasBeenSet; } /** *

The number of vCPUs included in the bundle (e.g., 2).

*/ inline void SetCpuCount(int value) { m_cpuCountHasBeenSet = true; m_cpuCount = value; } /** *

The number of vCPUs included in the bundle (e.g., 2).

*/ inline Bundle& WithCpuCount(int value) { SetCpuCount(value); return *this;} /** *

The size of the SSD (e.g., 30).

*/ inline int GetDiskSizeInGb() const{ return m_diskSizeInGb; } /** *

The size of the SSD (e.g., 30).

*/ inline bool DiskSizeInGbHasBeenSet() const { return m_diskSizeInGbHasBeenSet; } /** *

The size of the SSD (e.g., 30).

*/ inline void SetDiskSizeInGb(int value) { m_diskSizeInGbHasBeenSet = true; m_diskSizeInGb = value; } /** *

The size of the SSD (e.g., 30).

*/ inline Bundle& WithDiskSizeInGb(int value) { SetDiskSizeInGb(value); return *this;} /** *

The bundle ID (e.g., micro_1_0).

*/ inline const Aws::String& GetBundleId() const{ return m_bundleId; } /** *

The bundle ID (e.g., micro_1_0).

*/ inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; } /** *

The bundle ID (e.g., micro_1_0).

*/ inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; } /** *

The bundle ID (e.g., micro_1_0).

*/ inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); } /** *

The bundle ID (e.g., micro_1_0).

*/ inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); } /** *

The bundle ID (e.g., micro_1_0).

*/ inline Bundle& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;} /** *

The bundle ID (e.g., micro_1_0).

*/ inline Bundle& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;} /** *

The bundle ID (e.g., micro_1_0).

*/ inline Bundle& WithBundleId(const char* value) { SetBundleId(value); return *this;} /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline Bundle& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline Bundle& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The Amazon EC2 instance type (e.g., t2.micro).

*/ inline Bundle& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

A Boolean value indicating whether the bundle is active.

*/ inline bool GetIsActive() const{ return m_isActive; } /** *

A Boolean value indicating whether the bundle is active.

*/ inline bool IsActiveHasBeenSet() const { return m_isActiveHasBeenSet; } /** *

A Boolean value indicating whether the bundle is active.

*/ inline void SetIsActive(bool value) { m_isActiveHasBeenSet = true; m_isActive = value; } /** *

A Boolean value indicating whether the bundle is active.

*/ inline Bundle& WithIsActive(bool value) { SetIsActive(value); return *this;} /** *

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A friendly name for the bundle (e.g., Micro).

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

A numeric value that represents the power of the bundle (e.g., * 500). You can use the bundle's power value in conjunction with a * blueprint's minimum power value to determine whether the blueprint will run on * the bundle. For example, you need a bundle with a power value of 500 or more to * create an instance that uses a blueprint with a minimum power value of 500.

*/ inline int GetPower() const{ return m_power; } /** *

A numeric value that represents the power of the bundle (e.g., * 500). You can use the bundle's power value in conjunction with a * blueprint's minimum power value to determine whether the blueprint will run on * the bundle. For example, you need a bundle with a power value of 500 or more to * create an instance that uses a blueprint with a minimum power value of 500.

*/ inline bool PowerHasBeenSet() const { return m_powerHasBeenSet; } /** *

A numeric value that represents the power of the bundle (e.g., * 500). You can use the bundle's power value in conjunction with a * blueprint's minimum power value to determine whether the blueprint will run on * the bundle. For example, you need a bundle with a power value of 500 or more to * create an instance that uses a blueprint with a minimum power value of 500.

*/ inline void SetPower(int value) { m_powerHasBeenSet = true; m_power = value; } /** *

A numeric value that represents the power of the bundle (e.g., * 500). You can use the bundle's power value in conjunction with a * blueprint's minimum power value to determine whether the blueprint will run on * the bundle. For example, you need a bundle with a power value of 500 or more to * create an instance that uses a blueprint with a minimum power value of 500.

*/ inline Bundle& WithPower(int value) { SetPower(value); return *this;} /** *

The amount of RAM in GB (e.g., 2.0).

*/ inline double GetRamSizeInGb() const{ return m_ramSizeInGb; } /** *

The amount of RAM in GB (e.g., 2.0).

*/ inline bool RamSizeInGbHasBeenSet() const { return m_ramSizeInGbHasBeenSet; } /** *

The amount of RAM in GB (e.g., 2.0).

*/ inline void SetRamSizeInGb(double value) { m_ramSizeInGbHasBeenSet = true; m_ramSizeInGb = value; } /** *

The amount of RAM in GB (e.g., 2.0).

*/ inline Bundle& WithRamSizeInGb(double value) { SetRamSizeInGb(value); return *this;} /** *

The data transfer rate per month in GB (e.g., 2000).

*/ inline int GetTransferPerMonthInGb() const{ return m_transferPerMonthInGb; } /** *

The data transfer rate per month in GB (e.g., 2000).

*/ inline bool TransferPerMonthInGbHasBeenSet() const { return m_transferPerMonthInGbHasBeenSet; } /** *

The data transfer rate per month in GB (e.g., 2000).

*/ inline void SetTransferPerMonthInGb(int value) { m_transferPerMonthInGbHasBeenSet = true; m_transferPerMonthInGb = value; } /** *

The data transfer rate per month in GB (e.g., 2000).

*/ inline Bundle& WithTransferPerMonthInGb(int value) { SetTransferPerMonthInGb(value); return *this;} /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline const Aws::Vector& GetSupportedPlatforms() const{ return m_supportedPlatforms; } /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline bool SupportedPlatformsHasBeenSet() const { return m_supportedPlatformsHasBeenSet; } /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline void SetSupportedPlatforms(const Aws::Vector& value) { m_supportedPlatformsHasBeenSet = true; m_supportedPlatforms = value; } /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline void SetSupportedPlatforms(Aws::Vector&& value) { m_supportedPlatformsHasBeenSet = true; m_supportedPlatforms = std::move(value); } /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline Bundle& WithSupportedPlatforms(const Aws::Vector& value) { SetSupportedPlatforms(value); return *this;} /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline Bundle& WithSupportedPlatforms(Aws::Vector&& value) { SetSupportedPlatforms(std::move(value)); return *this;} /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline Bundle& AddSupportedPlatforms(const InstancePlatform& value) { m_supportedPlatformsHasBeenSet = true; m_supportedPlatforms.push_back(value); return *this; } /** *

The operating system platform (Linux/Unix-based or Windows Server-based) that * the bundle supports. You can only launch a WINDOWS bundle on a * blueprint that supports the WINDOWS platform. * LINUX_UNIX blueprints require a LINUX_UNIX bundle.

*/ inline Bundle& AddSupportedPlatforms(InstancePlatform&& value) { m_supportedPlatformsHasBeenSet = true; m_supportedPlatforms.push_back(std::move(value)); return *this; } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline const Aws::Vector& GetSupportedAppCategories() const{ return m_supportedAppCategories; } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline bool SupportedAppCategoriesHasBeenSet() const { return m_supportedAppCategoriesHasBeenSet; } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline void SetSupportedAppCategories(const Aws::Vector& value) { m_supportedAppCategoriesHasBeenSet = true; m_supportedAppCategories = value; } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline void SetSupportedAppCategories(Aws::Vector&& value) { m_supportedAppCategoriesHasBeenSet = true; m_supportedAppCategories = std::move(value); } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline Bundle& WithSupportedAppCategories(const Aws::Vector& value) { SetSupportedAppCategories(value); return *this;} /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline Bundle& WithSupportedAppCategories(Aws::Vector&& value) { SetSupportedAppCategories(std::move(value)); return *this;} /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline Bundle& AddSupportedAppCategories(const AppCategory& value) { m_supportedAppCategoriesHasBeenSet = true; m_supportedAppCategories.push_back(value); return *this; } /** *

Virtual computer blueprints that are supported by a Lightsail for Research * bundle.

This parameter only applies to Lightsail for Research * resources.

*/ inline Bundle& AddSupportedAppCategories(AppCategory&& value) { m_supportedAppCategoriesHasBeenSet = true; m_supportedAppCategories.push_back(std::move(value)); return *this; } private: double m_price; bool m_priceHasBeenSet = false; int m_cpuCount; bool m_cpuCountHasBeenSet = false; int m_diskSizeInGb; bool m_diskSizeInGbHasBeenSet = false; Aws::String m_bundleId; bool m_bundleIdHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; bool m_isActive; bool m_isActiveHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; int m_power; bool m_powerHasBeenSet = false; double m_ramSizeInGb; bool m_ramSizeInGbHasBeenSet = false; int m_transferPerMonthInGb; bool m_transferPerMonthInGbHasBeenSet = false; Aws::Vector m_supportedPlatforms; bool m_supportedPlatformsHasBeenSet = false; Aws::Vector m_supportedAppCategories; bool m_supportedAppCategoriesHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws