1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/globalaccelerator/GlobalAccelerator_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/globalaccelerator/model/IpAddressType.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/globalaccelerator/model/CustomRoutingAcceleratorStatus.h> 12 #include <aws/core/utils/DateTime.h> 13 #include <aws/globalaccelerator/model/IpSet.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace Utils 19 { 20 namespace Json 21 { 22 class JsonValue; 23 class JsonView; 24 } // namespace Json 25 } // namespace Utils 26 namespace GlobalAccelerator 27 { 28 namespace Model 29 { 30 31 /** 32 * <p>Attributes of a custom routing accelerator.</p><p><h3>See Also:</h3> <a 33 * href="http://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/CustomRoutingAccelerator">AWS 34 * API Reference</a></p> 35 */ 36 class AWS_GLOBALACCELERATOR_API CustomRoutingAccelerator 37 { 38 public: 39 CustomRoutingAccelerator(); 40 CustomRoutingAccelerator(Aws::Utils::Json::JsonView jsonValue); 41 CustomRoutingAccelerator& operator=(Aws::Utils::Json::JsonView jsonValue); 42 Aws::Utils::Json::JsonValue Jsonize() const; 43 44 45 /** 46 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 47 */ GetAcceleratorArn()48 inline const Aws::String& GetAcceleratorArn() const{ return m_acceleratorArn; } 49 50 /** 51 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 52 */ AcceleratorArnHasBeenSet()53 inline bool AcceleratorArnHasBeenSet() const { return m_acceleratorArnHasBeenSet; } 54 55 /** 56 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 57 */ SetAcceleratorArn(const Aws::String & value)58 inline void SetAcceleratorArn(const Aws::String& value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn = value; } 59 60 /** 61 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 62 */ SetAcceleratorArn(Aws::String && value)63 inline void SetAcceleratorArn(Aws::String&& value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn = std::move(value); } 64 65 /** 66 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 67 */ SetAcceleratorArn(const char * value)68 inline void SetAcceleratorArn(const char* value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn.assign(value); } 69 70 /** 71 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 72 */ WithAcceleratorArn(const Aws::String & value)73 inline CustomRoutingAccelerator& WithAcceleratorArn(const Aws::String& value) { SetAcceleratorArn(value); return *this;} 74 75 /** 76 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 77 */ WithAcceleratorArn(Aws::String && value)78 inline CustomRoutingAccelerator& WithAcceleratorArn(Aws::String&& value) { SetAcceleratorArn(std::move(value)); return *this;} 79 80 /** 81 * <p>The Amazon Resource Name (ARN) of the custom routing accelerator.</p> 82 */ WithAcceleratorArn(const char * value)83 inline CustomRoutingAccelerator& WithAcceleratorArn(const char* value) { SetAcceleratorArn(value); return *this;} 84 85 86 /** 87 * <p>The name of the accelerator. The name must contain only alphanumeric 88 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 89 */ GetName()90 inline const Aws::String& GetName() const{ return m_name; } 91 92 /** 93 * <p>The name of the accelerator. The name must contain only alphanumeric 94 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 95 */ NameHasBeenSet()96 inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } 97 98 /** 99 * <p>The name of the accelerator. The name must contain only alphanumeric 100 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 101 */ SetName(const Aws::String & value)102 inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } 103 104 /** 105 * <p>The name of the accelerator. The name must contain only alphanumeric 106 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 107 */ SetName(Aws::String && value)108 inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } 109 110 /** 111 * <p>The name of the accelerator. The name must contain only alphanumeric 112 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 113 */ SetName(const char * value)114 inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } 115 116 /** 117 * <p>The name of the accelerator. The name must contain only alphanumeric 118 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 119 */ WithName(const Aws::String & value)120 inline CustomRoutingAccelerator& WithName(const Aws::String& value) { SetName(value); return *this;} 121 122 /** 123 * <p>The name of the accelerator. The name must contain only alphanumeric 124 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 125 */ WithName(Aws::String && value)126 inline CustomRoutingAccelerator& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} 127 128 /** 129 * <p>The name of the accelerator. The name must contain only alphanumeric 130 * characters or hyphens (-), and must not begin or end with a hyphen.</p> 131 */ WithName(const char * value)132 inline CustomRoutingAccelerator& WithName(const char* value) { SetName(value); return *this;} 133 134 135 /** 136 * <p>The value for the address type must be IPv4.</p> 137 */ GetIpAddressType()138 inline const IpAddressType& GetIpAddressType() const{ return m_ipAddressType; } 139 140 /** 141 * <p>The value for the address type must be IPv4.</p> 142 */ IpAddressTypeHasBeenSet()143 inline bool IpAddressTypeHasBeenSet() const { return m_ipAddressTypeHasBeenSet; } 144 145 /** 146 * <p>The value for the address type must be IPv4.</p> 147 */ SetIpAddressType(const IpAddressType & value)148 inline void SetIpAddressType(const IpAddressType& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = value; } 149 150 /** 151 * <p>The value for the address type must be IPv4.</p> 152 */ SetIpAddressType(IpAddressType && value)153 inline void SetIpAddressType(IpAddressType&& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = std::move(value); } 154 155 /** 156 * <p>The value for the address type must be IPv4.</p> 157 */ WithIpAddressType(const IpAddressType & value)158 inline CustomRoutingAccelerator& WithIpAddressType(const IpAddressType& value) { SetIpAddressType(value); return *this;} 159 160 /** 161 * <p>The value for the address type must be IPv4.</p> 162 */ WithIpAddressType(IpAddressType && value)163 inline CustomRoutingAccelerator& WithIpAddressType(IpAddressType&& value) { SetIpAddressType(std::move(value)); return *this;} 164 165 166 /** 167 * <p>Indicates whether the accelerator is enabled. The value is true or false. The 168 * default value is true. </p> <p>If the value is set to true, the accelerator 169 * cannot be deleted. If set to false, accelerator can be deleted.</p> 170 */ GetEnabled()171 inline bool GetEnabled() const{ return m_enabled; } 172 173 /** 174 * <p>Indicates whether the accelerator is enabled. The value is true or false. The 175 * default value is true. </p> <p>If the value is set to true, the accelerator 176 * cannot be deleted. If set to false, accelerator can be deleted.</p> 177 */ EnabledHasBeenSet()178 inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } 179 180 /** 181 * <p>Indicates whether the accelerator is enabled. The value is true or false. The 182 * default value is true. </p> <p>If the value is set to true, the accelerator 183 * cannot be deleted. If set to false, accelerator can be deleted.</p> 184 */ SetEnabled(bool value)185 inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } 186 187 /** 188 * <p>Indicates whether the accelerator is enabled. The value is true or false. The 189 * default value is true. </p> <p>If the value is set to true, the accelerator 190 * cannot be deleted. If set to false, accelerator can be deleted.</p> 191 */ WithEnabled(bool value)192 inline CustomRoutingAccelerator& WithEnabled(bool value) { SetEnabled(value); return *this;} 193 194 195 /** 196 * <p>The static IP addresses that Global Accelerator associates with the 197 * accelerator.</p> 198 */ GetIpSets()199 inline const Aws::Vector<IpSet>& GetIpSets() const{ return m_ipSets; } 200 201 /** 202 * <p>The static IP addresses that Global Accelerator associates with the 203 * accelerator.</p> 204 */ IpSetsHasBeenSet()205 inline bool IpSetsHasBeenSet() const { return m_ipSetsHasBeenSet; } 206 207 /** 208 * <p>The static IP addresses that Global Accelerator associates with the 209 * accelerator.</p> 210 */ SetIpSets(const Aws::Vector<IpSet> & value)211 inline void SetIpSets(const Aws::Vector<IpSet>& value) { m_ipSetsHasBeenSet = true; m_ipSets = value; } 212 213 /** 214 * <p>The static IP addresses that Global Accelerator associates with the 215 * accelerator.</p> 216 */ SetIpSets(Aws::Vector<IpSet> && value)217 inline void SetIpSets(Aws::Vector<IpSet>&& value) { m_ipSetsHasBeenSet = true; m_ipSets = std::move(value); } 218 219 /** 220 * <p>The static IP addresses that Global Accelerator associates with the 221 * accelerator.</p> 222 */ WithIpSets(const Aws::Vector<IpSet> & value)223 inline CustomRoutingAccelerator& WithIpSets(const Aws::Vector<IpSet>& value) { SetIpSets(value); return *this;} 224 225 /** 226 * <p>The static IP addresses that Global Accelerator associates with the 227 * accelerator.</p> 228 */ WithIpSets(Aws::Vector<IpSet> && value)229 inline CustomRoutingAccelerator& WithIpSets(Aws::Vector<IpSet>&& value) { SetIpSets(std::move(value)); return *this;} 230 231 /** 232 * <p>The static IP addresses that Global Accelerator associates with the 233 * accelerator.</p> 234 */ AddIpSets(const IpSet & value)235 inline CustomRoutingAccelerator& AddIpSets(const IpSet& value) { m_ipSetsHasBeenSet = true; m_ipSets.push_back(value); return *this; } 236 237 /** 238 * <p>The static IP addresses that Global Accelerator associates with the 239 * accelerator.</p> 240 */ AddIpSets(IpSet && value)241 inline CustomRoutingAccelerator& AddIpSets(IpSet&& value) { m_ipSetsHasBeenSet = true; m_ipSets.push_back(std::move(value)); return *this; } 242 243 244 /** 245 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 246 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 247 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 248 * string, followed by .awsglobalaccelerator.com. For example: 249 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 250 * the default DNS name, see <a 251 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 252 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 253 * Accelerator Developer Guide</i>.</p> 254 */ GetDnsName()255 inline const Aws::String& GetDnsName() const{ return m_dnsName; } 256 257 /** 258 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 259 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 260 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 261 * string, followed by .awsglobalaccelerator.com. For example: 262 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 263 * the default DNS name, see <a 264 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 265 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 266 * Accelerator Developer Guide</i>.</p> 267 */ DnsNameHasBeenSet()268 inline bool DnsNameHasBeenSet() const { return m_dnsNameHasBeenSet; } 269 270 /** 271 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 272 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 273 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 274 * string, followed by .awsglobalaccelerator.com. For example: 275 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 276 * the default DNS name, see <a 277 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 278 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 279 * Accelerator Developer Guide</i>.</p> 280 */ SetDnsName(const Aws::String & value)281 inline void SetDnsName(const Aws::String& value) { m_dnsNameHasBeenSet = true; m_dnsName = value; } 282 283 /** 284 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 285 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 286 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 287 * string, followed by .awsglobalaccelerator.com. For example: 288 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 289 * the default DNS name, see <a 290 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 291 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 292 * Accelerator Developer Guide</i>.</p> 293 */ SetDnsName(Aws::String && value)294 inline void SetDnsName(Aws::String&& value) { m_dnsNameHasBeenSet = true; m_dnsName = std::move(value); } 295 296 /** 297 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 298 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 299 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 300 * string, followed by .awsglobalaccelerator.com. For example: 301 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 302 * the default DNS name, see <a 303 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 304 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 305 * Accelerator Developer Guide</i>.</p> 306 */ SetDnsName(const char * value)307 inline void SetDnsName(const char* value) { m_dnsNameHasBeenSet = true; m_dnsName.assign(value); } 308 309 /** 310 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 311 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 312 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 313 * string, followed by .awsglobalaccelerator.com. For example: 314 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 315 * the default DNS name, see <a 316 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 317 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 318 * Accelerator Developer Guide</i>.</p> 319 */ WithDnsName(const Aws::String & value)320 inline CustomRoutingAccelerator& WithDnsName(const Aws::String& value) { SetDnsName(value); return *this;} 321 322 /** 323 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 324 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 325 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 326 * string, followed by .awsglobalaccelerator.com. For example: 327 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 328 * the default DNS name, see <a 329 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 330 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 331 * Accelerator Developer Guide</i>.</p> 332 */ WithDnsName(Aws::String && value)333 inline CustomRoutingAccelerator& WithDnsName(Aws::String&& value) { SetDnsName(std::move(value)); return *this;} 334 335 /** 336 * <p>The Domain Name System (DNS) name that Global Accelerator creates that points 337 * to your accelerator's static IP addresses. </p> <p>The naming convention for the 338 * DNS name is the following: A lowercase letter a, followed by a 16-bit random hex 339 * string, followed by .awsglobalaccelerator.com. For example: 340 * a1234567890abcdef.awsglobalaccelerator.com.</p> <p>For more information about 341 * the default DNS name, see <a 342 * href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> 343 * Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global 344 * Accelerator Developer Guide</i>.</p> 345 */ WithDnsName(const char * value)346 inline CustomRoutingAccelerator& WithDnsName(const char* value) { SetDnsName(value); return *this;} 347 348 349 /** 350 * <p>Describes the deployment status of the accelerator.</p> 351 */ GetStatus()352 inline const CustomRoutingAcceleratorStatus& GetStatus() const{ return m_status; } 353 354 /** 355 * <p>Describes the deployment status of the accelerator.</p> 356 */ StatusHasBeenSet()357 inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } 358 359 /** 360 * <p>Describes the deployment status of the accelerator.</p> 361 */ SetStatus(const CustomRoutingAcceleratorStatus & value)362 inline void SetStatus(const CustomRoutingAcceleratorStatus& value) { m_statusHasBeenSet = true; m_status = value; } 363 364 /** 365 * <p>Describes the deployment status of the accelerator.</p> 366 */ SetStatus(CustomRoutingAcceleratorStatus && value)367 inline void SetStatus(CustomRoutingAcceleratorStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } 368 369 /** 370 * <p>Describes the deployment status of the accelerator.</p> 371 */ WithStatus(const CustomRoutingAcceleratorStatus & value)372 inline CustomRoutingAccelerator& WithStatus(const CustomRoutingAcceleratorStatus& value) { SetStatus(value); return *this;} 373 374 /** 375 * <p>Describes the deployment status of the accelerator.</p> 376 */ WithStatus(CustomRoutingAcceleratorStatus && value)377 inline CustomRoutingAccelerator& WithStatus(CustomRoutingAcceleratorStatus&& value) { SetStatus(std::move(value)); return *this;} 378 379 380 /** 381 * <p>The date and time that the accelerator was created.</p> 382 */ GetCreatedTime()383 inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; } 384 385 /** 386 * <p>The date and time that the accelerator was created.</p> 387 */ CreatedTimeHasBeenSet()388 inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; } 389 390 /** 391 * <p>The date and time that the accelerator was created.</p> 392 */ SetCreatedTime(const Aws::Utils::DateTime & value)393 inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; } 394 395 /** 396 * <p>The date and time that the accelerator was created.</p> 397 */ SetCreatedTime(Aws::Utils::DateTime && value)398 inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); } 399 400 /** 401 * <p>The date and time that the accelerator was created.</p> 402 */ WithCreatedTime(const Aws::Utils::DateTime & value)403 inline CustomRoutingAccelerator& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;} 404 405 /** 406 * <p>The date and time that the accelerator was created.</p> 407 */ WithCreatedTime(Aws::Utils::DateTime && value)408 inline CustomRoutingAccelerator& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;} 409 410 411 /** 412 * <p>The date and time that the accelerator was last modified.</p> 413 */ GetLastModifiedTime()414 inline const Aws::Utils::DateTime& GetLastModifiedTime() const{ return m_lastModifiedTime; } 415 416 /** 417 * <p>The date and time that the accelerator was last modified.</p> 418 */ LastModifiedTimeHasBeenSet()419 inline bool LastModifiedTimeHasBeenSet() const { return m_lastModifiedTimeHasBeenSet; } 420 421 /** 422 * <p>The date and time that the accelerator was last modified.</p> 423 */ SetLastModifiedTime(const Aws::Utils::DateTime & value)424 inline void SetLastModifiedTime(const Aws::Utils::DateTime& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = value; } 425 426 /** 427 * <p>The date and time that the accelerator was last modified.</p> 428 */ SetLastModifiedTime(Aws::Utils::DateTime && value)429 inline void SetLastModifiedTime(Aws::Utils::DateTime&& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = std::move(value); } 430 431 /** 432 * <p>The date and time that the accelerator was last modified.</p> 433 */ WithLastModifiedTime(const Aws::Utils::DateTime & value)434 inline CustomRoutingAccelerator& WithLastModifiedTime(const Aws::Utils::DateTime& value) { SetLastModifiedTime(value); return *this;} 435 436 /** 437 * <p>The date and time that the accelerator was last modified.</p> 438 */ WithLastModifiedTime(Aws::Utils::DateTime && value)439 inline CustomRoutingAccelerator& WithLastModifiedTime(Aws::Utils::DateTime&& value) { SetLastModifiedTime(std::move(value)); return *this;} 440 441 private: 442 443 Aws::String m_acceleratorArn; 444 bool m_acceleratorArnHasBeenSet; 445 446 Aws::String m_name; 447 bool m_nameHasBeenSet; 448 449 IpAddressType m_ipAddressType; 450 bool m_ipAddressTypeHasBeenSet; 451 452 bool m_enabled; 453 bool m_enabledHasBeenSet; 454 455 Aws::Vector<IpSet> m_ipSets; 456 bool m_ipSetsHasBeenSet; 457 458 Aws::String m_dnsName; 459 bool m_dnsNameHasBeenSet; 460 461 CustomRoutingAcceleratorStatus m_status; 462 bool m_statusHasBeenSet; 463 464 Aws::Utils::DateTime m_createdTime; 465 bool m_createdTimeHasBeenSet; 466 467 Aws::Utils::DateTime m_lastModifiedTime; 468 bool m_lastModifiedTimeHasBeenSet; 469 }; 470 471 } // namespace Model 472 } // namespace GlobalAccelerator 473 } // namespace Aws 474