7#include <aws/workspaces-instances/WorkspacesInstances_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSVector.h>
9#include <aws/workspaces-instances/model/CapacityReservationSpecification.h>
10#include <aws/workspaces-instances/model/CpuOptionsRequest.h>
11#include <aws/workspaces-instances/model/CreditSpecificationRequest.h>
12#include <aws/workspaces-instances/model/EnclaveOptionsRequest.h>
13#include <aws/workspaces-instances/model/HibernationOptionsRequest.h>
14#include <aws/workspaces-instances/model/IamInstanceProfileSpecification.h>
15#include <aws/core/utils/memory/stl/AWSString.h>
16#include <aws/workspaces-instances/model/InstanceMarketOptionsRequest.h>
17#include <aws/workspaces-instances/model/InstanceMaintenanceOptionsRequest.h>
18#include <aws/workspaces-instances/model/InstanceMetadataOptionsRequest.h>
19#include <aws/workspaces-instances/model/RunInstancesMonitoringEnabled.h>
20#include <aws/workspaces-instances/model/InstanceNetworkPerformanceOptionsRequest.h>
21#include <aws/workspaces-instances/model/Placement.h>
22#include <aws/workspaces-instances/model/PrivateDnsNameOptionsRequest.h>
23#include <aws/workspaces-instances/model/BlockDeviceMappingRequest.h>
24#include <aws/workspaces-instances/model/InstanceIpv6Address.h>
25#include <aws/workspaces-instances/model/LicenseConfigurationRequest.h>
26#include <aws/workspaces-instances/model/InstanceNetworkInterfaceSpecification.h>
27#include <aws/workspaces-instances/model/TagSpecification.h>
40namespace WorkspacesInstances
66 template<
typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMappingRequest>>
67 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet =
true; m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value); }
68 template<
typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMappingRequest>>
70 template<
typename BlockDeviceMappingsT = BlockDeviceMappingRequest>
80 template<
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
81 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) { m_capacityReservationSpecificationHasBeenSet =
true; m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value); }
82 template<
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
92 template<
typename CpuOptionsT = CpuOptionsRequest>
93 void SetCpuOptions(CpuOptionsT&& value) { m_cpuOptionsHasBeenSet =
true; m_cpuOptions = std::forward<CpuOptionsT>(value); }
94 template<
typename CpuOptionsT = CpuOptionsRequest>
104 template<
typename CreditSpecificationT = CreditSpecificationRequest>
105 void SetCreditSpecification(CreditSpecificationT&& value) { m_creditSpecificationHasBeenSet =
true; m_creditSpecification = std::forward<CreditSpecificationT>(value); }
106 template<
typename CreditSpecificationT = CreditSpecificationRequest>
116 inline void SetDisableApiStop(
bool value) { m_disableApiStopHasBeenSet =
true; m_disableApiStop = value; }
126 inline void SetEbsOptimized(
bool value) { m_ebsOptimizedHasBeenSet =
true; m_ebsOptimized = value; }
136 inline void SetEnablePrimaryIpv6(
bool value) { m_enablePrimaryIpv6HasBeenSet =
true; m_enablePrimaryIpv6 = value; }
146 template<
typename EnclaveOptionsT = EnclaveOptionsRequest>
147 void SetEnclaveOptions(EnclaveOptionsT&& value) { m_enclaveOptionsHasBeenSet =
true; m_enclaveOptions = std::forward<EnclaveOptionsT>(value); }
148 template<
typename EnclaveOptionsT = EnclaveOptionsRequest>
158 template<
typename HibernationOptionsT = HibernationOptionsRequest>
159 void SetHibernationOptions(HibernationOptionsT&& value) { m_hibernationOptionsHasBeenSet =
true; m_hibernationOptions = std::forward<HibernationOptionsT>(value); }
160 template<
typename HibernationOptionsT = HibernationOptionsRequest>
170 template<
typename IamInstanceProfileT = IamInstanceProfileSpecification>
171 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet =
true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
172 template<
typename IamInstanceProfileT = IamInstanceProfileSpecification>
182 template<
typename ImageIdT = Aws::String>
183 void SetImageId(ImageIdT&& value) { m_imageIdHasBeenSet =
true; m_imageId = std::forward<ImageIdT>(value); }
184 template<
typename ImageIdT = Aws::String>
194 template<
typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
195 void SetInstanceMarketOptions(InstanceMarketOptionsT&& value) { m_instanceMarketOptionsHasBeenSet =
true; m_instanceMarketOptions = std::forward<InstanceMarketOptionsT>(value); }
196 template<
typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
206 template<
typename InstanceTypeT = Aws::String>
207 void SetInstanceType(InstanceTypeT&& value) { m_instanceTypeHasBeenSet =
true; m_instanceType = std::forward<InstanceTypeT>(value); }
208 template<
typename InstanceTypeT = Aws::String>
218 template<
typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
219 void SetIpv6Addresses(Ipv6AddressesT&& value) { m_ipv6AddressesHasBeenSet =
true; m_ipv6Addresses = std::forward<Ipv6AddressesT>(value); }
220 template<
typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
222 template<
typename Ipv6AddressesT = InstanceIpv6Address>
232 inline void SetIpv6AddressCount(
int value) { m_ipv6AddressCountHasBeenSet =
true; m_ipv6AddressCount = value; }
242 template<
typename KernelIdT = Aws::String>
243 void SetKernelId(KernelIdT&& value) { m_kernelIdHasBeenSet =
true; m_kernelId = std::forward<KernelIdT>(value); }
244 template<
typename KernelIdT = Aws::String>
254 template<
typename KeyNameT = Aws::String>
255 void SetKeyName(KeyNameT&& value) { m_keyNameHasBeenSet =
true; m_keyName = std::forward<KeyNameT>(value); }
256 template<
typename KeyNameT = Aws::String>
266 template<
typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
267 void SetLicenseSpecifications(LicenseSpecificationsT&& value) { m_licenseSpecificationsHasBeenSet =
true; m_licenseSpecifications = std::forward<LicenseSpecificationsT>(value); }
268 template<
typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
270 template<
typename LicenseSpecificationsT = LicenseConfigurationRequest>
280 template<
typename Ma
intenanceOptionsT = InstanceMa
intenanceOptionsRequest>
281 void SetMaintenanceOptions(MaintenanceOptionsT&& value) { m_maintenanceOptionsHasBeenSet =
true; m_maintenanceOptions = std::forward<MaintenanceOptionsT>(value); }
282 template<
typename Ma
intenanceOptionsT = InstanceMa
intenanceOptionsRequest>
292 template<
typename MetadataOptionsT = InstanceMetadataOptionsRequest>
293 void SetMetadataOptions(MetadataOptionsT&& value) { m_metadataOptionsHasBeenSet =
true; m_metadataOptions = std::forward<MetadataOptionsT>(value); }
294 template<
typename MetadataOptionsT = InstanceMetadataOptionsRequest>
304 template<
typename MonitoringT = RunInstancesMonitoringEnabled>
305 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet =
true; m_monitoring = std::forward<MonitoringT>(value); }
306 template<
typename MonitoringT = RunInstancesMonitoringEnabled>
316 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
317 void SetNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet =
true; m_networkInterfaces = std::forward<NetworkInterfacesT>(value); }
318 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
320 template<
typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
330 template<
typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
331 void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) { m_networkPerformanceOptionsHasBeenSet =
true; m_networkPerformanceOptions = std::forward<NetworkPerformanceOptionsT>(value); }
332 template<
typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
342 template<
typename PlacementT = Placement>
343 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet =
true; m_placement = std::forward<PlacementT>(value); }
344 template<
typename PlacementT = Placement>
354 template<
typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
355 void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) { m_privateDnsNameOptionsHasBeenSet =
true; m_privateDnsNameOptions = std::forward<PrivateDnsNameOptionsT>(value); }
356 template<
typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
366 template<
typename PrivateIpAddressT = Aws::String>
367 void SetPrivateIpAddress(PrivateIpAddressT&& value) { m_privateIpAddressHasBeenSet =
true; m_privateIpAddress = std::forward<PrivateIpAddressT>(value); }
368 template<
typename PrivateIpAddressT = Aws::String>
378 template<
typename RamdiskIdT = Aws::String>
379 void SetRamdiskId(RamdiskIdT&& value) { m_ramdiskIdHasBeenSet =
true; m_ramdiskId = std::forward<RamdiskIdT>(value); }
380 template<
typename RamdiskIdT = Aws::String>
390 template<
typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
391 void SetSecurityGroupIds(SecurityGroupIdsT&& value) { m_securityGroupIdsHasBeenSet =
true; m_securityGroupIds = std::forward<SecurityGroupIdsT>(value); }
392 template<
typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
394 template<
typename SecurityGroupIdsT = Aws::String>
404 template<
typename SecurityGroupsT = Aws::Vector<Aws::String>>
405 void SetSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet =
true; m_securityGroups = std::forward<SecurityGroupsT>(value); }
406 template<
typename SecurityGroupsT = Aws::Vector<Aws::String>>
408 template<
typename SecurityGroupsT = Aws::String>
418 template<
typename SubnetIdT = Aws::String>
419 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet =
true; m_subnetId = std::forward<SubnetIdT>(value); }
420 template<
typename SubnetIdT = Aws::String>
430 template<
typename TagSpecificationsT = Aws::Vector<TagSpecification>>
431 void SetTagSpecifications(TagSpecificationsT&& value) { m_tagSpecificationsHasBeenSet =
true; m_tagSpecifications = std::forward<TagSpecificationsT>(value); }
432 template<
typename TagSpecificationsT = Aws::Vector<TagSpecification>>
434 template<
typename TagSpecificationsT = TagSpecification>
444 template<
typename UserDataT = Aws::String>
445 void SetUserData(UserDataT&& value) { m_userDataHasBeenSet =
true; m_userData = std::forward<UserDataT>(value); }
446 template<
typename UserDataT = Aws::String>
452 bool m_blockDeviceMappingsHasBeenSet =
false;
455 bool m_capacityReservationSpecificationHasBeenSet =
false;
458 bool m_cpuOptionsHasBeenSet =
false;
461 bool m_creditSpecificationHasBeenSet =
false;
463 bool m_disableApiStop{
false};
464 bool m_disableApiStopHasBeenSet =
false;
466 bool m_ebsOptimized{
false};
467 bool m_ebsOptimizedHasBeenSet =
false;
469 bool m_enablePrimaryIpv6{
false};
470 bool m_enablePrimaryIpv6HasBeenSet =
false;
472 EnclaveOptionsRequest m_enclaveOptions;
473 bool m_enclaveOptionsHasBeenSet =
false;
475 HibernationOptionsRequest m_hibernationOptions;
476 bool m_hibernationOptionsHasBeenSet =
false;
478 IamInstanceProfileSpecification m_iamInstanceProfile;
479 bool m_iamInstanceProfileHasBeenSet =
false;
482 bool m_imageIdHasBeenSet =
false;
484 InstanceMarketOptionsRequest m_instanceMarketOptions;
485 bool m_instanceMarketOptionsHasBeenSet =
false;
488 bool m_instanceTypeHasBeenSet =
false;
491 bool m_ipv6AddressesHasBeenSet =
false;
493 int m_ipv6AddressCount{0};
494 bool m_ipv6AddressCountHasBeenSet =
false;
497 bool m_kernelIdHasBeenSet =
false;
500 bool m_keyNameHasBeenSet =
false;
503 bool m_licenseSpecificationsHasBeenSet =
false;
505 InstanceMaintenanceOptionsRequest m_maintenanceOptions;
506 bool m_maintenanceOptionsHasBeenSet =
false;
508 InstanceMetadataOptionsRequest m_metadataOptions;
509 bool m_metadataOptionsHasBeenSet =
false;
511 RunInstancesMonitoringEnabled m_monitoring;
512 bool m_monitoringHasBeenSet =
false;
515 bool m_networkInterfacesHasBeenSet =
false;
517 InstanceNetworkPerformanceOptionsRequest m_networkPerformanceOptions;
518 bool m_networkPerformanceOptionsHasBeenSet =
false;
520 Placement m_placement;
521 bool m_placementHasBeenSet =
false;
523 PrivateDnsNameOptionsRequest m_privateDnsNameOptions;
524 bool m_privateDnsNameOptionsHasBeenSet =
false;
527 bool m_privateIpAddressHasBeenSet =
false;
530 bool m_ramdiskIdHasBeenSet =
false;
533 bool m_securityGroupIdsHasBeenSet =
false;
536 bool m_securityGroupsHasBeenSet =
false;
539 bool m_subnetIdHasBeenSet =
false;
542 bool m_tagSpecificationsHasBeenSet =
false;
545 bool m_userDataHasBeenSet =
false;
bool GetEbsOptimized() const
ManagedInstanceRequest & WithKernelId(KernelIdT &&value)
void SetDisableApiStop(bool value)
void SetEbsOptimized(bool value)
bool MetadataOptionsHasBeenSet() const
void SetRamdiskId(RamdiskIdT &&value)
ManagedInstanceRequest & WithSubnetId(SubnetIdT &&value)
bool Ipv6AddressCountHasBeenSet() const
ManagedInstanceRequest & WithDisableApiStop(bool value)
ManagedInstanceRequest & WithPrivateIpAddress(PrivateIpAddressT &&value)
void SetCreditSpecification(CreditSpecificationT &&value)
ManagedInstanceRequest & WithImageId(ImageIdT &&value)
void SetCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
ManagedInstanceRequest & AddIpv6Addresses(Ipv6AddressesT &&value)
void SetMetadataOptions(MetadataOptionsT &&value)
ManagedInstanceRequest & WithIpv6Addresses(Ipv6AddressesT &&value)
bool InstanceTypeHasBeenSet() const
const Aws::Vector< InstanceNetworkInterfaceSpecification > & GetNetworkInterfaces() const
bool CreditSpecificationHasBeenSet() const
void SetMonitoring(MonitoringT &&value)
bool TagSpecificationsHasBeenSet() const
const Aws::Vector< Aws::String > & GetSecurityGroupIds() const
ManagedInstanceRequest & WithMonitoring(MonitoringT &&value)
void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
const Aws::String & GetKeyName() const
void SetBlockDeviceMappings(BlockDeviceMappingsT &&value)
ManagedInstanceRequest & WithSecurityGroups(SecurityGroupsT &&value)
bool InstanceMarketOptionsHasBeenSet() const
AWS_WORKSPACESINSTANCES_API ManagedInstanceRequest()=default
const Aws::Vector< InstanceIpv6Address > & GetIpv6Addresses() const
void SetPlacement(PlacementT &&value)
ManagedInstanceRequest & WithPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
void SetSecurityGroups(SecurityGroupsT &&value)
bool KeyNameHasBeenSet() const
void SetKernelId(KernelIdT &&value)
void SetHibernationOptions(HibernationOptionsT &&value)
bool EbsOptimizedHasBeenSet() const
ManagedInstanceRequest & WithInstanceType(InstanceTypeT &&value)
ManagedInstanceRequest & WithIamInstanceProfile(IamInstanceProfileT &&value)
ManagedInstanceRequest & WithNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
bool DisableApiStopHasBeenSet() const
ManagedInstanceRequest & WithEnclaveOptions(EnclaveOptionsT &&value)
bool EnablePrimaryIpv6HasBeenSet() const
const CreditSpecificationRequest & GetCreditSpecification() const
void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
void SetUserData(UserDataT &&value)
bool SecurityGroupsHasBeenSet() const
const IamInstanceProfileSpecification & GetIamInstanceProfile() const
ManagedInstanceRequest & WithPlacement(PlacementT &&value)
bool HibernationOptionsHasBeenSet() const
const Aws::String & GetRamdiskId() const
void SetKeyName(KeyNameT &&value)
bool RamdiskIdHasBeenSet() const
void SetEnablePrimaryIpv6(bool value)
const Placement & GetPlacement() const
ManagedInstanceRequest & WithMaintenanceOptions(MaintenanceOptionsT &&value)
void SetEnclaveOptions(EnclaveOptionsT &&value)
void SetPrivateIpAddress(PrivateIpAddressT &&value)
const Aws::Vector< TagSpecification > & GetTagSpecifications() const
const Aws::String & GetUserData() const
bool SubnetIdHasBeenSet() const
const Aws::String & GetKernelId() const
bool PlacementHasBeenSet() const
bool NetworkPerformanceOptionsHasBeenSet() const
ManagedInstanceRequest & WithEbsOptimized(bool value)
void SetCpuOptions(CpuOptionsT &&value)
ManagedInstanceRequest & AddNetworkInterfaces(NetworkInterfacesT &&value)
bool BlockDeviceMappingsHasBeenSet() const
bool Ipv6AddressesHasBeenSet() const
const EnclaveOptionsRequest & GetEnclaveOptions() const
void SetInstanceType(InstanceTypeT &&value)
const Aws::Vector< BlockDeviceMappingRequest > & GetBlockDeviceMappings() const
ManagedInstanceRequest & WithKeyName(KeyNameT &&value)
void SetSecurityGroupIds(SecurityGroupIdsT &&value)
ManagedInstanceRequest & WithNetworkInterfaces(NetworkInterfacesT &&value)
const RunInstancesMonitoringEnabled & GetMonitoring() const
ManagedInstanceRequest & WithUserData(UserDataT &&value)
ManagedInstanceRequest & AddLicenseSpecifications(LicenseSpecificationsT &&value)
bool MaintenanceOptionsHasBeenSet() const
ManagedInstanceRequest & AddTagSpecifications(TagSpecificationsT &&value)
bool GetEnablePrimaryIpv6() const
bool MonitoringHasBeenSet() const
bool EnclaveOptionsHasBeenSet() const
ManagedInstanceRequest & WithRamdiskId(RamdiskIdT &&value)
void SetMaintenanceOptions(MaintenanceOptionsT &&value)
ManagedInstanceRequest & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
const Aws::String & GetImageId() const
ManagedInstanceRequest & AddSecurityGroupIds(SecurityGroupIdsT &&value)
bool NetworkInterfacesHasBeenSet() const
bool UserDataHasBeenSet() const
bool ImageIdHasBeenSet() const
ManagedInstanceRequest & WithEnablePrimaryIpv6(bool value)
const Aws::String & GetPrivateIpAddress() const
const Aws::Vector< LicenseConfigurationRequest > & GetLicenseSpecifications() const
void SetIpv6Addresses(Ipv6AddressesT &&value)
ManagedInstanceRequest & WithHibernationOptions(HibernationOptionsT &&value)
const InstanceMetadataOptionsRequest & GetMetadataOptions() const
bool CapacityReservationSpecificationHasBeenSet() const
const PrivateDnsNameOptionsRequest & GetPrivateDnsNameOptions() const
const Aws::Vector< Aws::String > & GetSecurityGroups() const
void SetIamInstanceProfile(IamInstanceProfileT &&value)
ManagedInstanceRequest & WithCpuOptions(CpuOptionsT &&value)
ManagedInstanceRequest & WithLicenseSpecifications(LicenseSpecificationsT &&value)
void SetIpv6AddressCount(int value)
const InstanceNetworkPerformanceOptionsRequest & GetNetworkPerformanceOptions() const
bool PrivateDnsNameOptionsHasBeenSet() const
ManagedInstanceRequest & WithCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
AWS_WORKSPACESINSTANCES_API ManagedInstanceRequest(Aws::Utils::Json::JsonView jsonValue)
const Aws::String & GetSubnetId() const
void SetLicenseSpecifications(LicenseSpecificationsT &&value)
bool IamInstanceProfileHasBeenSet() const
void SetInstanceMarketOptions(InstanceMarketOptionsT &&value)
const CapacityReservationSpecification & GetCapacityReservationSpecification() const
ManagedInstanceRequest & WithSecurityGroupIds(SecurityGroupIdsT &&value)
const InstanceMaintenanceOptionsRequest & GetMaintenanceOptions() const
const HibernationOptionsRequest & GetHibernationOptions() const
ManagedInstanceRequest & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
const InstanceMarketOptionsRequest & GetInstanceMarketOptions() const
bool KernelIdHasBeenSet() const
const Aws::String & GetInstanceType() const
AWS_WORKSPACESINSTANCES_API ManagedInstanceRequest & operator=(Aws::Utils::Json::JsonView jsonValue)
void SetTagSpecifications(TagSpecificationsT &&value)
ManagedInstanceRequest & WithIpv6AddressCount(int value)
bool PrivateIpAddressHasBeenSet() const
ManagedInstanceRequest & WithTagSpecifications(TagSpecificationsT &&value)
int GetIpv6AddressCount() const
ManagedInstanceRequest & AddSecurityGroups(SecurityGroupsT &&value)
ManagedInstanceRequest & WithInstanceMarketOptions(InstanceMarketOptionsT &&value)
bool LicenseSpecificationsHasBeenSet() const
bool CpuOptionsHasBeenSet() const
void SetImageId(ImageIdT &&value)
const CpuOptionsRequest & GetCpuOptions() const
bool SecurityGroupIdsHasBeenSet() const
void SetSubnetId(SubnetIdT &&value)
AWS_WORKSPACESINSTANCES_API Aws::Utils::Json::JsonValue Jsonize() const
bool GetDisableApiStop() const
ManagedInstanceRequest & WithCreditSpecification(CreditSpecificationT &&value)
ManagedInstanceRequest & WithMetadataOptions(MetadataOptionsT &&value)
void SetNetworkInterfaces(NetworkInterfacesT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue