/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the configuration settings for the modified Reserved * Instances.

See Also:

AWS * API Reference

*/ class ReservedInstancesConfiguration { public: AWS_EC2_API ReservedInstancesConfiguration(); AWS_EC2_API ReservedInstancesConfiguration(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ReservedInstancesConfiguration& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The Availability Zone for the modified Reserved Instances.

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

The number of modified Reserved Instances.

This is a required * field for a request.

*/ inline int GetInstanceCount() const{ return m_instanceCount; } /** *

The number of modified Reserved Instances.

This is a required * field for a request.

*/ inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } /** *

The number of modified Reserved Instances.

This is a required * field for a request.

*/ inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } /** *

The number of modified Reserved Instances.

This is a required * field for a request.

*/ inline ReservedInstancesConfiguration& WithInstanceCount(int value) { SetInstanceCount(value); return *this;} /** *

The instance type for the modified Reserved Instances.

*/ inline const InstanceType& GetInstanceType() const{ return m_instanceType; } /** *

The instance type for the modified Reserved Instances.

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

The instance type for the modified Reserved Instances.

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

The instance type for the modified Reserved Instances.

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

The instance type for the modified Reserved Instances.

*/ inline ReservedInstancesConfiguration& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type for the modified Reserved Instances.

*/ inline ReservedInstancesConfiguration& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The network platform of the modified Reserved Instances.

*/ inline const Aws::String& GetPlatform() const{ return m_platform; } /** *

The network platform of the modified Reserved Instances.

*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *

The network platform of the modified Reserved Instances.

*/ inline void SetPlatform(const Aws::String& value) { m_platformHasBeenSet = true; m_platform = value; } /** *

The network platform of the modified Reserved Instances.

*/ inline void SetPlatform(Aws::String&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *

The network platform of the modified Reserved Instances.

*/ inline void SetPlatform(const char* value) { m_platformHasBeenSet = true; m_platform.assign(value); } /** *

The network platform of the modified Reserved Instances.

*/ inline ReservedInstancesConfiguration& WithPlatform(const Aws::String& value) { SetPlatform(value); return *this;} /** *

The network platform of the modified Reserved Instances.

*/ inline ReservedInstancesConfiguration& WithPlatform(Aws::String&& value) { SetPlatform(std::move(value)); return *this;} /** *

The network platform of the modified Reserved Instances.

*/ inline ReservedInstancesConfiguration& WithPlatform(const char* value) { SetPlatform(value); return *this;} /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline const Scope& GetScope() const{ return m_scope; } /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; } /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline void SetScope(const Scope& value) { m_scopeHasBeenSet = true; m_scope = value; } /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline void SetScope(Scope&& value) { m_scopeHasBeenSet = true; m_scope = std::move(value); } /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline ReservedInstancesConfiguration& WithScope(const Scope& value) { SetScope(value); return *this;} /** *

Whether the Reserved Instance is applied to instances in a Region or * instances in a specific Availability Zone.

*/ inline ReservedInstancesConfiguration& WithScope(Scope&& value) { SetScope(std::move(value)); return *this;} private: Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; int m_instanceCount; bool m_instanceCountHasBeenSet = false; InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_platform; bool m_platformHasBeenSet = false; Scope m_scope; bool m_scopeHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws