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/route53resolver/Route53Resolver_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/route53resolver/model/ResolverEndpointDirection.h> 11 #include <aws/route53resolver/model/ResolverEndpointStatus.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace Route53Resolver 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>In the response to a <a 31 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a>, 32 * <a 33 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverEndpoint.html">DeleteResolverEndpoint</a>, 34 * <a 35 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>, 36 * <a 37 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html">ListResolverEndpoints</a>, 38 * or <a 39 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html">UpdateResolverEndpoint</a> 40 * request, a complex type that contains settings for an existing inbound or 41 * outbound Resolver endpoint.</p><p><h3>See Also:</h3> <a 42 * href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ResolverEndpoint">AWS 43 * API Reference</a></p> 44 */ 45 class AWS_ROUTE53RESOLVER_API ResolverEndpoint 46 { 47 public: 48 ResolverEndpoint(); 49 ResolverEndpoint(Aws::Utils::Json::JsonView jsonValue); 50 ResolverEndpoint& operator=(Aws::Utils::Json::JsonView jsonValue); 51 Aws::Utils::Json::JsonValue Jsonize() const; 52 53 54 /** 55 * <p>The ID of the Resolver endpoint.</p> 56 */ GetId()57 inline const Aws::String& GetId() const{ return m_id; } 58 59 /** 60 * <p>The ID of the Resolver endpoint.</p> 61 */ IdHasBeenSet()62 inline bool IdHasBeenSet() const { return m_idHasBeenSet; } 63 64 /** 65 * <p>The ID of the Resolver endpoint.</p> 66 */ SetId(const Aws::String & value)67 inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } 68 69 /** 70 * <p>The ID of the Resolver endpoint.</p> 71 */ SetId(Aws::String && value)72 inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } 73 74 /** 75 * <p>The ID of the Resolver endpoint.</p> 76 */ SetId(const char * value)77 inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } 78 79 /** 80 * <p>The ID of the Resolver endpoint.</p> 81 */ WithId(const Aws::String & value)82 inline ResolverEndpoint& WithId(const Aws::String& value) { SetId(value); return *this;} 83 84 /** 85 * <p>The ID of the Resolver endpoint.</p> 86 */ WithId(Aws::String && value)87 inline ResolverEndpoint& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} 88 89 /** 90 * <p>The ID of the Resolver endpoint.</p> 91 */ WithId(const char * value)92 inline ResolverEndpoint& WithId(const char* value) { SetId(value); return *this;} 93 94 95 /** 96 * <p>A unique string that identifies the request that created the Resolver 97 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 98 * without the risk of running the operation twice.</p> 99 */ GetCreatorRequestId()100 inline const Aws::String& GetCreatorRequestId() const{ return m_creatorRequestId; } 101 102 /** 103 * <p>A unique string that identifies the request that created the Resolver 104 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 105 * without the risk of running the operation twice.</p> 106 */ CreatorRequestIdHasBeenSet()107 inline bool CreatorRequestIdHasBeenSet() const { return m_creatorRequestIdHasBeenSet; } 108 109 /** 110 * <p>A unique string that identifies the request that created the Resolver 111 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 112 * without the risk of running the operation twice.</p> 113 */ SetCreatorRequestId(const Aws::String & value)114 inline void SetCreatorRequestId(const Aws::String& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = value; } 115 116 /** 117 * <p>A unique string that identifies the request that created the Resolver 118 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 119 * without the risk of running the operation twice.</p> 120 */ SetCreatorRequestId(Aws::String && value)121 inline void SetCreatorRequestId(Aws::String&& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = std::move(value); } 122 123 /** 124 * <p>A unique string that identifies the request that created the Resolver 125 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 126 * without the risk of running the operation twice.</p> 127 */ SetCreatorRequestId(const char * value)128 inline void SetCreatorRequestId(const char* value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId.assign(value); } 129 130 /** 131 * <p>A unique string that identifies the request that created the Resolver 132 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 133 * without the risk of running the operation twice.</p> 134 */ WithCreatorRequestId(const Aws::String & value)135 inline ResolverEndpoint& WithCreatorRequestId(const Aws::String& value) { SetCreatorRequestId(value); return *this;} 136 137 /** 138 * <p>A unique string that identifies the request that created the Resolver 139 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 140 * without the risk of running the operation twice.</p> 141 */ WithCreatorRequestId(Aws::String && value)142 inline ResolverEndpoint& WithCreatorRequestId(Aws::String&& value) { SetCreatorRequestId(std::move(value)); return *this;} 143 144 /** 145 * <p>A unique string that identifies the request that created the Resolver 146 * endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried 147 * without the risk of running the operation twice.</p> 148 */ WithCreatorRequestId(const char * value)149 inline ResolverEndpoint& WithCreatorRequestId(const char* value) { SetCreatorRequestId(value); return *this;} 150 151 152 /** 153 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 154 */ GetArn()155 inline const Aws::String& GetArn() const{ return m_arn; } 156 157 /** 158 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 159 */ ArnHasBeenSet()160 inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } 161 162 /** 163 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 164 */ SetArn(const Aws::String & value)165 inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } 166 167 /** 168 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 169 */ SetArn(Aws::String && value)170 inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } 171 172 /** 173 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 174 */ SetArn(const char * value)175 inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } 176 177 /** 178 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 179 */ WithArn(const Aws::String & value)180 inline ResolverEndpoint& WithArn(const Aws::String& value) { SetArn(value); return *this;} 181 182 /** 183 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 184 */ WithArn(Aws::String && value)185 inline ResolverEndpoint& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} 186 187 /** 188 * <p>The ARN (Amazon Resource Name) for the Resolver endpoint.</p> 189 */ WithArn(const char * value)190 inline ResolverEndpoint& WithArn(const char* value) { SetArn(value); return *this;} 191 192 193 /** 194 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 195 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 196 * request.</p> 197 */ GetName()198 inline const Aws::String& GetName() const{ return m_name; } 199 200 /** 201 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 202 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 203 * request.</p> 204 */ NameHasBeenSet()205 inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } 206 207 /** 208 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 209 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 210 * request.</p> 211 */ SetName(const Aws::String & value)212 inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } 213 214 /** 215 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 216 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 217 * request.</p> 218 */ SetName(Aws::String && value)219 inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } 220 221 /** 222 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 223 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 224 * request.</p> 225 */ SetName(const char * value)226 inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } 227 228 /** 229 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 230 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 231 * request.</p> 232 */ WithName(const Aws::String & value)233 inline ResolverEndpoint& WithName(const Aws::String& value) { SetName(value); return *this;} 234 235 /** 236 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 237 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 238 * request.</p> 239 */ WithName(Aws::String && value)240 inline ResolverEndpoint& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} 241 242 /** 243 * <p>The name that you assigned to the Resolver endpoint when you submitted a <a 244 * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> 245 * request.</p> 246 */ WithName(const char * value)247 inline ResolverEndpoint& WithName(const char* value) { SetName(value); return *this;} 248 249 250 /** 251 * <p>The ID of one or more security groups that control access to this VPC. The 252 * security group must include one or more inbound rules (for inbound endpoints) or 253 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 254 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 255 * the port that you're using for DNS queries on your network.</p> 256 */ GetSecurityGroupIds()257 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; } 258 259 /** 260 * <p>The ID of one or more security groups that control access to this VPC. The 261 * security group must include one or more inbound rules (for inbound endpoints) or 262 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 263 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 264 * the port that you're using for DNS queries on your network.</p> 265 */ SecurityGroupIdsHasBeenSet()266 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } 267 268 /** 269 * <p>The ID of one or more security groups that control access to this VPC. The 270 * security group must include one or more inbound rules (for inbound endpoints) or 271 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 272 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 273 * the port that you're using for DNS queries on your network.</p> 274 */ SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)275 inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } 276 277 /** 278 * <p>The ID of one or more security groups that control access to this VPC. The 279 * security group must include one or more inbound rules (for inbound endpoints) or 280 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 281 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 282 * the port that you're using for DNS queries on your network.</p> 283 */ SetSecurityGroupIds(Aws::Vector<Aws::String> && value)284 inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } 285 286 /** 287 * <p>The ID of one or more security groups that control access to this VPC. The 288 * security group must include one or more inbound rules (for inbound endpoints) or 289 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 290 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 291 * the port that you're using for DNS queries on your network.</p> 292 */ WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)293 inline ResolverEndpoint& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;} 294 295 /** 296 * <p>The ID of one or more security groups that control access to this VPC. The 297 * security group must include one or more inbound rules (for inbound endpoints) or 298 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 299 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 300 * the port that you're using for DNS queries on your network.</p> 301 */ WithSecurityGroupIds(Aws::Vector<Aws::String> && value)302 inline ResolverEndpoint& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;} 303 304 /** 305 * <p>The ID of one or more security groups that control access to this VPC. The 306 * security group must include one or more inbound rules (for inbound endpoints) or 307 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 308 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 309 * the port that you're using for DNS queries on your network.</p> 310 */ AddSecurityGroupIds(const Aws::String & value)311 inline ResolverEndpoint& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 312 313 /** 314 * <p>The ID of one or more security groups that control access to this VPC. The 315 * security group must include one or more inbound rules (for inbound endpoints) or 316 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 317 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 318 * the port that you're using for DNS queries on your network.</p> 319 */ AddSecurityGroupIds(Aws::String && value)320 inline ResolverEndpoint& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } 321 322 /** 323 * <p>The ID of one or more security groups that control access to this VPC. The 324 * security group must include one or more inbound rules (for inbound endpoints) or 325 * outbound rules (for outbound endpoints). Inbound and outbound rules must allow 326 * TCP and UDP access. For inbound access, open port 53. For outbound access, open 327 * the port that you're using for DNS queries on your network.</p> 328 */ AddSecurityGroupIds(const char * value)329 inline ResolverEndpoint& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 330 331 332 /** 333 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 334 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 335 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 336 * from your VPC to your network</p> </li> </ul> 337 */ GetDirection()338 inline const ResolverEndpointDirection& GetDirection() const{ return m_direction; } 339 340 /** 341 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 342 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 343 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 344 * from your VPC to your network</p> </li> </ul> 345 */ DirectionHasBeenSet()346 inline bool DirectionHasBeenSet() const { return m_directionHasBeenSet; } 347 348 /** 349 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 350 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 351 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 352 * from your VPC to your network</p> </li> </ul> 353 */ SetDirection(const ResolverEndpointDirection & value)354 inline void SetDirection(const ResolverEndpointDirection& value) { m_directionHasBeenSet = true; m_direction = value; } 355 356 /** 357 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 358 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 359 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 360 * from your VPC to your network</p> </li> </ul> 361 */ SetDirection(ResolverEndpointDirection && value)362 inline void SetDirection(ResolverEndpointDirection&& value) { m_directionHasBeenSet = true; m_direction = std::move(value); } 363 364 /** 365 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 366 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 367 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 368 * from your VPC to your network</p> </li> </ul> 369 */ WithDirection(const ResolverEndpointDirection & value)370 inline ResolverEndpoint& WithDirection(const ResolverEndpointDirection& value) { SetDirection(value); return *this;} 371 372 /** 373 * <p>Indicates whether the Resolver endpoint allows inbound or outbound DNS 374 * queries:</p> <ul> <li> <p> <code>INBOUND</code>: allows DNS queries to your VPC 375 * from your network</p> </li> <li> <p> <code>OUTBOUND</code>: allows DNS queries 376 * from your VPC to your network</p> </li> </ul> 377 */ WithDirection(ResolverEndpointDirection && value)378 inline ResolverEndpoint& WithDirection(ResolverEndpointDirection&& value) { SetDirection(std::move(value)); return *this;} 379 380 381 /** 382 * <p>The number of IP addresses that the Resolver endpoint can use for DNS 383 * queries.</p> 384 */ GetIpAddressCount()385 inline int GetIpAddressCount() const{ return m_ipAddressCount; } 386 387 /** 388 * <p>The number of IP addresses that the Resolver endpoint can use for DNS 389 * queries.</p> 390 */ IpAddressCountHasBeenSet()391 inline bool IpAddressCountHasBeenSet() const { return m_ipAddressCountHasBeenSet; } 392 393 /** 394 * <p>The number of IP addresses that the Resolver endpoint can use for DNS 395 * queries.</p> 396 */ SetIpAddressCount(int value)397 inline void SetIpAddressCount(int value) { m_ipAddressCountHasBeenSet = true; m_ipAddressCount = value; } 398 399 /** 400 * <p>The number of IP addresses that the Resolver endpoint can use for DNS 401 * queries.</p> 402 */ WithIpAddressCount(int value)403 inline ResolverEndpoint& WithIpAddressCount(int value) { SetIpAddressCount(value); return *this;} 404 405 406 /** 407 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 408 */ GetHostVPCId()409 inline const Aws::String& GetHostVPCId() const{ return m_hostVPCId; } 410 411 /** 412 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 413 */ HostVPCIdHasBeenSet()414 inline bool HostVPCIdHasBeenSet() const { return m_hostVPCIdHasBeenSet; } 415 416 /** 417 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 418 */ SetHostVPCId(const Aws::String & value)419 inline void SetHostVPCId(const Aws::String& value) { m_hostVPCIdHasBeenSet = true; m_hostVPCId = value; } 420 421 /** 422 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 423 */ SetHostVPCId(Aws::String && value)424 inline void SetHostVPCId(Aws::String&& value) { m_hostVPCIdHasBeenSet = true; m_hostVPCId = std::move(value); } 425 426 /** 427 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 428 */ SetHostVPCId(const char * value)429 inline void SetHostVPCId(const char* value) { m_hostVPCIdHasBeenSet = true; m_hostVPCId.assign(value); } 430 431 /** 432 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 433 */ WithHostVPCId(const Aws::String & value)434 inline ResolverEndpoint& WithHostVPCId(const Aws::String& value) { SetHostVPCId(value); return *this;} 435 436 /** 437 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 438 */ WithHostVPCId(Aws::String && value)439 inline ResolverEndpoint& WithHostVPCId(Aws::String&& value) { SetHostVPCId(std::move(value)); return *this;} 440 441 /** 442 * <p>The ID of the VPC that you want to create the Resolver endpoint in.</p> 443 */ WithHostVPCId(const char * value)444 inline ResolverEndpoint& WithHostVPCId(const char* value) { SetHostVPCId(value); return *this;} 445 446 447 /** 448 * <p>A code that specifies the current status of the Resolver endpoint. Valid 449 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 450 * is creating and configuring one or more Amazon VPC network interfaces for this 451 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 452 * interfaces for this endpoint are correctly configured and able to pass inbound 453 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 454 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 455 * network interfaces with this endpoint.</p> </li> <li> <p> 456 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 457 * network interfaces that are associated with this endpoint. During the recovery 458 * process, the endpoint functions with limited capacity because of the limit on 459 * the number of DNS queries per IP address (per network interface). For the 460 * current limit, see <a 461 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 462 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 463 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 464 * the problem, we recommend that you check each IP address that you associated 465 * with the endpoint. For each IP address that isn't available, add another IP 466 * address and then delete the IP address that isn't available. (An endpoint must 467 * always include at least two IP addresses.) A status of 468 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 469 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 470 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 471 * <p>The network interface couldn't be created for some reason that's outside the 472 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 473 * Resolver is deleting this endpoint and the associated network interfaces.</p> 474 * </li> </ul> 475 */ GetStatus()476 inline const ResolverEndpointStatus& GetStatus() const{ return m_status; } 477 478 /** 479 * <p>A code that specifies the current status of the Resolver endpoint. Valid 480 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 481 * is creating and configuring one or more Amazon VPC network interfaces for this 482 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 483 * interfaces for this endpoint are correctly configured and able to pass inbound 484 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 485 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 486 * network interfaces with this endpoint.</p> </li> <li> <p> 487 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 488 * network interfaces that are associated with this endpoint. During the recovery 489 * process, the endpoint functions with limited capacity because of the limit on 490 * the number of DNS queries per IP address (per network interface). For the 491 * current limit, see <a 492 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 493 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 494 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 495 * the problem, we recommend that you check each IP address that you associated 496 * with the endpoint. For each IP address that isn't available, add another IP 497 * address and then delete the IP address that isn't available. (An endpoint must 498 * always include at least two IP addresses.) A status of 499 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 500 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 501 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 502 * <p>The network interface couldn't be created for some reason that's outside the 503 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 504 * Resolver is deleting this endpoint and the associated network interfaces.</p> 505 * </li> </ul> 506 */ StatusHasBeenSet()507 inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } 508 509 /** 510 * <p>A code that specifies the current status of the Resolver endpoint. Valid 511 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 512 * is creating and configuring one or more Amazon VPC network interfaces for this 513 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 514 * interfaces for this endpoint are correctly configured and able to pass inbound 515 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 516 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 517 * network interfaces with this endpoint.</p> </li> <li> <p> 518 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 519 * network interfaces that are associated with this endpoint. During the recovery 520 * process, the endpoint functions with limited capacity because of the limit on 521 * the number of DNS queries per IP address (per network interface). For the 522 * current limit, see <a 523 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 524 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 525 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 526 * the problem, we recommend that you check each IP address that you associated 527 * with the endpoint. For each IP address that isn't available, add another IP 528 * address and then delete the IP address that isn't available. (An endpoint must 529 * always include at least two IP addresses.) A status of 530 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 531 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 532 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 533 * <p>The network interface couldn't be created for some reason that's outside the 534 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 535 * Resolver is deleting this endpoint and the associated network interfaces.</p> 536 * </li> </ul> 537 */ SetStatus(const ResolverEndpointStatus & value)538 inline void SetStatus(const ResolverEndpointStatus& value) { m_statusHasBeenSet = true; m_status = value; } 539 540 /** 541 * <p>A code that specifies the current status of the Resolver endpoint. Valid 542 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 543 * is creating and configuring one or more Amazon VPC network interfaces for this 544 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 545 * interfaces for this endpoint are correctly configured and able to pass inbound 546 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 547 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 548 * network interfaces with this endpoint.</p> </li> <li> <p> 549 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 550 * network interfaces that are associated with this endpoint. During the recovery 551 * process, the endpoint functions with limited capacity because of the limit on 552 * the number of DNS queries per IP address (per network interface). For the 553 * current limit, see <a 554 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 555 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 556 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 557 * the problem, we recommend that you check each IP address that you associated 558 * with the endpoint. For each IP address that isn't available, add another IP 559 * address and then delete the IP address that isn't available. (An endpoint must 560 * always include at least two IP addresses.) A status of 561 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 562 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 563 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 564 * <p>The network interface couldn't be created for some reason that's outside the 565 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 566 * Resolver is deleting this endpoint and the associated network interfaces.</p> 567 * </li> </ul> 568 */ SetStatus(ResolverEndpointStatus && value)569 inline void SetStatus(ResolverEndpointStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } 570 571 /** 572 * <p>A code that specifies the current status of the Resolver endpoint. Valid 573 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 574 * is creating and configuring one or more Amazon VPC network interfaces for this 575 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 576 * interfaces for this endpoint are correctly configured and able to pass inbound 577 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 578 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 579 * network interfaces with this endpoint.</p> </li> <li> <p> 580 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 581 * network interfaces that are associated with this endpoint. During the recovery 582 * process, the endpoint functions with limited capacity because of the limit on 583 * the number of DNS queries per IP address (per network interface). For the 584 * current limit, see <a 585 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 586 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 587 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 588 * the problem, we recommend that you check each IP address that you associated 589 * with the endpoint. For each IP address that isn't available, add another IP 590 * address and then delete the IP address that isn't available. (An endpoint must 591 * always include at least two IP addresses.) A status of 592 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 593 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 594 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 595 * <p>The network interface couldn't be created for some reason that's outside the 596 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 597 * Resolver is deleting this endpoint and the associated network interfaces.</p> 598 * </li> </ul> 599 */ WithStatus(const ResolverEndpointStatus & value)600 inline ResolverEndpoint& WithStatus(const ResolverEndpointStatus& value) { SetStatus(value); return *this;} 601 602 /** 603 * <p>A code that specifies the current status of the Resolver endpoint. Valid 604 * values include the following:</p> <ul> <li> <p> <code>CREATING</code>: Resolver 605 * is creating and configuring one or more Amazon VPC network interfaces for this 606 * endpoint.</p> </li> <li> <p> <code>OPERATIONAL</code>: The Amazon VPC network 607 * interfaces for this endpoint are correctly configured and able to pass inbound 608 * or outbound DNS queries between your network and Resolver.</p> </li> <li> <p> 609 * <code>UPDATING</code>: Resolver is associating or disassociating one or more 610 * network interfaces with this endpoint.</p> </li> <li> <p> 611 * <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the 612 * network interfaces that are associated with this endpoint. During the recovery 613 * process, the endpoint functions with limited capacity because of the limit on 614 * the number of DNS queries per IP address (per network interface). For the 615 * current limit, see <a 616 * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits 617 * on Route 53 Resolver</a>.</p> </li> <li> <p> <code>ACTION_NEEDED</code>: This 618 * endpoint is unhealthy, and Resolver can't automatically recover it. To resolve 619 * the problem, we recommend that you check each IP address that you associated 620 * with the endpoint. For each IP address that isn't available, add another IP 621 * address and then delete the IP address that isn't available. (An endpoint must 622 * always include at least two IP addresses.) A status of 623 * <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common 624 * causes:</p> <ul> <li> <p>One or more of the network interfaces that are 625 * associated with the endpoint were deleted using Amazon VPC.</p> </li> <li> 626 * <p>The network interface couldn't be created for some reason that's outside the 627 * control of Resolver.</p> </li> </ul> </li> <li> <p> <code>DELETING</code>: 628 * Resolver is deleting this endpoint and the associated network interfaces.</p> 629 * </li> </ul> 630 */ WithStatus(ResolverEndpointStatus && value)631 inline ResolverEndpoint& WithStatus(ResolverEndpointStatus&& value) { SetStatus(std::move(value)); return *this;} 632 633 634 /** 635 * <p>A detailed description of the status of the Resolver endpoint.</p> 636 */ GetStatusMessage()637 inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } 638 639 /** 640 * <p>A detailed description of the status of the Resolver endpoint.</p> 641 */ StatusMessageHasBeenSet()642 inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } 643 644 /** 645 * <p>A detailed description of the status of the Resolver endpoint.</p> 646 */ SetStatusMessage(const Aws::String & value)647 inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } 648 649 /** 650 * <p>A detailed description of the status of the Resolver endpoint.</p> 651 */ SetStatusMessage(Aws::String && value)652 inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } 653 654 /** 655 * <p>A detailed description of the status of the Resolver endpoint.</p> 656 */ SetStatusMessage(const char * value)657 inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } 658 659 /** 660 * <p>A detailed description of the status of the Resolver endpoint.</p> 661 */ WithStatusMessage(const Aws::String & value)662 inline ResolverEndpoint& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} 663 664 /** 665 * <p>A detailed description of the status of the Resolver endpoint.</p> 666 */ WithStatusMessage(Aws::String && value)667 inline ResolverEndpoint& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} 668 669 /** 670 * <p>A detailed description of the status of the Resolver endpoint.</p> 671 */ WithStatusMessage(const char * value)672 inline ResolverEndpoint& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} 673 674 675 /** 676 * <p>The date and time that the endpoint was created, in Unix time format and 677 * Coordinated Universal Time (UTC).</p> 678 */ GetCreationTime()679 inline const Aws::String& GetCreationTime() const{ return m_creationTime; } 680 681 /** 682 * <p>The date and time that the endpoint was created, in Unix time format and 683 * Coordinated Universal Time (UTC).</p> 684 */ CreationTimeHasBeenSet()685 inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } 686 687 /** 688 * <p>The date and time that the endpoint was created, in Unix time format and 689 * Coordinated Universal Time (UTC).</p> 690 */ SetCreationTime(const Aws::String & value)691 inline void SetCreationTime(const Aws::String& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } 692 693 /** 694 * <p>The date and time that the endpoint was created, in Unix time format and 695 * Coordinated Universal Time (UTC).</p> 696 */ SetCreationTime(Aws::String && value)697 inline void SetCreationTime(Aws::String&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } 698 699 /** 700 * <p>The date and time that the endpoint was created, in Unix time format and 701 * Coordinated Universal Time (UTC).</p> 702 */ SetCreationTime(const char * value)703 inline void SetCreationTime(const char* value) { m_creationTimeHasBeenSet = true; m_creationTime.assign(value); } 704 705 /** 706 * <p>The date and time that the endpoint was created, in Unix time format and 707 * Coordinated Universal Time (UTC).</p> 708 */ WithCreationTime(const Aws::String & value)709 inline ResolverEndpoint& WithCreationTime(const Aws::String& value) { SetCreationTime(value); return *this;} 710 711 /** 712 * <p>The date and time that the endpoint was created, in Unix time format and 713 * Coordinated Universal Time (UTC).</p> 714 */ WithCreationTime(Aws::String && value)715 inline ResolverEndpoint& WithCreationTime(Aws::String&& value) { SetCreationTime(std::move(value)); return *this;} 716 717 /** 718 * <p>The date and time that the endpoint was created, in Unix time format and 719 * Coordinated Universal Time (UTC).</p> 720 */ WithCreationTime(const char * value)721 inline ResolverEndpoint& WithCreationTime(const char* value) { SetCreationTime(value); return *this;} 722 723 724 /** 725 * <p>The date and time that the endpoint was last modified, in Unix time format 726 * and Coordinated Universal Time (UTC).</p> 727 */ GetModificationTime()728 inline const Aws::String& GetModificationTime() const{ return m_modificationTime; } 729 730 /** 731 * <p>The date and time that the endpoint was last modified, in Unix time format 732 * and Coordinated Universal Time (UTC).</p> 733 */ ModificationTimeHasBeenSet()734 inline bool ModificationTimeHasBeenSet() const { return m_modificationTimeHasBeenSet; } 735 736 /** 737 * <p>The date and time that the endpoint was last modified, in Unix time format 738 * and Coordinated Universal Time (UTC).</p> 739 */ SetModificationTime(const Aws::String & value)740 inline void SetModificationTime(const Aws::String& value) { m_modificationTimeHasBeenSet = true; m_modificationTime = value; } 741 742 /** 743 * <p>The date and time that the endpoint was last modified, in Unix time format 744 * and Coordinated Universal Time (UTC).</p> 745 */ SetModificationTime(Aws::String && value)746 inline void SetModificationTime(Aws::String&& value) { m_modificationTimeHasBeenSet = true; m_modificationTime = std::move(value); } 747 748 /** 749 * <p>The date and time that the endpoint was last modified, in Unix time format 750 * and Coordinated Universal Time (UTC).</p> 751 */ SetModificationTime(const char * value)752 inline void SetModificationTime(const char* value) { m_modificationTimeHasBeenSet = true; m_modificationTime.assign(value); } 753 754 /** 755 * <p>The date and time that the endpoint was last modified, in Unix time format 756 * and Coordinated Universal Time (UTC).</p> 757 */ WithModificationTime(const Aws::String & value)758 inline ResolverEndpoint& WithModificationTime(const Aws::String& value) { SetModificationTime(value); return *this;} 759 760 /** 761 * <p>The date and time that the endpoint was last modified, in Unix time format 762 * and Coordinated Universal Time (UTC).</p> 763 */ WithModificationTime(Aws::String && value)764 inline ResolverEndpoint& WithModificationTime(Aws::String&& value) { SetModificationTime(std::move(value)); return *this;} 765 766 /** 767 * <p>The date and time that the endpoint was last modified, in Unix time format 768 * and Coordinated Universal Time (UTC).</p> 769 */ WithModificationTime(const char * value)770 inline ResolverEndpoint& WithModificationTime(const char* value) { SetModificationTime(value); return *this;} 771 772 private: 773 774 Aws::String m_id; 775 bool m_idHasBeenSet; 776 777 Aws::String m_creatorRequestId; 778 bool m_creatorRequestIdHasBeenSet; 779 780 Aws::String m_arn; 781 bool m_arnHasBeenSet; 782 783 Aws::String m_name; 784 bool m_nameHasBeenSet; 785 786 Aws::Vector<Aws::String> m_securityGroupIds; 787 bool m_securityGroupIdsHasBeenSet; 788 789 ResolverEndpointDirection m_direction; 790 bool m_directionHasBeenSet; 791 792 int m_ipAddressCount; 793 bool m_ipAddressCountHasBeenSet; 794 795 Aws::String m_hostVPCId; 796 bool m_hostVPCIdHasBeenSet; 797 798 ResolverEndpointStatus m_status; 799 bool m_statusHasBeenSet; 800 801 Aws::String m_statusMessage; 802 bool m_statusMessageHasBeenSet; 803 804 Aws::String m_creationTime; 805 bool m_creationTimeHasBeenSet; 806 807 Aws::String m_modificationTime; 808 bool m_modificationTimeHasBeenSet; 809 }; 810 811 } // namespace Model 812 } // namespace Route53Resolver 813 } // namespace Aws 814