/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.route53resolver; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.route53resolver.AmazonRoute53ResolverClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.route53resolver.model.*; import com.amazonaws.services.route53resolver.model.transform.*; /** * Client for accessing Route53Resolver. All service calls made using this client are blocking, and will not return * until the service call completes. *

*

* When you create a VPC using Amazon VPC, you automatically get DNS resolution within the VPC from Route 53 Resolver. * By default, Resolver answers DNS queries for VPC domain names such as domain names for EC2 instances or Elastic Load * Balancing load balancers. Resolver performs recursive lookups against public name servers for all other domain names. *

*

* You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection: *

*

* Forward DNS queries from resolvers on your network to Route 53 Resolver *

*

* DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers * to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53 * private hosted zone. For more information, see How DNS Resolvers on Your Network Forward DNS Queries to Route 53 Resolver in the Amazon Route 53 Developer * Guide. *

*

* Conditionally forward queries from a VPC to resolvers on your network *

*

* You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on * your network. To forward selected queries, you create Resolver rules that specify the domain names for the DNS * queries that you want to forward (such as example.com), and the IP addresses of the DNS resolvers on your network * that you want to forward the queries to. If a query matches multiple rules (example.com, acme.example.com), Resolver * chooses the rule with the most specific match (acme.example.com) and forwards the query to the IP addresses that you * specified in that rule. For more information, see How Route 53 Resolver Forwards DNS Queries from Your VPCs to Your Network in the Amazon Route 53 Developer * Guide. *

*

* Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose whether to forward queries * from your VPCs to your network (outbound queries), from your network to your VPCs (inbound queries), or both. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonRoute53ResolverClient extends AmazonWebServiceClient implements AmazonRoute53Resolver { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonRoute53Resolver.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "route53resolver"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidRequestException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InvalidRequestExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidPolicyDocument").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InvalidPolicyDocumentExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ServiceQuotaExceededException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ServiceQuotaExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidNextTokenException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InvalidNextTokenExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.LimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceUnavailableException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ResourceUnavailableExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ValidationException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ValidationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalServiceErrorException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InternalServiceErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceExistsException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ResourceExistsExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidParameterException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InvalidParameterExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ThrottlingException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ThrottlingExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidTagException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.InvalidTagExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ConflictException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.ConflictExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("UnknownResourceException").withExceptionUnmarshaller( com.amazonaws.services.route53resolver.model.transform.UnknownResourceExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.route53resolver.model.AmazonRoute53ResolverException.class)); public static AmazonRoute53ResolverClientBuilder builder() { return AmazonRoute53ResolverClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Route53Resolver using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonRoute53ResolverClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Route53Resolver using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonRoute53ResolverClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("route53resolver.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/route53resolver/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/route53resolver/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Associates a FirewallRuleGroup with a VPC, to provide DNS filtering for the VPC. *

* * @param associateFirewallRuleGroupRequest * @return Result of the AssociateFirewallRuleGroup operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.AssociateFirewallRuleGroup * @see AWS API Documentation */ @Override public AssociateFirewallRuleGroupResult associateFirewallRuleGroup(AssociateFirewallRuleGroupRequest request) { request = beforeClientExecution(request); return executeAssociateFirewallRuleGroup(request); } @SdkInternalApi final AssociateFirewallRuleGroupResult executeAssociateFirewallRuleGroup(AssociateFirewallRuleGroupRequest associateFirewallRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(associateFirewallRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateFirewallRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateFirewallRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateFirewallRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateFirewallRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds IP addresses to an inbound or an outbound Resolver endpoint. If you want to add more than one IP address, * submit one AssociateResolverEndpointIpAddress request for each IP address. *

*

* To remove an IP address from an endpoint, see DisassociateResolverEndpointIpAddress. *

* * @param associateResolverEndpointIpAddressRequest * @return Result of the AssociateResolverEndpointIpAddress operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.AssociateResolverEndpointIpAddress * @see AWS API Documentation */ @Override public AssociateResolverEndpointIpAddressResult associateResolverEndpointIpAddress(AssociateResolverEndpointIpAddressRequest request) { request = beforeClientExecution(request); return executeAssociateResolverEndpointIpAddress(request); } @SdkInternalApi final AssociateResolverEndpointIpAddressResult executeAssociateResolverEndpointIpAddress( AssociateResolverEndpointIpAddressRequest associateResolverEndpointIpAddressRequest) { ExecutionContext executionContext = createExecutionContext(associateResolverEndpointIpAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateResolverEndpointIpAddressRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateResolverEndpointIpAddressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateResolverEndpointIpAddress"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateResolverEndpointIpAddressResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates an Amazon VPC with a specified query logging configuration. Route 53 Resolver logs DNS queries that * originate in all of the Amazon VPCs that are associated with a specified query logging configuration. To * associate more than one VPC with a configuration, submit one AssociateResolverQueryLogConfig request * for each VPC. *

* *

* The VPCs that you associate with a query logging configuration must be in the same Region as the configuration. *

*
*

* To remove a VPC from a query logging configuration, see DisassociateResolverQueryLogConfig. *

* * @param associateResolverQueryLogConfigRequest * @return Result of the AssociateResolverQueryLogConfig operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.AssociateResolverQueryLogConfig * @see AWS API Documentation */ @Override public AssociateResolverQueryLogConfigResult associateResolverQueryLogConfig(AssociateResolverQueryLogConfigRequest request) { request = beforeClientExecution(request); return executeAssociateResolverQueryLogConfig(request); } @SdkInternalApi final AssociateResolverQueryLogConfigResult executeAssociateResolverQueryLogConfig( AssociateResolverQueryLogConfigRequest associateResolverQueryLogConfigRequest) { ExecutionContext executionContext = createExecutionContext(associateResolverQueryLogConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateResolverQueryLogConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateResolverQueryLogConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateResolverQueryLogConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateResolverQueryLogConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates a Resolver rule with a VPC. When you associate a rule with a VPC, Resolver forwards all DNS queries * for the domain name that is specified in the rule and that originate in the VPC. The queries are forwarded to the * IP addresses for the DNS resolvers that are specified in the rule. For more information about rules, see CreateResolverRule. *

* * @param associateResolverRuleRequest * @return Result of the AssociateResolverRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceUnavailableException * The specified resource isn't available. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.AssociateResolverRule * @see AWS API Documentation */ @Override public AssociateResolverRuleResult associateResolverRule(AssociateResolverRuleRequest request) { request = beforeClientExecution(request); return executeAssociateResolverRule(request); } @SdkInternalApi final AssociateResolverRuleResult executeAssociateResolverRule(AssociateResolverRuleRequest associateResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(associateResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(associateResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AssociateResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an empty firewall domain list for use in DNS Firewall rules. You can populate the domains for the new * list with a file, using ImportFirewallDomains, or with domain strings, using UpdateFirewallDomains. *

* * @param createFirewallDomainListRequest * @return Result of the CreateFirewallDomainList operation returned by the service. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.CreateFirewallDomainList * @see AWS API Documentation */ @Override public CreateFirewallDomainListResult createFirewallDomainList(CreateFirewallDomainListRequest request) { request = beforeClientExecution(request); return executeCreateFirewallDomainList(request); } @SdkInternalApi final CreateFirewallDomainListResult executeCreateFirewallDomainList(CreateFirewallDomainListRequest createFirewallDomainListRequest) { ExecutionContext executionContext = createExecutionContext(createFirewallDomainListRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateFirewallDomainListRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createFirewallDomainListRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateFirewallDomainList"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateFirewallDomainListResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a single DNS Firewall rule in the specified rule group, using the specified domain list. *

* * @param createFirewallRuleRequest * @return Result of the CreateFirewallRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.CreateFirewallRule * @see AWS API Documentation */ @Override public CreateFirewallRuleResult createFirewallRule(CreateFirewallRuleRequest request) { request = beforeClientExecution(request); return executeCreateFirewallRule(request); } @SdkInternalApi final CreateFirewallRuleResult executeCreateFirewallRule(CreateFirewallRuleRequest createFirewallRuleRequest) { ExecutionContext executionContext = createExecutionContext(createFirewallRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateFirewallRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createFirewallRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateFirewallRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateFirewallRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an empty DNS Firewall rule group for filtering DNS network traffic in a VPC. You can add rules to the new * rule group by calling CreateFirewallRule. *

* * @param createFirewallRuleGroupRequest * @return Result of the CreateFirewallRuleGroup operation returned by the service. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.CreateFirewallRuleGroup * @see AWS API Documentation */ @Override public CreateFirewallRuleGroupResult createFirewallRuleGroup(CreateFirewallRuleGroupRequest request) { request = beforeClientExecution(request); return executeCreateFirewallRuleGroup(request); } @SdkInternalApi final CreateFirewallRuleGroupResult executeCreateFirewallRuleGroup(CreateFirewallRuleGroupRequest createFirewallRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(createFirewallRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateFirewallRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createFirewallRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateFirewallRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateFirewallRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an RouteĀ 53 Resolver on an Outpost. *

* * @param createOutpostResolverRequest * @return Result of the CreateOutpostResolver operation returned by the service. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ServiceQuotaExceededException * Fulfilling the request would cause one or more quotas to be exceeded. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.CreateOutpostResolver * @see AWS API Documentation */ @Override public CreateOutpostResolverResult createOutpostResolver(CreateOutpostResolverRequest request) { request = beforeClientExecution(request); return executeCreateOutpostResolver(request); } @SdkInternalApi final CreateOutpostResolverResult executeCreateOutpostResolver(CreateOutpostResolverRequest createOutpostResolverRequest) { ExecutionContext executionContext = createExecutionContext(createOutpostResolverRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateOutpostResolverRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createOutpostResolverRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateOutpostResolver"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateOutpostResolverResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound: *

*
    *
  • *

    * An inbound Resolver endpoint forwards DNS queries to the DNS service for a VPC from your network. *

    *
  • *
  • *

    * An outbound Resolver endpoint forwards DNS queries from the DNS service for a VPC to your network. *

    *
  • *
* * @param createResolverEndpointRequest * @return Result of the CreateResolverEndpoint operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.CreateResolverEndpoint * @see AWS API Documentation */ @Override public CreateResolverEndpointResult createResolverEndpoint(CreateResolverEndpointRequest request) { request = beforeClientExecution(request); return executeCreateResolverEndpoint(request); } @SdkInternalApi final CreateResolverEndpointResult executeCreateResolverEndpoint(CreateResolverEndpointRequest createResolverEndpointRequest) { ExecutionContext executionContext = createExecutionContext(createResolverEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateResolverEndpointRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createResolverEndpointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateResolverEndpoint"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateResolverEndpointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that * originate in your VPCs. Resolver can log queries only for VPCs that are in the same Region as the query logging * configuration. *

*

* To specify which VPCs you want to log queries for, you use AssociateResolverQueryLogConfig. For more * information, see AssociateResolverQueryLogConfig. *

*

* You can optionally use Resource Access Manager (RAM) to share a query logging configuration with other Amazon Web * Services accounts. The other accounts can then associate VPCs with the configuration. The query logs that * Resolver creates for a configuration include all DNS queries that originate in all VPCs that are associated with * the configuration. *

* * @param createResolverQueryLogConfigRequest * @return Result of the CreateResolverQueryLogConfig operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.CreateResolverQueryLogConfig * @see AWS API Documentation */ @Override public CreateResolverQueryLogConfigResult createResolverQueryLogConfig(CreateResolverQueryLogConfigRequest request) { request = beforeClientExecution(request); return executeCreateResolverQueryLogConfig(request); } @SdkInternalApi final CreateResolverQueryLogConfigResult executeCreateResolverQueryLogConfig(CreateResolverQueryLogConfigRequest createResolverQueryLogConfigRequest) { ExecutionContext executionContext = createExecutionContext(createResolverQueryLogConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateResolverQueryLogConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createResolverQueryLogConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateResolverQueryLogConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateResolverQueryLogConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one * domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network. *

* * @param createResolverRuleRequest * @return Result of the CreateResolverRule operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws ResourceUnavailableException * The specified resource isn't available. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.CreateResolverRule * @see AWS API Documentation */ @Override public CreateResolverRuleResult createResolverRule(CreateResolverRuleRequest request) { request = beforeClientExecution(request); return executeCreateResolverRule(request); } @SdkInternalApi final CreateResolverRuleResult executeCreateResolverRule(CreateResolverRuleRequest createResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(createResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified domain list. *

* * @param deleteFirewallDomainListRequest * @return Result of the DeleteFirewallDomainList operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DeleteFirewallDomainList * @see AWS API Documentation */ @Override public DeleteFirewallDomainListResult deleteFirewallDomainList(DeleteFirewallDomainListRequest request) { request = beforeClientExecution(request); return executeDeleteFirewallDomainList(request); } @SdkInternalApi final DeleteFirewallDomainListResult executeDeleteFirewallDomainList(DeleteFirewallDomainListRequest deleteFirewallDomainListRequest) { ExecutionContext executionContext = createExecutionContext(deleteFirewallDomainListRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFirewallDomainListRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteFirewallDomainListRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteFirewallDomainList"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFirewallDomainListResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified firewall rule. *

* * @param deleteFirewallRuleRequest * @return Result of the DeleteFirewallRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DeleteFirewallRule * @see AWS API Documentation */ @Override public DeleteFirewallRuleResult deleteFirewallRule(DeleteFirewallRuleRequest request) { request = beforeClientExecution(request); return executeDeleteFirewallRule(request); } @SdkInternalApi final DeleteFirewallRuleResult executeDeleteFirewallRule(DeleteFirewallRuleRequest deleteFirewallRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteFirewallRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFirewallRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteFirewallRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteFirewallRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFirewallRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified firewall rule group. *

* * @param deleteFirewallRuleGroupRequest * @return Result of the DeleteFirewallRuleGroup operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DeleteFirewallRuleGroup * @see AWS API Documentation */ @Override public DeleteFirewallRuleGroupResult deleteFirewallRuleGroup(DeleteFirewallRuleGroupRequest request) { request = beforeClientExecution(request); return executeDeleteFirewallRuleGroup(request); } @SdkInternalApi final DeleteFirewallRuleGroupResult executeDeleteFirewallRuleGroup(DeleteFirewallRuleGroupRequest deleteFirewallRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteFirewallRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFirewallRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteFirewallRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteFirewallRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFirewallRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a Resolver on the Outpost. *

* * @param deleteOutpostResolverRequest * @return Result of the DeleteOutpostResolver operation returned by the service. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.DeleteOutpostResolver * @see AWS API Documentation */ @Override public DeleteOutpostResolverResult deleteOutpostResolver(DeleteOutpostResolverRequest request) { request = beforeClientExecution(request); return executeDeleteOutpostResolver(request); } @SdkInternalApi final DeleteOutpostResolverResult executeDeleteOutpostResolver(DeleteOutpostResolverRequest deleteOutpostResolverRequest) { ExecutionContext executionContext = createExecutionContext(deleteOutpostResolverRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteOutpostResolverRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteOutpostResolverRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteOutpostResolver"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteOutpostResolverResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an * outbound Resolver endpoint: *

*
    *
  • *

    * Inbound: DNS queries from your network are no longer routed to the DNS service for the specified VPC. *

    *
  • *
  • *

    * Outbound: DNS queries from a VPC are no longer routed to your network. *

    *
  • *
* * @param deleteResolverEndpointRequest * @return Result of the DeleteResolverEndpoint operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DeleteResolverEndpoint * @see AWS API Documentation */ @Override public DeleteResolverEndpointResult deleteResolverEndpoint(DeleteResolverEndpointRequest request) { request = beforeClientExecution(request); return executeDeleteResolverEndpoint(request); } @SdkInternalApi final DeleteResolverEndpointResult executeDeleteResolverEndpoint(DeleteResolverEndpointRequest deleteResolverEndpointRequest) { ExecutionContext executionContext = createExecutionContext(deleteResolverEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteResolverEndpointRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteResolverEndpointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteResolverEndpoint"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteResolverEndpointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a query logging configuration. When you delete a configuration, Resolver stops logging DNS queries for * all of the Amazon VPCs that are associated with the configuration. This also applies if the query logging * configuration is shared with other Amazon Web Services accounts, and the other accounts have associated VPCs with * the shared configuration. *

*

* Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. * See DisassociateResolverQueryLogConfig. *

*

* If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, you must * stop sharing the configuration before you can delete a configuration. The accounts that you shared the * configuration with can first disassociate VPCs that they associated with the configuration, but that's not * necessary. If you stop sharing the configuration, those VPCs are automatically disassociated from the * configuration. *

* * @param deleteResolverQueryLogConfigRequest * @return Result of the DeleteResolverQueryLogConfig operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.DeleteResolverQueryLogConfig * @see AWS API Documentation */ @Override public DeleteResolverQueryLogConfigResult deleteResolverQueryLogConfig(DeleteResolverQueryLogConfigRequest request) { request = beforeClientExecution(request); return executeDeleteResolverQueryLogConfig(request); } @SdkInternalApi final DeleteResolverQueryLogConfigResult executeDeleteResolverQueryLogConfig(DeleteResolverQueryLogConfigRequest deleteResolverQueryLogConfigRequest) { ExecutionContext executionContext = createExecutionContext(deleteResolverQueryLogConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteResolverQueryLogConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteResolverQueryLogConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteResolverQueryLogConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteResolverQueryLogConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a Resolver rule. Before you can delete a Resolver rule, you must disassociate it from all the VPCs that * you associated the Resolver rule with. For more information, see DisassociateResolverRule. *

* * @param deleteResolverRuleRequest * @return Result of the DeleteResolverRule operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ResourceInUseException * The resource that you tried to update or delete is currently in use. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DeleteResolverRule * @see AWS API Documentation */ @Override public DeleteResolverRuleResult deleteResolverRule(DeleteResolverRuleRequest request) { request = beforeClientExecution(request); return executeDeleteResolverRule(request); } @SdkInternalApi final DeleteResolverRuleResult executeDeleteResolverRule(DeleteResolverRuleRequest deleteResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates a FirewallRuleGroup from a VPC, to remove DNS filtering from the VPC. *

* * @param disassociateFirewallRuleGroupRequest * @return Result of the DisassociateFirewallRuleGroup operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DisassociateFirewallRuleGroup * @see AWS API Documentation */ @Override public DisassociateFirewallRuleGroupResult disassociateFirewallRuleGroup(DisassociateFirewallRuleGroupRequest request) { request = beforeClientExecution(request); return executeDisassociateFirewallRuleGroup(request); } @SdkInternalApi final DisassociateFirewallRuleGroupResult executeDisassociateFirewallRuleGroup(DisassociateFirewallRuleGroupRequest disassociateFirewallRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(disassociateFirewallRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateFirewallRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateFirewallRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateFirewallRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateFirewallRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes IP addresses from an inbound or an outbound Resolver endpoint. If you want to remove more than one IP * address, submit one DisassociateResolverEndpointIpAddress request for each IP address. *

*

* To add an IP address to an endpoint, see AssociateResolverEndpointIpAddress. *

* * @param disassociateResolverEndpointIpAddressRequest * @return Result of the DisassociateResolverEndpointIpAddress operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws ResourceExistsException * The resource that you tried to create already exists. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DisassociateResolverEndpointIpAddress * @see AWS API Documentation */ @Override public DisassociateResolverEndpointIpAddressResult disassociateResolverEndpointIpAddress(DisassociateResolverEndpointIpAddressRequest request) { request = beforeClientExecution(request); return executeDisassociateResolverEndpointIpAddress(request); } @SdkInternalApi final DisassociateResolverEndpointIpAddressResult executeDisassociateResolverEndpointIpAddress( DisassociateResolverEndpointIpAddressRequest disassociateResolverEndpointIpAddressRequest) { ExecutionContext executionContext = createExecutionContext(disassociateResolverEndpointIpAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateResolverEndpointIpAddressRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateResolverEndpointIpAddressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateResolverEndpointIpAddress"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateResolverEndpointIpAddressResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates a VPC from a query logging configuration. *

* *

* Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. * If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, VPCs can be * disassociated from the configuration in the following ways: *

*
    *
  • *

    * The accounts that you shared the configuration with can disassociate VPCs from the configuration. *

    *
  • *
  • *

    * You can stop sharing the configuration. *

    *
  • *
*
* * @param disassociateResolverQueryLogConfigRequest * @return Result of the DisassociateResolverQueryLogConfig operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.DisassociateResolverQueryLogConfig * @see AWS API Documentation */ @Override public DisassociateResolverQueryLogConfigResult disassociateResolverQueryLogConfig(DisassociateResolverQueryLogConfigRequest request) { request = beforeClientExecution(request); return executeDisassociateResolverQueryLogConfig(request); } @SdkInternalApi final DisassociateResolverQueryLogConfigResult executeDisassociateResolverQueryLogConfig( DisassociateResolverQueryLogConfigRequest disassociateResolverQueryLogConfigRequest) { ExecutionContext executionContext = createExecutionContext(disassociateResolverQueryLogConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateResolverQueryLogConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateResolverQueryLogConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateResolverQueryLogConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateResolverQueryLogConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes the association between a specified Resolver rule and a specified VPC. *

* *

* If you disassociate a Resolver rule from a VPC, Resolver stops forwarding DNS queries for the domain name that * you specified in the Resolver rule. *

*
* * @param disassociateResolverRuleRequest * @return Result of the DisassociateResolverRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.DisassociateResolverRule * @see AWS API Documentation */ @Override public DisassociateResolverRuleResult disassociateResolverRule(DisassociateResolverRuleRequest request) { request = beforeClientExecution(request); return executeDisassociateResolverRule(request); } @SdkInternalApi final DisassociateResolverRuleResult executeDisassociateResolverRule(DisassociateResolverRuleRequest disassociateResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(disassociateResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DisassociateResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the configuration of the firewall behavior provided by DNS Firewall for a single VPC from Amazon * Virtual Private Cloud (Amazon VPC). *

* * @param getFirewallConfigRequest * @return Result of the GetFirewallConfig operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.GetFirewallConfig * @see AWS API Documentation */ @Override public GetFirewallConfigResult getFirewallConfig(GetFirewallConfigRequest request) { request = beforeClientExecution(request); return executeGetFirewallConfig(request); } @SdkInternalApi final GetFirewallConfigResult executeGetFirewallConfig(GetFirewallConfigRequest getFirewallConfigRequest) { ExecutionContext executionContext = createExecutionContext(getFirewallConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFirewallConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFirewallConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFirewallConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFirewallConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the specified firewall domain list. *

* * @param getFirewallDomainListRequest * @return Result of the GetFirewallDomainList operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetFirewallDomainList * @see AWS API Documentation */ @Override public GetFirewallDomainListResult getFirewallDomainList(GetFirewallDomainListRequest request) { request = beforeClientExecution(request); return executeGetFirewallDomainList(request); } @SdkInternalApi final GetFirewallDomainListResult executeGetFirewallDomainList(GetFirewallDomainListRequest getFirewallDomainListRequest) { ExecutionContext executionContext = createExecutionContext(getFirewallDomainListRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFirewallDomainListRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFirewallDomainListRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFirewallDomainList"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFirewallDomainListResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the specified firewall rule group. *

* * @param getFirewallRuleGroupRequest * @return Result of the GetFirewallRuleGroup operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetFirewallRuleGroup * @see AWS API Documentation */ @Override public GetFirewallRuleGroupResult getFirewallRuleGroup(GetFirewallRuleGroupRequest request) { request = beforeClientExecution(request); return executeGetFirewallRuleGroup(request); } @SdkInternalApi final GetFirewallRuleGroupResult executeGetFirewallRuleGroup(GetFirewallRuleGroupRequest getFirewallRuleGroupRequest) { ExecutionContext executionContext = createExecutionContext(getFirewallRuleGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFirewallRuleGroupRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFirewallRuleGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFirewallRuleGroup"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFirewallRuleGroupResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a firewall rule group association, which enables DNS filtering for a VPC with one rule group. A VPC can * have more than one firewall rule group association, and a rule group can be associated with more than one VPC. *

* * @param getFirewallRuleGroupAssociationRequest * @return Result of the GetFirewallRuleGroupAssociation operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetFirewallRuleGroupAssociation * @see AWS API Documentation */ @Override public GetFirewallRuleGroupAssociationResult getFirewallRuleGroupAssociation(GetFirewallRuleGroupAssociationRequest request) { request = beforeClientExecution(request); return executeGetFirewallRuleGroupAssociation(request); } @SdkInternalApi final GetFirewallRuleGroupAssociationResult executeGetFirewallRuleGroupAssociation( GetFirewallRuleGroupAssociationRequest getFirewallRuleGroupAssociationRequest) { ExecutionContext executionContext = createExecutionContext(getFirewallRuleGroupAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFirewallRuleGroupAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getFirewallRuleGroupAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFirewallRuleGroupAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFirewallRuleGroupAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the Identity and Access Management (Amazon Web Services IAM) policy for sharing the specified rule group. * You can use the policy to share the rule group using Resource Access Manager (RAM). *

* * @param getFirewallRuleGroupPolicyRequest * @return Result of the GetFirewallRuleGroupPolicy operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetFirewallRuleGroupPolicy * @see AWS API Documentation */ @Override public GetFirewallRuleGroupPolicyResult getFirewallRuleGroupPolicy(GetFirewallRuleGroupPolicyRequest request) { request = beforeClientExecution(request); return executeGetFirewallRuleGroupPolicy(request); } @SdkInternalApi final GetFirewallRuleGroupPolicyResult executeGetFirewallRuleGroupPolicy(GetFirewallRuleGroupPolicyRequest getFirewallRuleGroupPolicyRequest) { ExecutionContext executionContext = createExecutionContext(getFirewallRuleGroupPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFirewallRuleGroupPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getFirewallRuleGroupPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetFirewallRuleGroupPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFirewallRuleGroupPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified Resolver on the Outpost, such as its instance count and type, name, and the * current status of the Resolver. *

* * @param getOutpostResolverRequest * @return Result of the GetOutpostResolver operation returned by the service. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.GetOutpostResolver * @see AWS API Documentation */ @Override public GetOutpostResolverResult getOutpostResolver(GetOutpostResolverRequest request) { request = beforeClientExecution(request); return executeGetOutpostResolver(request); } @SdkInternalApi final GetOutpostResolverResult executeGetOutpostResolver(GetOutpostResolverRequest getOutpostResolverRequest) { ExecutionContext executionContext = createExecutionContext(getOutpostResolverRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetOutpostResolverRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getOutpostResolverRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetOutpostResolver"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetOutpostResolverResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the behavior configuration of RouteĀ 53 Resolver behavior for a single VPC from Amazon Virtual Private * Cloud. *

* * @param getResolverConfigRequest * @return Result of the GetResolverConfig operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.GetResolverConfig * @see AWS API Documentation */ @Override public GetResolverConfigResult getResolverConfig(GetResolverConfigRequest request) { request = beforeClientExecution(request); return executeGetResolverConfig(request); } @SdkInternalApi final GetResolverConfigResult executeGetResolverConfig(GetResolverConfigRequest getResolverConfigRequest) { ExecutionContext executionContext = createExecutionContext(getResolverConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getResolverConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets DNSSEC validation information for a specified resource. *

* * @param getResolverDnssecConfigRequest * @return Result of the GetResolverDnssecConfig operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.GetResolverDnssecConfig * @see AWS API Documentation */ @Override public GetResolverDnssecConfigResult getResolverDnssecConfig(GetResolverDnssecConfigRequest request) { request = beforeClientExecution(request); return executeGetResolverDnssecConfig(request); } @SdkInternalApi final GetResolverDnssecConfigResult executeGetResolverDnssecConfig(GetResolverDnssecConfigRequest getResolverDnssecConfigRequest) { ExecutionContext executionContext = createExecutionContext(getResolverDnssecConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverDnssecConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResolverDnssecConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverDnssecConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverDnssecConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified Resolver endpoint, such as whether it's an inbound or an outbound Resolver * endpoint, and the current status of the endpoint. *

* * @param getResolverEndpointRequest * @return Result of the GetResolverEndpoint operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetResolverEndpoint * @see AWS API Documentation */ @Override public GetResolverEndpointResult getResolverEndpoint(GetResolverEndpointRequest request) { request = beforeClientExecution(request); return executeGetResolverEndpoint(request); } @SdkInternalApi final GetResolverEndpointResult executeGetResolverEndpoint(GetResolverEndpointRequest getResolverEndpointRequest) { ExecutionContext executionContext = createExecutionContext(getResolverEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverEndpointRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getResolverEndpointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverEndpoint"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverEndpointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified Resolver query logging configuration, such as the number of VPCs that the * configuration is logging queries for and the location that logs are sent to. *

* * @param getResolverQueryLogConfigRequest * @return Result of the GetResolverQueryLogConfig operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.GetResolverQueryLogConfig * @see AWS API Documentation */ @Override public GetResolverQueryLogConfigResult getResolverQueryLogConfig(GetResolverQueryLogConfigRequest request) { request = beforeClientExecution(request); return executeGetResolverQueryLogConfig(request); } @SdkInternalApi final GetResolverQueryLogConfigResult executeGetResolverQueryLogConfig(GetResolverQueryLogConfigRequest getResolverQueryLogConfigRequest) { ExecutionContext executionContext = createExecutionContext(getResolverQueryLogConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverQueryLogConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResolverQueryLogConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverQueryLogConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverQueryLogConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified association between a Resolver query logging configuration and an Amazon VPC. * When you associate a VPC with a query logging configuration, Resolver logs DNS queries that originate in that * VPC. *

* * @param getResolverQueryLogConfigAssociationRequest * @return Result of the GetResolverQueryLogConfigAssociation operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.GetResolverQueryLogConfigAssociation * @see AWS API Documentation */ @Override public GetResolverQueryLogConfigAssociationResult getResolverQueryLogConfigAssociation(GetResolverQueryLogConfigAssociationRequest request) { request = beforeClientExecution(request); return executeGetResolverQueryLogConfigAssociation(request); } @SdkInternalApi final GetResolverQueryLogConfigAssociationResult executeGetResolverQueryLogConfigAssociation( GetResolverQueryLogConfigAssociationRequest getResolverQueryLogConfigAssociationRequest) { ExecutionContext executionContext = createExecutionContext(getResolverQueryLogConfigAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverQueryLogConfigAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResolverQueryLogConfigAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverQueryLogConfigAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverQueryLogConfigAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a query logging policy. A query logging policy specifies the Resolver query logging * operations and resources that you want to allow another Amazon Web Services account to be able to use. *

* * @param getResolverQueryLogConfigPolicyRequest * @return Result of the GetResolverQueryLogConfigPolicy operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws UnknownResourceException * The specified resource doesn't exist. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.GetResolverQueryLogConfigPolicy * @see AWS API Documentation */ @Override public GetResolverQueryLogConfigPolicyResult getResolverQueryLogConfigPolicy(GetResolverQueryLogConfigPolicyRequest request) { request = beforeClientExecution(request); return executeGetResolverQueryLogConfigPolicy(request); } @SdkInternalApi final GetResolverQueryLogConfigPolicyResult executeGetResolverQueryLogConfigPolicy( GetResolverQueryLogConfigPolicyRequest getResolverQueryLogConfigPolicyRequest) { ExecutionContext executionContext = createExecutionContext(getResolverQueryLogConfigPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverQueryLogConfigPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResolverQueryLogConfigPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverQueryLogConfigPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverQueryLogConfigPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about a specified Resolver rule, such as the domain name that the rule forwards DNS queries for * and the ID of the outbound Resolver endpoint that the rule is associated with. *

* * @param getResolverRuleRequest * @return Result of the GetResolverRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetResolverRule * @see AWS API Documentation */ @Override public GetResolverRuleResult getResolverRule(GetResolverRuleRequest request) { request = beforeClientExecution(request); return executeGetResolverRule(request); } @SdkInternalApi final GetResolverRuleResult executeGetResolverRule(GetResolverRuleRequest getResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(getResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about an association between a specified Resolver rule and a VPC. You associate a Resolver rule * and a VPC using AssociateResolverRule. *

* * @param getResolverRuleAssociationRequest * @return Result of the GetResolverRuleAssociation operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.GetResolverRuleAssociation * @see AWS API Documentation */ @Override public GetResolverRuleAssociationResult getResolverRuleAssociation(GetResolverRuleAssociationRequest request) { request = beforeClientExecution(request); return executeGetResolverRuleAssociation(request); } @SdkInternalApi final GetResolverRuleAssociationResult executeGetResolverRuleAssociation(GetResolverRuleAssociationRequest getResolverRuleAssociationRequest) { ExecutionContext executionContext = createExecutionContext(getResolverRuleAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverRuleAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getResolverRuleAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverRuleAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverRuleAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets information about the Resolver rule policy for a specified rule. A Resolver rule policy includes the rule * that you want to share with another account, the account that you want to share the rule with, and the Resolver * operations that you want to allow the account to use. *

* * @param getResolverRulePolicyRequest * @return Result of the GetResolverRulePolicy operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws UnknownResourceException * The specified resource doesn't exist. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.GetResolverRulePolicy * @see AWS API Documentation */ @Override public GetResolverRulePolicyResult getResolverRulePolicy(GetResolverRulePolicyRequest request) { request = beforeClientExecution(request); return executeGetResolverRulePolicy(request); } @SdkInternalApi final GetResolverRulePolicyResult executeGetResolverRulePolicy(GetResolverRulePolicyRequest getResolverRulePolicyRequest) { ExecutionContext executionContext = createExecutionContext(getResolverRulePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResolverRulePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getResolverRulePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResolverRulePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResolverRulePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Imports domain names from a file into a domain list, for use in a DNS firewall rule group. *

*

* Each domain specification in your domain list must satisfy the following requirements: *

*
    *
  • *

    * It can optionally start with * (asterisk). *

    *
  • *
  • *

    * With the exception of the optional starting asterisk, it must only contain the following characters: * A-Z, a-z, 0-9, - (hyphen). *

    *
  • *
  • *

    * It must be from 1-255 characters in length. *

    *
  • *
* * @param importFirewallDomainsRequest * @return Result of the ImportFirewallDomains operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ImportFirewallDomains * @see AWS API Documentation */ @Override public ImportFirewallDomainsResult importFirewallDomains(ImportFirewallDomainsRequest request) { request = beforeClientExecution(request); return executeImportFirewallDomains(request); } @SdkInternalApi final ImportFirewallDomainsResult executeImportFirewallDomains(ImportFirewallDomainsRequest importFirewallDomainsRequest) { ExecutionContext executionContext = createExecutionContext(importFirewallDomainsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ImportFirewallDomainsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(importFirewallDomainsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ImportFirewallDomains"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ImportFirewallDomainsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the firewall configurations that you have defined. DNS Firewall uses the configurations to manage * firewall behavior for your VPCs. *

*

* A single call might return only a partial list of the configurations. For information, see * MaxResults. *

* * @param listFirewallConfigsRequest * @return Result of the ListFirewallConfigs operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallConfigs * @see AWS API Documentation */ @Override public ListFirewallConfigsResult listFirewallConfigs(ListFirewallConfigsRequest request) { request = beforeClientExecution(request); return executeListFirewallConfigs(request); } @SdkInternalApi final ListFirewallConfigsResult executeListFirewallConfigs(ListFirewallConfigsRequest listFirewallConfigsRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallConfigsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallConfigsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listFirewallConfigsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallConfigs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallConfigsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the firewall domain lists that you have defined. For each firewall domain list, you can retrieve the * domains that are defined for a list by calling ListFirewallDomains. *

*

* A single call to this list operation might return only a partial list of the domain lists. For information, see * MaxResults. *

* * @param listFirewallDomainListsRequest * @return Result of the ListFirewallDomainLists operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallDomainLists * @see AWS API Documentation */ @Override public ListFirewallDomainListsResult listFirewallDomainLists(ListFirewallDomainListsRequest request) { request = beforeClientExecution(request); return executeListFirewallDomainLists(request); } @SdkInternalApi final ListFirewallDomainListsResult executeListFirewallDomainLists(ListFirewallDomainListsRequest listFirewallDomainListsRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallDomainListsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallDomainListsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listFirewallDomainListsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallDomainLists"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallDomainListsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the domains that you have defined for the specified firewall domain list. *

*

* A single call might return only a partial list of the domains. For information, see MaxResults. *

* * @param listFirewallDomainsRequest * @return Result of the ListFirewallDomains operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallDomains * @see AWS API Documentation */ @Override public ListFirewallDomainsResult listFirewallDomains(ListFirewallDomainsRequest request) { request = beforeClientExecution(request); return executeListFirewallDomains(request); } @SdkInternalApi final ListFirewallDomainsResult executeListFirewallDomains(ListFirewallDomainsRequest listFirewallDomainsRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallDomainsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallDomainsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listFirewallDomainsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallDomains"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallDomainsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the firewall rule group associations that you have defined. Each association enables DNS filtering for * a VPC with one rule group. *

*

* A single call might return only a partial list of the associations. For information, see MaxResults. *

* * @param listFirewallRuleGroupAssociationsRequest * @return Result of the ListFirewallRuleGroupAssociations operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallRuleGroupAssociations * @see AWS API Documentation */ @Override public ListFirewallRuleGroupAssociationsResult listFirewallRuleGroupAssociations(ListFirewallRuleGroupAssociationsRequest request) { request = beforeClientExecution(request); return executeListFirewallRuleGroupAssociations(request); } @SdkInternalApi final ListFirewallRuleGroupAssociationsResult executeListFirewallRuleGroupAssociations( ListFirewallRuleGroupAssociationsRequest listFirewallRuleGroupAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallRuleGroupAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallRuleGroupAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listFirewallRuleGroupAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallRuleGroupAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallRuleGroupAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the minimal high-level information for the rule groups that you have defined. *

*

* A single call might return only a partial list of the rule groups. For information, see MaxResults. *

* * @param listFirewallRuleGroupsRequest * @return Result of the ListFirewallRuleGroups operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallRuleGroups * @see AWS API Documentation */ @Override public ListFirewallRuleGroupsResult listFirewallRuleGroups(ListFirewallRuleGroupsRequest request) { request = beforeClientExecution(request); return executeListFirewallRuleGroups(request); } @SdkInternalApi final ListFirewallRuleGroupsResult executeListFirewallRuleGroups(ListFirewallRuleGroupsRequest listFirewallRuleGroupsRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallRuleGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallRuleGroupsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listFirewallRuleGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallRuleGroups"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallRuleGroupsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the firewall rules that you have defined for the specified firewall rule group. DNS Firewall uses the * rules in a rule group to filter DNS network traffic for a VPC. *

*

* A single call might return only a partial list of the rules. For information, see MaxResults. *

* * @param listFirewallRulesRequest * @return Result of the ListFirewallRules operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListFirewallRules * @see AWS API Documentation */ @Override public ListFirewallRulesResult listFirewallRules(ListFirewallRulesRequest request) { request = beforeClientExecution(request); return executeListFirewallRules(request); } @SdkInternalApi final ListFirewallRulesResult executeListFirewallRules(ListFirewallRulesRequest listFirewallRulesRequest) { ExecutionContext executionContext = createExecutionContext(listFirewallRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListFirewallRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listFirewallRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListFirewallRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListFirewallRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all the Resolvers on Outposts that were created using the current Amazon Web Services account. *

* * @param listOutpostResolversRequest * @return Result of the ListOutpostResolvers operation returned by the service. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.ListOutpostResolvers * @see AWS API Documentation */ @Override public ListOutpostResolversResult listOutpostResolvers(ListOutpostResolversRequest request) { request = beforeClientExecution(request); return executeListOutpostResolvers(request); } @SdkInternalApi final ListOutpostResolversResult executeListOutpostResolvers(ListOutpostResolversRequest listOutpostResolversRequest) { ExecutionContext executionContext = createExecutionContext(listOutpostResolversRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListOutpostResolversRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listOutpostResolversRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListOutpostResolvers"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListOutpostResolversResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the Resolver configurations that you have defined. RouteĀ 53 Resolver uses the configurations to manage * DNS resolution behavior for your VPCs. *

* * @param listResolverConfigsRequest * @return Result of the ListResolverConfigs operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.ListResolverConfigs * @see AWS API Documentation */ @Override public ListResolverConfigsResult listResolverConfigs(ListResolverConfigsRequest request) { request = beforeClientExecution(request); return executeListResolverConfigs(request); } @SdkInternalApi final ListResolverConfigsResult executeListResolverConfigs(ListResolverConfigsRequest listResolverConfigsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverConfigsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverConfigsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listResolverConfigsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverConfigs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverConfigsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the configurations for DNSSEC validation that are associated with the current Amazon Web Services account. *

* * @param listResolverDnssecConfigsRequest * @return Result of the ListResolverDnssecConfigs operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.ListResolverDnssecConfigs * @see AWS API Documentation */ @Override public ListResolverDnssecConfigsResult listResolverDnssecConfigs(ListResolverDnssecConfigsRequest request) { request = beforeClientExecution(request); return executeListResolverDnssecConfigs(request); } @SdkInternalApi final ListResolverDnssecConfigsResult executeListResolverDnssecConfigs(ListResolverDnssecConfigsRequest listResolverDnssecConfigsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverDnssecConfigsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverDnssecConfigsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResolverDnssecConfigsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverDnssecConfigs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverDnssecConfigsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets the IP addresses for a specified Resolver endpoint. *

* * @param listResolverEndpointIpAddressesRequest * @return Result of the ListResolverEndpointIpAddresses operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListResolverEndpointIpAddresses * @see AWS API Documentation */ @Override public ListResolverEndpointIpAddressesResult listResolverEndpointIpAddresses(ListResolverEndpointIpAddressesRequest request) { request = beforeClientExecution(request); return executeListResolverEndpointIpAddresses(request); } @SdkInternalApi final ListResolverEndpointIpAddressesResult executeListResolverEndpointIpAddresses( ListResolverEndpointIpAddressesRequest listResolverEndpointIpAddressesRequest) { ExecutionContext executionContext = createExecutionContext(listResolverEndpointIpAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverEndpointIpAddressesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResolverEndpointIpAddressesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverEndpointIpAddresses"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverEndpointIpAddressesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all the Resolver endpoints that were created using the current Amazon Web Services account. *

* * @param listResolverEndpointsRequest * @return Result of the ListResolverEndpoints operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListResolverEndpoints * @see AWS API Documentation */ @Override public ListResolverEndpointsResult listResolverEndpoints(ListResolverEndpointsRequest request) { request = beforeClientExecution(request); return executeListResolverEndpoints(request); } @SdkInternalApi final ListResolverEndpointsResult executeListResolverEndpoints(ListResolverEndpointsRequest listResolverEndpointsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverEndpointsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverEndpointsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listResolverEndpointsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverEndpoints"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverEndpointsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists information about associations between Amazon VPCs and query logging configurations. *

* * @param listResolverQueryLogConfigAssociationsRequest * @return Result of the ListResolverQueryLogConfigAssociations operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.ListResolverQueryLogConfigAssociations * @see AWS API Documentation */ @Override public ListResolverQueryLogConfigAssociationsResult listResolverQueryLogConfigAssociations(ListResolverQueryLogConfigAssociationsRequest request) { request = beforeClientExecution(request); return executeListResolverQueryLogConfigAssociations(request); } @SdkInternalApi final ListResolverQueryLogConfigAssociationsResult executeListResolverQueryLogConfigAssociations( ListResolverQueryLogConfigAssociationsRequest listResolverQueryLogConfigAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverQueryLogConfigAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverQueryLogConfigAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResolverQueryLogConfigAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverQueryLogConfigAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverQueryLogConfigAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists information about the specified query logging configurations. Each configuration defines where you want * Resolver to save DNS query logs and specifies the VPCs that you want to log queries for. *

* * @param listResolverQueryLogConfigsRequest * @return Result of the ListResolverQueryLogConfigs operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.ListResolverQueryLogConfigs * @see AWS API Documentation */ @Override public ListResolverQueryLogConfigsResult listResolverQueryLogConfigs(ListResolverQueryLogConfigsRequest request) { request = beforeClientExecution(request); return executeListResolverQueryLogConfigs(request); } @SdkInternalApi final ListResolverQueryLogConfigsResult executeListResolverQueryLogConfigs(ListResolverQueryLogConfigsRequest listResolverQueryLogConfigsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverQueryLogConfigsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverQueryLogConfigsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResolverQueryLogConfigsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverQueryLogConfigs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverQueryLogConfigsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the associations that were created between Resolver rules and VPCs using the current Amazon Web Services * account. *

* * @param listResolverRuleAssociationsRequest * @return Result of the ListResolverRuleAssociations operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListResolverRuleAssociations * @see AWS API Documentation */ @Override public ListResolverRuleAssociationsResult listResolverRuleAssociations(ListResolverRuleAssociationsRequest request) { request = beforeClientExecution(request); return executeListResolverRuleAssociations(request); } @SdkInternalApi final ListResolverRuleAssociationsResult executeListResolverRuleAssociations(ListResolverRuleAssociationsRequest listResolverRuleAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(listResolverRuleAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverRuleAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listResolverRuleAssociationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverRuleAssociations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverRuleAssociationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the Resolver rules that were created using the current Amazon Web Services account. *

* * @param listResolverRulesRequest * @return Result of the ListResolverRules operation returned by the service. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListResolverRules * @see AWS API Documentation */ @Override public ListResolverRulesResult listResolverRules(ListResolverRulesRequest request) { request = beforeClientExecution(request); return executeListResolverRules(request); } @SdkInternalApi final ListResolverRulesResult executeListResolverRules(ListResolverRulesRequest listResolverRulesRequest) { ExecutionContext executionContext = createExecutionContext(listResolverRulesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListResolverRulesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listResolverRulesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListResolverRules"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListResolverRulesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the tags that you associated with the specified resource. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidNextTokenException * The value that you specified for NextToken in a List request isn't valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Attaches an Identity and Access Management (Amazon Web Services IAM) policy for sharing the rule group. You can * use the policy to share the rule group using Resource Access Manager (RAM). *

* * @param putFirewallRuleGroupPolicyRequest * @return Result of the PutFirewallRuleGroupPolicy operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.PutFirewallRuleGroupPolicy * @see AWS API Documentation */ @Override public PutFirewallRuleGroupPolicyResult putFirewallRuleGroupPolicy(PutFirewallRuleGroupPolicyRequest request) { request = beforeClientExecution(request); return executePutFirewallRuleGroupPolicy(request); } @SdkInternalApi final PutFirewallRuleGroupPolicyResult executePutFirewallRuleGroupPolicy(PutFirewallRuleGroupPolicyRequest putFirewallRuleGroupPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putFirewallRuleGroupPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutFirewallRuleGroupPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putFirewallRuleGroupPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutFirewallRuleGroupPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutFirewallRuleGroupPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Specifies an Amazon Web Services account that you want to share a query logging configuration with, the query * logging configuration that you want to share, and the operations that you want the account to be able to perform * on the configuration. *

* * @param putResolverQueryLogConfigPolicyRequest * @return Result of the PutResolverQueryLogConfigPolicy operation returned by the service. * @throws InvalidPolicyDocumentException * The specified Resolver rule policy is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws UnknownResourceException * The specified resource doesn't exist. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.PutResolverQueryLogConfigPolicy * @see AWS API Documentation */ @Override public PutResolverQueryLogConfigPolicyResult putResolverQueryLogConfigPolicy(PutResolverQueryLogConfigPolicyRequest request) { request = beforeClientExecution(request); return executePutResolverQueryLogConfigPolicy(request); } @SdkInternalApi final PutResolverQueryLogConfigPolicyResult executePutResolverQueryLogConfigPolicy( PutResolverQueryLogConfigPolicyRequest putResolverQueryLogConfigPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putResolverQueryLogConfigPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutResolverQueryLogConfigPolicyRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(putResolverQueryLogConfigPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutResolverQueryLogConfigPolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutResolverQueryLogConfigPolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Specifies an Amazon Web Services rule that you want to share with another account, the account that you want to * share the rule with, and the operations that you want the account to be able to perform on the rule. *

* * @param putResolverRulePolicyRequest * @return Result of the PutResolverRulePolicy operation returned by the service. * @throws InvalidPolicyDocumentException * The specified Resolver rule policy is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws UnknownResourceException * The specified resource doesn't exist. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.PutResolverRulePolicy * @see AWS API Documentation */ @Override public PutResolverRulePolicyResult putResolverRulePolicy(PutResolverRulePolicyRequest request) { request = beforeClientExecution(request); return executePutResolverRulePolicy(request); } @SdkInternalApi final PutResolverRulePolicyResult executePutResolverRulePolicy(PutResolverRulePolicyRequest putResolverRulePolicyRequest) { ExecutionContext executionContext = createExecutionContext(putResolverRulePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutResolverRulePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putResolverRulePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutResolverRulePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutResolverRulePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds one or more tags to a specified resource. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InvalidTagException * The specified tag is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.TagResource * @see AWS * API Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes one or more tags from a specified resource. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UntagResource * @see AWS * API Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the configuration of the firewall behavior provided by DNS Firewall for a single VPC from Amazon Virtual * Private Cloud (Amazon VPC). *

* * @param updateFirewallConfigRequest * @return Result of the UpdateFirewallConfig operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateFirewallConfig * @see AWS API Documentation */ @Override public UpdateFirewallConfigResult updateFirewallConfig(UpdateFirewallConfigRequest request) { request = beforeClientExecution(request); return executeUpdateFirewallConfig(request); } @SdkInternalApi final UpdateFirewallConfigResult executeUpdateFirewallConfig(UpdateFirewallConfigRequest updateFirewallConfigRequest) { ExecutionContext executionContext = createExecutionContext(updateFirewallConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFirewallConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateFirewallConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFirewallConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFirewallConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the firewall domain list from an array of domain specifications. *

* * @param updateFirewallDomainsRequest * @return Result of the UpdateFirewallDomains operation returned by the service. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateFirewallDomains * @see AWS API Documentation */ @Override public UpdateFirewallDomainsResult updateFirewallDomains(UpdateFirewallDomainsRequest request) { request = beforeClientExecution(request); return executeUpdateFirewallDomains(request); } @SdkInternalApi final UpdateFirewallDomainsResult executeUpdateFirewallDomains(UpdateFirewallDomainsRequest updateFirewallDomainsRequest) { ExecutionContext executionContext = createExecutionContext(updateFirewallDomainsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFirewallDomainsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateFirewallDomainsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFirewallDomains"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFirewallDomainsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the specified firewall rule. *

* * @param updateFirewallRuleRequest * @return Result of the UpdateFirewallRule operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateFirewallRule * @see AWS API Documentation */ @Override public UpdateFirewallRuleResult updateFirewallRule(UpdateFirewallRuleRequest request) { request = beforeClientExecution(request); return executeUpdateFirewallRule(request); } @SdkInternalApi final UpdateFirewallRuleResult executeUpdateFirewallRule(UpdateFirewallRuleRequest updateFirewallRuleRequest) { ExecutionContext executionContext = createExecutionContext(updateFirewallRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFirewallRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateFirewallRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFirewallRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFirewallRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Changes the association of a FirewallRuleGroup with a VPC. The association enables DNS filtering for the * VPC. *

* * @param updateFirewallRuleGroupAssociationRequest * @return Result of the UpdateFirewallRuleGroupAssociation operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateFirewallRuleGroupAssociation * @see AWS API Documentation */ @Override public UpdateFirewallRuleGroupAssociationResult updateFirewallRuleGroupAssociation(UpdateFirewallRuleGroupAssociationRequest request) { request = beforeClientExecution(request); return executeUpdateFirewallRuleGroupAssociation(request); } @SdkInternalApi final UpdateFirewallRuleGroupAssociationResult executeUpdateFirewallRuleGroupAssociation( UpdateFirewallRuleGroupAssociationRequest updateFirewallRuleGroupAssociationRequest) { ExecutionContext executionContext = createExecutionContext(updateFirewallRuleGroupAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFirewallRuleGroupAssociationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateFirewallRuleGroupAssociationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateFirewallRuleGroupAssociation"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFirewallRuleGroupAssociationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* You can use UpdateOutpostResolver to update the instance count, type, or name of a Resolver on an * Outpost. *

* * @param updateOutpostResolverRequest * @return Result of the UpdateOutpostResolver operation returned by the service. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ConflictException * The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is * in the process of being deleted, or you can't import domains into a domain list that is in the process of * being deleted. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ServiceQuotaExceededException * Fulfilling the request would cause one or more quotas to be exceeded. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.UpdateOutpostResolver * @see AWS API Documentation */ @Override public UpdateOutpostResolverResult updateOutpostResolver(UpdateOutpostResolverRequest request) { request = beforeClientExecution(request); return executeUpdateOutpostResolver(request); } @SdkInternalApi final UpdateOutpostResolverResult executeUpdateOutpostResolver(UpdateOutpostResolverRequest updateOutpostResolverRequest) { ExecutionContext executionContext = createExecutionContext(updateOutpostResolverRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateOutpostResolverRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateOutpostResolverRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateOutpostResolver"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateOutpostResolverResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the behavior configuration of RouteĀ 53 Resolver behavior for a single VPC from Amazon Virtual Private * Cloud. *

* * @param updateResolverConfigRequest * @return Result of the UpdateResolverConfig operation returned by the service. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ResourceUnavailableException * The specified resource isn't available. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @throws ValidationException * You have provided an invalid command. Supported values are ADD, REMOVE, or * REPLACE a domain. * @sample AmazonRoute53Resolver.UpdateResolverConfig * @see AWS API Documentation */ @Override public UpdateResolverConfigResult updateResolverConfig(UpdateResolverConfigRequest request) { request = beforeClientExecution(request); return executeUpdateResolverConfig(request); } @SdkInternalApi final UpdateResolverConfigResult executeUpdateResolverConfig(UpdateResolverConfigRequest updateResolverConfigRequest) { ExecutionContext executionContext = createExecutionContext(updateResolverConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateResolverConfigRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateResolverConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateResolverConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateResolverConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates an existing DNSSEC validation configuration. If there is no existing DNSSEC validation configuration, one * is created. *

* * @param updateResolverDnssecConfigRequest * @return Result of the UpdateResolverDnssecConfig operation returned by the service. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @throws AccessDeniedException * The current account doesn't have the IAM permissions required to perform the specified Resolver * operation. * @sample AmazonRoute53Resolver.UpdateResolverDnssecConfig * @see AWS API Documentation */ @Override public UpdateResolverDnssecConfigResult updateResolverDnssecConfig(UpdateResolverDnssecConfigRequest request) { request = beforeClientExecution(request); return executeUpdateResolverDnssecConfig(request); } @SdkInternalApi final UpdateResolverDnssecConfigResult executeUpdateResolverDnssecConfig(UpdateResolverDnssecConfigRequest updateResolverDnssecConfigRequest) { ExecutionContext executionContext = createExecutionContext(updateResolverDnssecConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateResolverDnssecConfigRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateResolverDnssecConfigRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateResolverDnssecConfig"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateResolverDnssecConfigResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the name, or enpoint type for an inbound or an outbound Resolver endpoint. You can only update between * IPV4 and DUALSTACK, IPV6 endpoint type can't be updated to other type. *

* * @param updateResolverEndpointRequest * @return Result of the UpdateResolverEndpoint operation returned by the service. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws InvalidRequestException * The request is invalid. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateResolverEndpoint * @see AWS API Documentation */ @Override public UpdateResolverEndpointResult updateResolverEndpoint(UpdateResolverEndpointRequest request) { request = beforeClientExecution(request); return executeUpdateResolverEndpoint(request); } @SdkInternalApi final UpdateResolverEndpointResult executeUpdateResolverEndpoint(UpdateResolverEndpointRequest updateResolverEndpointRequest) { ExecutionContext executionContext = createExecutionContext(updateResolverEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateResolverEndpointRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateResolverEndpointRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateResolverEndpoint"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateResolverEndpointResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates settings for a specified Resolver rule. ResolverRuleId is required, and all other parameters * are optional. If you don't specify a parameter, it retains its current value. *

* * @param updateResolverRuleRequest * @return Result of the UpdateResolverRule operation returned by the service. * @throws InvalidRequestException * The request is invalid. * @throws InvalidParameterException * One or more parameters in this request are not valid. * @throws ResourceNotFoundException * The specified resource doesn't exist. * @throws ResourceUnavailableException * The specified resource isn't available. * @throws LimitExceededException * The request caused one or more limits to be exceeded. * @throws InternalServiceErrorException * We encountered an unknown error. Try again in a few minutes. * @throws ThrottlingException * The request was throttled. Try again in a few minutes. * @sample AmazonRoute53Resolver.UpdateResolverRule * @see AWS API Documentation */ @Override public UpdateResolverRuleResult updateResolverRule(UpdateResolverRuleRequest request) { request = beforeClientExecution(request); return executeUpdateResolverRule(request); } @SdkInternalApi final UpdateResolverRuleResult executeUpdateResolverRule(UpdateResolverRuleRequest updateResolverRuleRequest) { ExecutionContext executionContext = createExecutionContext(updateResolverRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateResolverRuleRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateResolverRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Route53Resolver"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateResolverRule"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateResolverRuleResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }