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

com.amazonaws.services.certificatemanager.AWSCertificateManagerClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Certificate Manager module holds the client classes that are used for communicating with AWS Certificate Manager service.

The newest version!
/*
 * Copyright 2010-2016 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.certificatemanager;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
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.services.certificatemanager.model.*;
import com.amazonaws.services.certificatemanager.model.transform.*;

/**
 * Client for accessing ACM. All service calls made using this client are
 * blocking, and will not return until the service call completes.
 * 

* AWS Certificate Manager *

* Welcome to the AWS Certificate Manager (ACM) Command Reference. This guide * provides descriptions, syntax, and usage examples for each ACM command. You * can use AWS Certificate Manager to request ACM Certificates for your * AWS-based websites and applications. For general information about using ACM * and for more information about using the console, see the AWS * Certificate Manager User Guide. For more information about using the ACM * API, see the AWS * Certificate Manager API Reference. *

*/ @ThreadSafe public class AWSCertificateManagerClient extends AmazonWebServiceClient implements AWSCertificateManager { /** Provider for AWS credentials. */ private AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory .getLog(AWSCertificateManager.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "acm"; /** The region metadata service name for computing region endpoints. */ private static final String DEFAULT_ENDPOINT_PREFIX = "acm"; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidTagException") .withModeledClass( com.amazonaws.services.certificatemanager.model.InvalidTagException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("TooManyTagsException") .withModeledClass( com.amazonaws.services.certificatemanager.model.TooManyTagsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ResourceInUseException") .withModeledClass( com.amazonaws.services.certificatemanager.model.ResourceInUseException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ResourceNotFoundException") .withModeledClass( com.amazonaws.services.certificatemanager.model.ResourceNotFoundException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("RequestInProgressException") .withModeledClass( com.amazonaws.services.certificatemanager.model.RequestInProgressException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidStateException") .withModeledClass( com.amazonaws.services.certificatemanager.model.InvalidStateException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "InvalidDomainValidationOptionsException") .withModeledClass( com.amazonaws.services.certificatemanager.model.InvalidDomainValidationOptionsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidArnException") .withModeledClass( com.amazonaws.services.certificatemanager.model.InvalidArnException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("LimitExceededException") .withModeledClass( com.amazonaws.services.certificatemanager.model.LimitExceededException.class))); /** * Constructs a new client to invoke service methods on ACM. A credentials * provider chain will be used that searches for credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AWSCertificateManagerClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on ACM. A credentials * provider chain will be used that searches for credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientConfiguration * The client configuration options controlling how this client * connects to ACM (ex: proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AWSCertificateManagerClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on ACM using the * specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ public AWSCertificateManagerClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on ACM using the * specified AWS account credentials and client configuration options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to ACM (ex: proxy settings, retry counts, etc.). */ public AWSCertificateManagerClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on ACM using the * specified AWS account credentials provider. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. */ public AWSCertificateManagerClient( AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on ACM using the * specified AWS account credentials provider and client configuration * options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to ACM (ex: proxy settings, retry counts, etc.). */ public AWSCertificateManagerClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on ACM using the * specified AWS account credentials provider, client configuration options, * and request metric collector. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to ACM (ex: proxy settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AWSCertificateManagerClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(DEFAULT_ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("https://acm.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/certificatemanager/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/certificatemanager/request.handler2s")); } /** *

* Adds one or more tags to an ACM Certificate. Tags are labels that you can * use to identify and organize your AWS resources. Each tag consists of a * key and an optional value. You specify the * certificate on input by its Amazon Resource Name (ARN). You specify the * tag by using a key-value pair. *

*

* You can apply a tag to just one certificate if you want to identify a * specific characteristic of that certificate, or you can apply the same * tag to multiple certificates if you want to filter for a common * relationship among those certificates. Similarly, you can apply the same * tag to multiple resources if you want to specify a relationship among * those resources. For example, you can add the same tag to an ACM * Certificate and an Elastic Load Balancing load balancer to indicate that * they are both used by the same website. For more information, see Tagging * ACM Certificates. *

*

* To remove one or more tags, use the RemoveTagsFromCertificate * action. To view all of the tags that have been applied to the * certificate, use the ListTagsForCertificate action. *

* * @param addTagsToCertificateRequest * @return Result of the AddTagsToCertificate operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @throws InvalidTagException * One or both of the values that make up the key-value pair is not * valid. For example, you cannot specify a tag value that begins * with aws:. * @throws TooManyTagsException * The request contains too many tags. Try the request again with * fewer tags. * @sample AWSCertificateManager.AddTagsToCertificate */ @Override public AddTagsToCertificateResult addTagsToCertificate( AddTagsToCertificateRequest addTagsToCertificateRequest) { ExecutionContext executionContext = createExecutionContext(addTagsToCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddTagsToCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(addTagsToCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new AddTagsToCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an ACM Certificate and its associated private key. If this action * succeeds, the certificate no longer appears in the list of ACM * Certificates that can be displayed by calling the ListCertificates * action or be retrieved by calling the GetCertificate action. The * certificate will not be available for use by other AWS services. *

* *

* You cannot delete an ACM Certificate that is being used by another AWS * service. To delete a certificate that is in use, the certificate * association must first be removed. *

*
* * @param deleteCertificateRequest * @return Result of the DeleteCertificate operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws ResourceInUseException * The certificate is in use by another AWS service in the caller's * account. Remove the association and try again. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AWSCertificateManager.DeleteCertificate */ @Override public DeleteCertificateResult deleteCertificate( DeleteCertificateRequest deleteCertificateRequest) { ExecutionContext executionContext = createExecutionContext(deleteCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deleteCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of the fields contained in the specified ACM Certificate. * For example, this action returns the certificate status, a flag that * indicates whether the certificate is associated with any other AWS * service, and the date at which the certificate request was created. You * specify the ACM Certificate on input by its Amazon Resource Name (ARN). *

* * @param describeCertificateRequest * @return Result of the DescribeCertificate operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AWSCertificateManager.DescribeCertificate */ @Override public DescribeCertificateResult describeCertificate( DescribeCertificateRequest describeCertificateRequest) { ExecutionContext executionContext = createExecutionContext(describeCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves an ACM Certificate and certificate chain for the certificate * specified by an ARN. The chain is an ordered list of certificates that * contains the root certificate, intermediate certificates of subordinate * CAs, and the ACM Certificate. The certificate and certificate chain are * base64 encoded. If you want to decode the certificate chain to see the * individual certificate fields, you can use OpenSSL. *

* *

* Currently, ACM Certificates can be used only with Elastic Load Balancing * and Amazon CloudFront. *

*
* * @param getCertificateRequest * @return Result of the GetCertificate operation returned by the service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws RequestInProgressException * The certificate request is in process and the certificate in your * account has not yet been issued. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AWSCertificateManager.GetCertificate */ @Override public GetCertificateResult getCertificate( GetCertificateRequest getCertificateRequest) { ExecutionContext executionContext = createExecutionContext(getCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetCertificateRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(getCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new GetCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves a list of ACM Certificates and the domain name for each. You * can optionally filter the list to return only the certificates that match * the specified status. *

* * @param listCertificatesRequest * @return Result of the ListCertificates operation returned by the service. * @sample AWSCertificateManager.ListCertificates */ @Override public ListCertificatesResult listCertificates( ListCertificatesRequest listCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(listCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListCertificatesRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(listCertificatesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListCertificatesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the tags that have been applied to the ACM Certificate. Use the * certificate ARN to specify the certificate. To add a tag to an ACM * Certificate, use the AddTagsToCertificate action. To delete a tag, * use the RemoveTagsFromCertificate action. *

* * @param listTagsForCertificateRequest * @return Result of the ListTagsForCertificate operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AWSCertificateManager.ListTagsForCertificate */ @Override public ListTagsForCertificateResult listTagsForCertificate( ListTagsForCertificateRequest listTagsForCertificateRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(listTagsForCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ListTagsForCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Remove one or more tags from an ACM Certificate. A tag consists of a * key-value pair. If you do not specify the value portion of the tag when * calling this function, the tag will be removed regardless of value. If * you specify a value, the tag is removed only if it is associated with the * specified value. *

*

* To add tags to a certificate, use the AddTagsToCertificate action. * To view all of the tags that have been applied to a specific ACM * Certificate, use the ListTagsForCertificate action. *

* * @param removeTagsFromCertificateRequest * @return Result of the RemoveTagsFromCertificate operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @throws InvalidTagException * One or both of the values that make up the key-value pair is not * valid. For example, you cannot specify a tag value that begins * with aws:. * @sample AWSCertificateManager.RemoveTagsFromCertificate */ @Override public RemoveTagsFromCertificateResult removeTagsFromCertificate( RemoveTagsFromCertificateRequest removeTagsFromCertificateRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsFromCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveTagsFromCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(removeTagsFromCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RemoveTagsFromCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Requests an ACM Certificate for use with other AWS services. To request * an ACM Certificate, you must specify the fully qualified domain name * (FQDN) for your site. You can also specify additional FQDNs if users can * reach your site by using other names. For each domain name you specify, * email is sent to the domain owner to request approval to issue the * certificate. After receiving approval from the domain owner, the ACM * Certificate is issued. For more information, see the AWS * Certificate Manager User Guide . *

* * @param requestCertificateRequest * @return Result of the RequestCertificate operation returned by the * service. * @throws LimitExceededException * An ACM limit has been exceeded. For example, you may have input * more domains than are allowed or you've requested too many * certificates for your account. See the exception message returned * by ACM to determine which limit you have violated. For more * information about ACM limits, see the Limits topic. * @throws InvalidDomainValidationOptionsException * One or more values in the DomainValidationOption structure * is incorrect. * @sample AWSCertificateManager.RequestCertificate */ @Override public RequestCertificateResult requestCertificate( RequestCertificateRequest requestCertificateRequest) { ExecutionContext executionContext = createExecutionContext(requestCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RequestCertificateRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(requestCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RequestCertificateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Resends the email that requests domain ownership validation. The domain * owner or an authorized representative must approve the ACM Certificate * before it can be issued. The certificate can be approved by clicking a * link in the mail to navigate to the Amazon certificate approval website * and then clicking I Approve. However, the validation email can be * blocked by spam filters. Therefore, if you do not receive the original * mail, you can request that the mail be resent within 72 hours of * requesting the ACM Certificate. If more than 72 hours have elapsed since * your original request or since your last attempt to resend validation * mail, you must request a new certificate. *

* * @param resendValidationEmailRequest * @return Result of the ResendValidationEmail operation returned by the * service. * @throws ResourceNotFoundException * The specified certificate cannot be found in the caller's * account, or the caller's account cannot be found. * @throws InvalidStateException * Processing has reached an invalid state. For example, this * exception can occur if the specified domain is not using email * validation, or the current certificate status does not permit the * requested operation. See the exception message returned by ACM to * determine which state is not valid. * @throws InvalidArnException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @throws InvalidDomainValidationOptionsException * One or more values in the DomainValidationOption structure * is incorrect. * @sample AWSCertificateManager.ResendValidationEmail */ @Override public ResendValidationEmailResult resendValidationEmail( ResendValidationEmailRequest resendValidationEmailRequest) { ExecutionContext executionContext = createExecutionContext(resendValidationEmailRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResendValidationEmailRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(resendValidationEmailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new ResendValidationEmailResultJsonUnmarshaller()); 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) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * 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); } /** * 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) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory .createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy