All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.dax.DefaultDaxClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon DynamoDB Accelerator (DAX) module holds the client classes that are used for communicating with Amazon DynamoDB Accelerator (DAX).

There is a newer version: 2.29.15
Show newest version
/*
 * Copyright 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 software.amazon.awssdk.services.dax;

import java.util.Collections;
import java.util.List;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.services.dax.model.ClusterAlreadyExistsException;
import software.amazon.awssdk.services.dax.model.ClusterNotFoundException;
import software.amazon.awssdk.services.dax.model.ClusterQuotaForCustomerExceededException;
import software.amazon.awssdk.services.dax.model.CreateClusterRequest;
import software.amazon.awssdk.services.dax.model.CreateClusterResponse;
import software.amazon.awssdk.services.dax.model.CreateParameterGroupRequest;
import software.amazon.awssdk.services.dax.model.CreateParameterGroupResponse;
import software.amazon.awssdk.services.dax.model.CreateSubnetGroupRequest;
import software.amazon.awssdk.services.dax.model.CreateSubnetGroupResponse;
import software.amazon.awssdk.services.dax.model.DaxException;
import software.amazon.awssdk.services.dax.model.DecreaseReplicationFactorRequest;
import software.amazon.awssdk.services.dax.model.DecreaseReplicationFactorResponse;
import software.amazon.awssdk.services.dax.model.DeleteClusterRequest;
import software.amazon.awssdk.services.dax.model.DeleteClusterResponse;
import software.amazon.awssdk.services.dax.model.DeleteParameterGroupRequest;
import software.amazon.awssdk.services.dax.model.DeleteParameterGroupResponse;
import software.amazon.awssdk.services.dax.model.DeleteSubnetGroupRequest;
import software.amazon.awssdk.services.dax.model.DeleteSubnetGroupResponse;
import software.amazon.awssdk.services.dax.model.DescribeClustersRequest;
import software.amazon.awssdk.services.dax.model.DescribeClustersResponse;
import software.amazon.awssdk.services.dax.model.DescribeDefaultParametersRequest;
import software.amazon.awssdk.services.dax.model.DescribeDefaultParametersResponse;
import software.amazon.awssdk.services.dax.model.DescribeEventsRequest;
import software.amazon.awssdk.services.dax.model.DescribeEventsResponse;
import software.amazon.awssdk.services.dax.model.DescribeParameterGroupsRequest;
import software.amazon.awssdk.services.dax.model.DescribeParameterGroupsResponse;
import software.amazon.awssdk.services.dax.model.DescribeParametersRequest;
import software.amazon.awssdk.services.dax.model.DescribeParametersResponse;
import software.amazon.awssdk.services.dax.model.DescribeSubnetGroupsRequest;
import software.amazon.awssdk.services.dax.model.DescribeSubnetGroupsResponse;
import software.amazon.awssdk.services.dax.model.IncreaseReplicationFactorRequest;
import software.amazon.awssdk.services.dax.model.IncreaseReplicationFactorResponse;
import software.amazon.awssdk.services.dax.model.InsufficientClusterCapacityException;
import software.amazon.awssdk.services.dax.model.InvalidArnException;
import software.amazon.awssdk.services.dax.model.InvalidClusterStateException;
import software.amazon.awssdk.services.dax.model.InvalidParameterCombinationException;
import software.amazon.awssdk.services.dax.model.InvalidParameterGroupStateException;
import software.amazon.awssdk.services.dax.model.InvalidParameterValueException;
import software.amazon.awssdk.services.dax.model.InvalidSubnetException;
import software.amazon.awssdk.services.dax.model.InvalidVpcNetworkStateException;
import software.amazon.awssdk.services.dax.model.ListTagsRequest;
import software.amazon.awssdk.services.dax.model.ListTagsResponse;
import software.amazon.awssdk.services.dax.model.NodeNotFoundException;
import software.amazon.awssdk.services.dax.model.NodeQuotaForClusterExceededException;
import software.amazon.awssdk.services.dax.model.NodeQuotaForCustomerExceededException;
import software.amazon.awssdk.services.dax.model.ParameterGroupAlreadyExistsException;
import software.amazon.awssdk.services.dax.model.ParameterGroupNotFoundException;
import software.amazon.awssdk.services.dax.model.ParameterGroupQuotaExceededException;
import software.amazon.awssdk.services.dax.model.RebootNodeRequest;
import software.amazon.awssdk.services.dax.model.RebootNodeResponse;
import software.amazon.awssdk.services.dax.model.ServiceLinkedRoleNotFoundException;
import software.amazon.awssdk.services.dax.model.ServiceQuotaExceededException;
import software.amazon.awssdk.services.dax.model.SubnetGroupAlreadyExistsException;
import software.amazon.awssdk.services.dax.model.SubnetGroupInUseException;
import software.amazon.awssdk.services.dax.model.SubnetGroupNotFoundException;
import software.amazon.awssdk.services.dax.model.SubnetGroupQuotaExceededException;
import software.amazon.awssdk.services.dax.model.SubnetInUseException;
import software.amazon.awssdk.services.dax.model.SubnetQuotaExceededException;
import software.amazon.awssdk.services.dax.model.TagNotFoundException;
import software.amazon.awssdk.services.dax.model.TagQuotaPerResourceExceededException;
import software.amazon.awssdk.services.dax.model.TagResourceRequest;
import software.amazon.awssdk.services.dax.model.TagResourceResponse;
import software.amazon.awssdk.services.dax.model.UntagResourceRequest;
import software.amazon.awssdk.services.dax.model.UntagResourceResponse;
import software.amazon.awssdk.services.dax.model.UpdateClusterRequest;
import software.amazon.awssdk.services.dax.model.UpdateClusterResponse;
import software.amazon.awssdk.services.dax.model.UpdateParameterGroupRequest;
import software.amazon.awssdk.services.dax.model.UpdateParameterGroupResponse;
import software.amazon.awssdk.services.dax.model.UpdateSubnetGroupRequest;
import software.amazon.awssdk.services.dax.model.UpdateSubnetGroupResponse;
import software.amazon.awssdk.services.dax.transform.CreateClusterRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.CreateParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.CreateSubnetGroupRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DecreaseReplicationFactorRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DeleteClusterRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DeleteParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DeleteSubnetGroupRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeClustersRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeDefaultParametersRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeEventsRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeParameterGroupsRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeParametersRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.DescribeSubnetGroupsRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.IncreaseReplicationFactorRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.ListTagsRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.RebootNodeRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.TagResourceRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.UntagResourceRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.UpdateClusterRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.UpdateParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.dax.transform.UpdateSubnetGroupRequestMarshaller;
import software.amazon.awssdk.utils.Logger;

/**
 * Internal implementation of {@link DaxClient}.
 *
 * @see DaxClient#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultDaxClient implements DaxClient {
    private static final Logger log = Logger.loggerFor(DefaultDaxClient.class);

    private final SyncClientHandler clientHandler;

    private final AwsJsonProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultDaxClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration;
        this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
    }

    @Override
    public final String serviceName() {
        return SERVICE_NAME;
    }

    /**
     * 

* Creates a DAX cluster. All nodes in the cluster run the same DAX caching software. *

* * @param createClusterRequest * @return Result of the CreateCluster operation returned by the service. * @throws ClusterAlreadyExistsException * You already have a DAX cluster with the given identifier. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws InsufficientClusterCapacityException * There are not enough system resources to create the cluster you requested (or to resize an * already-existing cluster). * @throws SubnetGroupNotFoundException * The requested subnet group name does not refer to an existing subnet group. * @throws InvalidParameterGroupStateException * One or more parameters in a parameter group are in an invalid state. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ClusterQuotaForCustomerExceededException * You have attempted to exceed the maximum number of DAX clusters for your AWS account. * @throws NodeQuotaForClusterExceededException * You have attempted to exceed the maximum number of nodes for a DAX cluster. * @throws NodeQuotaForCustomerExceededException * You have attempted to exceed the maximum number of nodes for your AWS account. * @throws InvalidVpcNetworkStateException * The VPC network is in an invalid state. * @throws TagQuotaPerResourceExceededException * You have exceeded the maximum number of tags for this DAX cluster. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws ServiceQuotaExceededException * You have reached the maximum number of x509 certificates that can be created for encrypted clusters in a * 30 day period. Contact AWS customer support to discuss options for continuing to create encrypted * clusters. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.CreateCluster * @see AWS API * Documentation */ @Override public CreateClusterResponse createCluster(CreateClusterRequest createClusterRequest) throws ClusterAlreadyExistsException, InvalidClusterStateException, InsufficientClusterCapacityException, SubnetGroupNotFoundException, InvalidParameterGroupStateException, ParameterGroupNotFoundException, ClusterQuotaForCustomerExceededException, NodeQuotaForClusterExceededException, NodeQuotaForCustomerExceededException, InvalidVpcNetworkStateException, TagQuotaPerResourceExceededException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, ServiceQuotaExceededException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateClusterResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createClusterRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCluster"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateCluster").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createClusterRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateClusterRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Creates a new parameter group. A parameter group is a collection of parameters that you apply to all of the nodes * in a DAX cluster. *

* * @param createParameterGroupRequest * @return Result of the CreateParameterGroup operation returned by the service. * @throws ParameterGroupQuotaExceededException * You have attempted to exceed the maximum number of parameter groups. * @throws ParameterGroupAlreadyExistsException * The specified parameter group already exists. * @throws InvalidParameterGroupStateException * One or more parameters in a parameter group are in an invalid state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.CreateParameterGroup * @see AWS API * Documentation */ @Override public CreateParameterGroupResponse createParameterGroup(CreateParameterGroupRequest createParameterGroupRequest) throws ParameterGroupQuotaExceededException, ParameterGroupAlreadyExistsException, InvalidParameterGroupStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, CreateParameterGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createParameterGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateParameterGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateParameterGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createParameterGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateParameterGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Creates a new subnet group. *

* * @param createSubnetGroupRequest * @return Result of the CreateSubnetGroup operation returned by the service. * @throws SubnetGroupAlreadyExistsException * The specified subnet group already exists. * @throws SubnetGroupQuotaExceededException * The request cannot be processed because it would exceed the allowed number of subnets in a subnet group. * @throws SubnetQuotaExceededException * The request cannot be processed because it would exceed the allowed number of subnets in a subnet group. * @throws InvalidSubnetException * An invalid subnet identifier was specified. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.CreateSubnetGroup * @see AWS API * Documentation */ @Override public CreateSubnetGroupResponse createSubnetGroup(CreateSubnetGroupRequest createSubnetGroupRequest) throws SubnetGroupAlreadyExistsException, SubnetGroupQuotaExceededException, SubnetQuotaExceededException, InvalidSubnetException, ServiceLinkedRoleNotFoundException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateSubnetGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, createSubnetGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSubnetGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateSubnetGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(createSubnetGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateSubnetGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Removes one or more nodes from a DAX cluster. *

* *

* You cannot use DecreaseReplicationFactor to remove the last node in a DAX cluster. If you need to do * this, use DeleteCluster instead. *

*
* * @param decreaseReplicationFactorRequest * @return Result of the DecreaseReplicationFactor operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws NodeNotFoundException * None of the nodes in the cluster have the given node ID. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DecreaseReplicationFactor * @see AWS * API Documentation */ @Override public DecreaseReplicationFactorResponse decreaseReplicationFactor( DecreaseReplicationFactorRequest decreaseReplicationFactorRequest) throws ClusterNotFoundException, NodeNotFoundException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DecreaseReplicationFactorResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, decreaseReplicationFactorRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DecreaseReplicationFactor"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DecreaseReplicationFactor").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(decreaseReplicationFactorRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DecreaseReplicationFactorRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes a previously provisioned DAX cluster. DeleteCluster deletes all associated nodes, node endpoints * and the DAX cluster itself. When you receive a successful response from this action, DAX immediately begins * deleting the cluster; you cannot cancel or revert this action. *

* * @param deleteClusterRequest * @return Result of the DeleteCluster operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DeleteCluster * @see AWS API * Documentation */ @Override public DeleteClusterResponse deleteCluster(DeleteClusterRequest deleteClusterRequest) throws ClusterNotFoundException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteClusterResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteClusterRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCluster"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteCluster").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteClusterRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteClusterRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes the specified parameter group. You cannot delete a parameter group if it is associated with any DAX * clusters. *

* * @param deleteParameterGroupRequest * @return Result of the DeleteParameterGroup operation returned by the service. * @throws InvalidParameterGroupStateException * One or more parameters in a parameter group are in an invalid state. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DeleteParameterGroup * @see AWS API * Documentation */ @Override public DeleteParameterGroupResponse deleteParameterGroup(DeleteParameterGroupRequest deleteParameterGroupRequest) throws InvalidParameterGroupStateException, ParameterGroupNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteParameterGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteParameterGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteParameterGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteParameterGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteParameterGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteParameterGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes a subnet group. *

* *

* You cannot delete a subnet group if it is associated with any DAX clusters. *

*
* * @param deleteSubnetGroupRequest * @return Result of the DeleteSubnetGroup operation returned by the service. * @throws SubnetGroupInUseException * The specified subnet group is currently in use. * @throws SubnetGroupNotFoundException * The requested subnet group name does not refer to an existing subnet group. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DeleteSubnetGroup * @see AWS API * Documentation */ @Override public DeleteSubnetGroupResponse deleteSubnetGroup(DeleteSubnetGroupRequest deleteSubnetGroupRequest) throws SubnetGroupInUseException, SubnetGroupNotFoundException, ServiceLinkedRoleNotFoundException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteSubnetGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteSubnetGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteSubnetGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteSubnetGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(deleteSubnetGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteSubnetGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns information about all provisioned DAX clusters if no cluster identifier is specified, or about a specific * DAX cluster if a cluster identifier is supplied. *

*

* If the cluster is in the CREATING state, only cluster level information will be displayed until all of the nodes * are successfully provisioned. *

*

* If the cluster is in the DELETING state, only cluster level information will be displayed. *

*

* If nodes are currently being added to the DAX cluster, node endpoint information and creation time for the * additional nodes will not be displayed until they are completely provisioned. When the DAX cluster state is * available, the cluster is ready for use. *

*

* If nodes are currently being removed from the DAX cluster, no endpoint information for the removed nodes is * displayed. *

* * @param describeClustersRequest * @return Result of the DescribeClusters operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeClusters * @see AWS API * Documentation */ @Override public DescribeClustersResponse describeClusters(DescribeClustersRequest describeClustersRequest) throws ClusterNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DescribeClustersResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeClustersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeClusters"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeClusters").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeClustersRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeClustersRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the default system parameter information for the DAX caching software. *

* * @param describeDefaultParametersRequest * @return Result of the DescribeDefaultParameters operation returned by the service. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeDefaultParameters * @see AWS * API Documentation */ @Override public DescribeDefaultParametersResponse describeDefaultParameters( DescribeDefaultParametersRequest describeDefaultParametersRequest) throws ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeDefaultParametersResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDefaultParametersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDefaultParameters"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeDefaultParameters").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeDefaultParametersRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeDefaultParametersRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns events related to DAX clusters and parameter groups. You can obtain events specific to a particular DAX * cluster or parameter group by providing the name as a parameter. *

*

* By default, only the events occurring within the last 24 hours are returned; however, you can retrieve up to 14 * days' worth of events if necessary. *

* * @param describeEventsRequest * @return Result of the DescribeEvents operation returned by the service. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeEvents * @see AWS API * Documentation */ @Override public DescribeEventsResponse describeEvents(DescribeEventsRequest describeEventsRequest) throws ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DescribeEventsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEventsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEvents"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeEvents").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeEventsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeEventsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns a list of parameter group descriptions. If a parameter group name is specified, the list will contain * only the descriptions for that group. *

* * @param describeParameterGroupsRequest * @return Result of the DescribeParameterGroups operation returned by the service. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeParameterGroups * @see AWS * API Documentation */ @Override public DescribeParameterGroupsResponse describeParameterGroups(DescribeParameterGroupsRequest describeParameterGroupsRequest) throws ParameterGroupNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeParameterGroupsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeParameterGroupsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeParameterGroups"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("DescribeParameterGroups").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeParameterGroupsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeParameterGroupsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the detailed parameter list for a particular parameter group. *

* * @param describeParametersRequest * @return Result of the DescribeParameters operation returned by the service. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeParameters * @see AWS API * Documentation */ @Override public DescribeParametersResponse describeParameters(DescribeParametersRequest describeParametersRequest) throws ParameterGroupNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeParametersResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeParametersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeParameters"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeParameters").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeParametersRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeParametersRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns a list of subnet group descriptions. If a subnet group name is specified, the list will contain only the * description of that group. *

* * @param describeSubnetGroupsRequest * @return Result of the DescribeSubnetGroups operation returned by the service. * @throws SubnetGroupNotFoundException * The requested subnet group name does not refer to an existing subnet group. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.DescribeSubnetGroups * @see AWS API * Documentation */ @Override public DescribeSubnetGroupsResponse describeSubnetGroups(DescribeSubnetGroupsRequest describeSubnetGroupsRequest) throws SubnetGroupNotFoundException, ServiceLinkedRoleNotFoundException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DescribeSubnetGroupsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSubnetGroupsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSubnetGroups"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeSubnetGroups").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(describeSubnetGroupsRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeSubnetGroupsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Adds one or more nodes to a DAX cluster. *

* * @param increaseReplicationFactorRequest * @return Result of the IncreaseReplicationFactor operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws InsufficientClusterCapacityException * There are not enough system resources to create the cluster you requested (or to resize an * already-existing cluster). * @throws InvalidVpcNetworkStateException * The VPC network is in an invalid state. * @throws NodeQuotaForClusterExceededException * You have attempted to exceed the maximum number of nodes for a DAX cluster. * @throws NodeQuotaForCustomerExceededException * You have attempted to exceed the maximum number of nodes for your AWS account. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.IncreaseReplicationFactor * @see AWS * API Documentation */ @Override public IncreaseReplicationFactorResponse increaseReplicationFactor( IncreaseReplicationFactorRequest increaseReplicationFactorRequest) throws ClusterNotFoundException, InvalidClusterStateException, InsufficientClusterCapacityException, InvalidVpcNetworkStateException, NodeQuotaForClusterExceededException, NodeQuotaForCustomerExceededException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, IncreaseReplicationFactorResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, increaseReplicationFactorRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "IncreaseReplicationFactor"); return clientHandler .execute(new ClientExecutionParams() .withOperationName("IncreaseReplicationFactor").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(increaseReplicationFactorRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new IncreaseReplicationFactorRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* List all of the tags for a DAX cluster. You can call ListTags up to 10 times per second, per * account. *

* * @param listTagsRequest * @return Result of the ListTags operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws InvalidArnException * The Amazon Resource Name (ARN) supplied in the request is not valid. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.ListTags * @see AWS API * Documentation */ @Override public ListTagsResponse listTags(ListTagsRequest listTagsRequest) throws ClusterNotFoundException, InvalidArnException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListTagsResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTags"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTags").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(listTagsRequest) .withMetricCollector(apiCallMetricCollector).withMarshaller(new ListTagsRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Reboots a single node of a DAX cluster. The reboot action takes place as soon as possible. During the reboot, the * node status is set to REBOOTING. *

* *

* RebootNode restarts the DAX engine process and does not remove the contents of the cache. *

*
* * @param rebootNodeRequest * @return Result of the RebootNode operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws NodeNotFoundException * None of the nodes in the cluster have the given node ID. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.RebootNode * @see AWS API * Documentation */ @Override public RebootNodeResponse rebootNode(RebootNodeRequest rebootNodeRequest) throws ClusterNotFoundException, NodeNotFoundException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, RebootNodeResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, rebootNodeRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RebootNode"); return clientHandler .execute(new ClientExecutionParams().withOperationName("RebootNode") .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withInput(rebootNodeRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new RebootNodeRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Associates a set of tags with a DAX resource. You can call TagResource up to 5 times per second, per * account. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws TagQuotaPerResourceExceededException * You have exceeded the maximum number of tags for this DAX cluster. * @throws InvalidArnException * The Amazon Resource Name (ARN) supplied in the request is not valid. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.TagResource * @see AWS API * Documentation */ @Override public TagResourceResponse tagResource(TagResourceRequest tagResourceRequest) throws ClusterNotFoundException, TagQuotaPerResourceExceededException, InvalidArnException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, TagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("TagResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(tagResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new TagResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Removes the association of tags from a DAX resource. You can call UntagResource up to 5 times per * second, per account. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws InvalidArnException * The Amazon Resource Name (ARN) supplied in the request is not valid. * @throws TagNotFoundException * The tag does not exist. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResponse untagResource(UntagResourceRequest untagResourceRequest) throws ClusterNotFoundException, InvalidArnException, TagNotFoundException, InvalidClusterStateException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, UntagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UntagResource").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(untagResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UntagResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Modifies the settings for a DAX cluster. You can use this action to change one or more cluster configuration * parameters by specifying the parameters and the new values. *

* * @param updateClusterRequest * @return Result of the UpdateCluster operation returned by the service. * @throws InvalidClusterStateException * The requested DAX cluster is not in the available state. * @throws ClusterNotFoundException * The requested cluster ID does not refer to an existing DAX cluster. * @throws InvalidParameterGroupStateException * One or more parameters in a parameter group are in an invalid state. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.UpdateCluster * @see AWS API * Documentation */ @Override public UpdateClusterResponse updateCluster(UpdateClusterRequest updateClusterRequest) throws InvalidClusterStateException, ClusterNotFoundException, InvalidParameterGroupStateException, ParameterGroupNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, UpdateClusterResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateClusterRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateCluster"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateCluster").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateClusterRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateClusterRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Modifies the parameters of a parameter group. You can modify up to 20 parameters in a single request by * submitting a list parameter name and value pairs. *

* * @param updateParameterGroupRequest * @return Result of the UpdateParameterGroup operation returned by the service. * @throws InvalidParameterGroupStateException * One or more parameters in a parameter group are in an invalid state. * @throws ParameterGroupNotFoundException * The specified parameter group does not exist. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.UpdateParameterGroup * @see AWS API * Documentation */ @Override public UpdateParameterGroupResponse updateParameterGroup(UpdateParameterGroupRequest updateParameterGroupRequest) throws InvalidParameterGroupStateException, ParameterGroupNotFoundException, ServiceLinkedRoleNotFoundException, InvalidParameterValueException, InvalidParameterCombinationException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, UpdateParameterGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateParameterGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateParameterGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateParameterGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateParameterGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateParameterGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Modifies an existing subnet group. *

* * @param updateSubnetGroupRequest * @return Result of the UpdateSubnetGroup operation returned by the service. * @throws SubnetGroupNotFoundException * The requested subnet group name does not refer to an existing subnet group. * @throws SubnetQuotaExceededException * The request cannot be processed because it would exceed the allowed number of subnets in a subnet group. * @throws SubnetInUseException * The requested subnet is being used by another subnet group. * @throws InvalidSubnetException * An invalid subnet identifier was specified. * @throws ServiceLinkedRoleNotFoundException * The specified service linked role (SLR) was not found. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws DaxException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample DaxClient.UpdateSubnetGroup * @see AWS API * Documentation */ @Override public UpdateSubnetGroupResponse updateSubnetGroup(UpdateSubnetGroupRequest updateSubnetGroupRequest) throws SubnetGroupNotFoundException, SubnetQuotaExceededException, SubnetInUseException, InvalidSubnetException, ServiceLinkedRoleNotFoundException, AwsServiceException, SdkClientException, DaxException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, UpdateSubnetGroupResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); List metricPublishers = resolveMetricPublishers(clientConfiguration, updateSubnetGroupRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "DAX"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateSubnetGroup"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UpdateSubnetGroup").withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withInput(updateSubnetGroupRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UpdateSubnetGroupRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, JsonOperationMetadata operationMetadata) { return protocolFactory.createErrorResponseHandler(operationMetadata); } private > T init(T builder) { return builder .clientConfiguration(clientConfiguration) .defaultServiceExceptionSupplier(DaxException::builder) .protocol(AwsJsonProtocol.AWS_JSON) .protocolVersion("1.1") .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetQuotaExceededFault") .exceptionBuilderSupplier(SubnetQuotaExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetGroupNotFoundFault") .exceptionBuilderSupplier(SubnetGroupNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetGroupQuotaExceededFault") .exceptionBuilderSupplier(SubnetGroupQuotaExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ParameterGroupAlreadyExistsFault") .exceptionBuilderSupplier(ParameterGroupAlreadyExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetInUse") .exceptionBuilderSupplier(SubnetInUseException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ClusterNotFoundFault") .exceptionBuilderSupplier(ClusterNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidParameterValueException") .exceptionBuilderSupplier(InvalidParameterValueException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NodeNotFoundFault") .exceptionBuilderSupplier(NodeNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidARNFault") .exceptionBuilderSupplier(InvalidArnException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidParameterCombinationException") .exceptionBuilderSupplier(InvalidParameterCombinationException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NodeQuotaForCustomerExceededFault") .exceptionBuilderSupplier(NodeQuotaForCustomerExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidClusterStateFault") .exceptionBuilderSupplier(InvalidClusterStateException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InsufficientClusterCapacityFault") .exceptionBuilderSupplier(InsufficientClusterCapacityException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ServiceQuotaExceededException") .exceptionBuilderSupplier(ServiceQuotaExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TagNotFoundFault") .exceptionBuilderSupplier(TagNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidVPCNetworkStateFault") .exceptionBuilderSupplier(InvalidVpcNetworkStateException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("TagQuotaPerResourceExceeded") .exceptionBuilderSupplier(TagQuotaPerResourceExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ClusterQuotaForCustomerExceededFault") .exceptionBuilderSupplier(ClusterQuotaForCustomerExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetGroupInUseFault") .exceptionBuilderSupplier(SubnetGroupInUseException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidParameterGroupStateFault") .exceptionBuilderSupplier(InvalidParameterGroupStateException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ParameterGroupNotFoundFault") .exceptionBuilderSupplier(ParameterGroupNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InvalidSubnet") .exceptionBuilderSupplier(InvalidSubnetException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ClusterAlreadyExistsFault") .exceptionBuilderSupplier(ClusterAlreadyExistsException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ServiceLinkedRoleNotFoundFault") .exceptionBuilderSupplier(ServiceLinkedRoleNotFoundException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("NodeQuotaForClusterExceededFault") .exceptionBuilderSupplier(NodeQuotaForClusterExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ParameterGroupQuotaExceededFault") .exceptionBuilderSupplier(ParameterGroupQuotaExceededException::builder).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("SubnetGroupAlreadyExistsFault") .exceptionBuilderSupplier(SubnetGroupAlreadyExistsException::builder).build()); } @Override public void close() { clientHandler.close(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy