/** * 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 #include namespace Aws { namespace EC2 { namespace Model { /** */ class ModifyHostsRequest : public EC2Request { public: AWS_EC2_API ModifyHostsRequest(); // 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 "ModifyHosts"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

Specify whether to enable or disable auto-placement.

*/ inline const AutoPlacement& GetAutoPlacement() const{ return m_autoPlacement; } /** *

Specify whether to enable or disable auto-placement.

*/ inline bool AutoPlacementHasBeenSet() const { return m_autoPlacementHasBeenSet; } /** *

Specify whether to enable or disable auto-placement.

*/ inline void SetAutoPlacement(const AutoPlacement& value) { m_autoPlacementHasBeenSet = true; m_autoPlacement = value; } /** *

Specify whether to enable or disable auto-placement.

*/ inline void SetAutoPlacement(AutoPlacement&& value) { m_autoPlacementHasBeenSet = true; m_autoPlacement = std::move(value); } /** *

Specify whether to enable or disable auto-placement.

*/ inline ModifyHostsRequest& WithAutoPlacement(const AutoPlacement& value) { SetAutoPlacement(value); return *this;} /** *

Specify whether to enable or disable auto-placement.

*/ inline ModifyHostsRequest& WithAutoPlacement(AutoPlacement&& value) { SetAutoPlacement(std::move(value)); return *this;} /** *

The IDs of the Dedicated Hosts to modify.

*/ inline const Aws::Vector& GetHostIds() const{ return m_hostIds; } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline bool HostIdsHasBeenSet() const { return m_hostIdsHasBeenSet; } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline void SetHostIds(const Aws::Vector& value) { m_hostIdsHasBeenSet = true; m_hostIds = value; } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline void SetHostIds(Aws::Vector&& value) { m_hostIdsHasBeenSet = true; m_hostIds = std::move(value); } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline ModifyHostsRequest& WithHostIds(const Aws::Vector& value) { SetHostIds(value); return *this;} /** *

The IDs of the Dedicated Hosts to modify.

*/ inline ModifyHostsRequest& WithHostIds(Aws::Vector&& value) { SetHostIds(std::move(value)); return *this;} /** *

The IDs of the Dedicated Hosts to modify.

*/ inline ModifyHostsRequest& AddHostIds(const Aws::String& value) { m_hostIdsHasBeenSet = true; m_hostIds.push_back(value); return *this; } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline ModifyHostsRequest& AddHostIds(Aws::String&& value) { m_hostIdsHasBeenSet = true; m_hostIds.push_back(std::move(value)); return *this; } /** *

The IDs of the Dedicated Hosts to modify.

*/ inline ModifyHostsRequest& AddHostIds(const char* value) { m_hostIdsHasBeenSet = true; m_hostIds.push_back(value); return *this; } /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline const HostRecovery& GetHostRecovery() const{ return m_hostRecovery; } /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline bool HostRecoveryHasBeenSet() const { return m_hostRecoveryHasBeenSet; } /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline void SetHostRecovery(const HostRecovery& value) { m_hostRecoveryHasBeenSet = true; m_hostRecovery = value; } /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline void SetHostRecovery(HostRecovery&& value) { m_hostRecoveryHasBeenSet = true; m_hostRecovery = std::move(value); } /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline ModifyHostsRequest& WithHostRecovery(const HostRecovery& value) { SetHostRecovery(value); return *this;} /** *

Indicates whether to enable or disable host recovery for the Dedicated Host. * For more information, see * Host recovery in the Amazon EC2 User Guide.

*/ inline ModifyHostsRequest& WithHostRecovery(HostRecovery&& value) { SetHostRecovery(std::move(value)); return *this;} /** *

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance type to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support only a specific instance * type.

If you want to modify a Dedicated Host to support multiple instance * types in its current instance family, omit this parameter and specify * InstanceFamily instead. You cannot specify InstanceType and * InstanceFamily in the same request.

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

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline const Aws::String& GetInstanceFamily() const{ return m_instanceFamily; } /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline bool InstanceFamilyHasBeenSet() const { return m_instanceFamilyHasBeenSet; } /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline void SetInstanceFamily(const Aws::String& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = value; } /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline void SetInstanceFamily(Aws::String&& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = std::move(value); } /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline void SetInstanceFamily(const char* value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily.assign(value); } /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline ModifyHostsRequest& WithInstanceFamily(const Aws::String& value) { SetInstanceFamily(value); return *this;} /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline ModifyHostsRequest& WithInstanceFamily(Aws::String&& value) { SetInstanceFamily(std::move(value)); return *this;} /** *

Specifies the instance family to be supported by the Dedicated Host. Specify * this parameter to modify a Dedicated Host to support multiple instance types * within its current instance family.

If you want to modify a Dedicated * Host to support a specific instance type only, omit this parameter and specify * InstanceType instead. You cannot specify InstanceFamily and * InstanceType in the same request.

*/ inline ModifyHostsRequest& WithInstanceFamily(const char* value) { SetInstanceFamily(value); return *this;} /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline const HostMaintenance& GetHostMaintenance() const{ return m_hostMaintenance; } /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline bool HostMaintenanceHasBeenSet() const { return m_hostMaintenanceHasBeenSet; } /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline void SetHostMaintenance(const HostMaintenance& value) { m_hostMaintenanceHasBeenSet = true; m_hostMaintenance = value; } /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline void SetHostMaintenance(HostMaintenance&& value) { m_hostMaintenanceHasBeenSet = true; m_hostMaintenance = std::move(value); } /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline ModifyHostsRequest& WithHostMaintenance(const HostMaintenance& value) { SetHostMaintenance(value); return *this;} /** *

Indicates whether to enable or disable host maintenance for the Dedicated * Host. For more information, see * Host maintenance in the Amazon EC2 User Guide.

*/ inline ModifyHostsRequest& WithHostMaintenance(HostMaintenance&& value) { SetHostMaintenance(std::move(value)); return *this;} private: AutoPlacement m_autoPlacement; bool m_autoPlacementHasBeenSet = false; Aws::Vector m_hostIds; bool m_hostIdsHasBeenSet = false; HostRecovery m_hostRecovery; bool m_hostRecoveryHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_instanceFamily; bool m_instanceFamilyHasBeenSet = false; HostMaintenance m_hostMaintenance; bool m_hostMaintenanceHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws