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

templates.endpoint-discovery.IdentifiersCacheLoader.ftl Maven / Gradle / Ivy

${fileHeader}
package ${metadata.packageName}.endpointdiscovery;

import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.cache.EndpointDiscoveryCacheLoader;
import com.amazonaws.endpointdiscovery.Constants;
import ${metadata.packageName}.${metadata.syncInterface};
import ${metadata.packageName}.model.${endpointOperation.syncReturnType};
import ${metadata.packageName}.model.${endpointOperation.input.variableType};
import ${metadata.packageName}.model.Endpoint;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Generated;

@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class ${className} implements EndpointDiscoveryCacheLoader> {

    private final ${metadata.syncInterface} client;

    public ${className}(${metadata.syncInterface} client) {
        this.client = client;
    }

    @Override
    public Map load(String key, AmazonWebServiceRequest discoveryRequest) {
        if (discoveryRequest == null) {
            discoveryRequest = new ${endpointOperation.input.variableType}();
        }

        DescribeEndpointsRequest request = (DescribeEndpointsRequest) discoveryRequest;
        ${endpointOperation.syncReturnType} response = client.${endpointOperation.methodName}(request);

        List endpoints = response.getEndpoints();

        if (endpoints == null || endpoints.size() == 0) {
            return null;
        }

        Endpoint endpoint = endpoints.get(0);

        Map endpointDetail = new HashMap();
        endpointDetail.put(Constants.CACHE_PERIOD, String.valueOf(endpoint.getCachePeriodInMinutes()));
        endpointDetail.put(Constants.ENDPOINT, endpoint.getAddress());

        return endpointDetail;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy