
com.amazonaws.services.iot.AWSIotClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-iot Show documentation
/*
* 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.iot;
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.iot.model.*;
import com.amazonaws.services.iot.model.transform.*;
/**
* Client for accessing AWS IoT. All service calls made using this client are
* blocking, and will not return until the service call completes.
*
* AWS IoT
*
* AWS IoT provides secure, bi-directional communication between
* Internet-connected things (such as sensors, actuators, embedded devices, or
* smart appliances) and the AWS cloud. You can discover your custom IoT-Data
* endpoint to communicate with, configure rules for data processing and
* integration with other services, organize resources associated with each
* thing (Thing Registry), configure logging, and create and manage policies and
* credentials to authenticate things.
*
*
* For more information about how AWS IoT works, see the Developer Guide.
*
*/
@ThreadSafe
public class AWSIotClient extends AmazonWebServiceClient implements AWSIot {
/** Provider for AWS credentials. */
private AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AWSIot.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "execute-api";
/** The region metadata service name for computing region endpoints. */
private static final String DEFAULT_ENDPOINT_PREFIX = "iot";
/**
* 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("UnauthorizedException")
.withModeledClass(
com.amazonaws.services.iot.model.UnauthorizedException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ResourceAlreadyExistsException")
.withModeledClass(
com.amazonaws.services.iot.model.ResourceAlreadyExistsException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("SqlParseException")
.withModeledClass(
com.amazonaws.services.iot.model.SqlParseException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("LimitExceededException")
.withModeledClass(
com.amazonaws.services.iot.model.LimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InternalException")
.withModeledClass(
com.amazonaws.services.iot.model.InternalException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("MalformedPolicyException")
.withModeledClass(
com.amazonaws.services.iot.model.MalformedPolicyException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"CertificateConflictException")
.withModeledClass(
com.amazonaws.services.iot.model.CertificateConflictException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("ResourceNotFoundException")
.withModeledClass(
com.amazonaws.services.iot.model.ResourceNotFoundException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"TransferAlreadyCompletedException")
.withModeledClass(
com.amazonaws.services.iot.model.TransferAlreadyCompletedException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("CertificateStateException")
.withModeledClass(
com.amazonaws.services.iot.model.CertificateStateException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"ServiceUnavailableException")
.withModeledClass(
com.amazonaws.services.iot.model.ServiceUnavailableException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"CertificateValidationException")
.withModeledClass(
com.amazonaws.services.iot.model.CertificateValidationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"RegistrationCodeValidationException")
.withModeledClass(
com.amazonaws.services.iot.model.RegistrationCodeValidationException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode(
"VersionsLimitExceededException")
.withModeledClass(
com.amazonaws.services.iot.model.VersionsLimitExceededException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("DeleteConflictException")
.withModeledClass(
com.amazonaws.services.iot.model.DeleteConflictException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InternalFailureException")
.withModeledClass(
com.amazonaws.services.iot.model.InternalFailureException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("TransferConflictException")
.withModeledClass(
com.amazonaws.services.iot.model.TransferConflictException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("ThrottlingException")
.withModeledClass(
com.amazonaws.services.iot.model.ThrottlingException.class))
.addErrorMetadata(
new JsonErrorShapeMetadata()
.withErrorCode("InvalidRequestException")
.withModeledClass(
com.amazonaws.services.iot.model.InvalidRequestException.class)));
/**
* Constructs a new client to invoke service methods on AWS IoT. 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 AWSIotClient() {
this(new DefaultAWSCredentialsProviderChain(), configFactory
.getConfig());
}
/**
* Constructs a new client to invoke service methods on AWS IoT. 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 AWS IoT (ex: proxy settings, retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
*/
public AWSIotClient(ClientConfiguration clientConfiguration) {
this(new DefaultAWSCredentialsProviderChain(), clientConfiguration);
}
/**
* Constructs a new client to invoke service methods on AWS IoT 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 AWSIotClient(AWSCredentials awsCredentials) {
this(awsCredentials, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on AWS IoT 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 AWS IoT (ex: proxy settings, retry counts, etc.).
*/
public AWSIotClient(AWSCredentials awsCredentials,
ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(
awsCredentials);
init();
}
/**
* Constructs a new client to invoke service methods on AWS IoT 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 AWSIotClient(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on AWS IoT 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 AWS IoT (ex: proxy settings, retry counts, etc.).
*/
public AWSIotClient(AWSCredentialsProvider awsCredentialsProvider,
ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, null);
}
/**
* Constructs a new client to invoke service methods on AWS IoT 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 AWS IoT (ex: proxy settings, retry counts, etc.).
* @param requestMetricCollector
* optional request metric collector
*/
public AWSIotClient(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://iot.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s
.addAll(chainFactory
.newRequestHandlerChain("/com/amazonaws/services/iot/request.handlers"));
requestHandler2s
.addAll(chainFactory
.newRequestHandler2Chain("/com/amazonaws/services/iot/request.handler2s"));
}
/**
*
* Accepts a pending certificate transfer. The default state of the
* certificate is INACTIVE.
*
*
* To check for pending certificate transfers, call ListCertificates
* to enumerate your certificates.
*
*
* @param acceptCertificateTransferRequest
* The input for the AcceptCertificateTransfer operation.
* @return Result of the AcceptCertificateTransfer operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws TransferAlreadyCompletedException
* You can't revert the certificate transfer because the transfer is
* already complete.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.AcceptCertificateTransfer
*/
@Override
public AcceptCertificateTransferResult acceptCertificateTransfer(
AcceptCertificateTransferRequest acceptCertificateTransferRequest) {
ExecutionContext executionContext = createExecutionContext(acceptCertificateTransferRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcceptCertificateTransferRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(acceptCertificateTransferRequest));
// 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 AcceptCertificateTransferResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Attaches the specified policy to the specified principal (certificate or
* other credential).
*
*
* @param attachPrincipalPolicyRequest
* The input for the AttachPrincipalPolicy operation.
* @return Result of the AttachPrincipalPolicy operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws LimitExceededException
* The number of attached entities exceeds the limit.
* @sample AWSIot.AttachPrincipalPolicy
*/
@Override
public AttachPrincipalPolicyResult attachPrincipalPolicy(
AttachPrincipalPolicyRequest attachPrincipalPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(attachPrincipalPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachPrincipalPolicyRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(attachPrincipalPolicyRequest));
// 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 AttachPrincipalPolicyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Attaches the specified principal to the specified thing.
*
*
* @param attachThingPrincipalRequest
* The input for the AttachThingPrincipal operation.
* @return Result of the AttachThingPrincipal operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.AttachThingPrincipal
*/
@Override
public AttachThingPrincipalResult attachThingPrincipal(
AttachThingPrincipalRequest attachThingPrincipalRequest) {
ExecutionContext executionContext = createExecutionContext(attachThingPrincipalRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachThingPrincipalRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(attachThingPrincipalRequest));
// 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 AttachThingPrincipalResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Cancels a pending transfer for the specified certificate.
*
*
* Note Only the transfer source account can use this operation to
* cancel a transfer. (Transfer destinations can use
* RejectCertificateTransfer instead.) After transfer, AWS IoT
* returns the certificate to the source account in the INACTIVE state.
* After the destination account has accepted the transfer, the transfer
* cannot be cancelled.
*
*
* After a certificate transfer is cancelled, the status of the certificate
* changes from PENDING_TRANSFER to INACTIVE.
*
*
* @param cancelCertificateTransferRequest
* The input for the CancelCertificateTransfer operation.
* @return Result of the CancelCertificateTransfer operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws TransferAlreadyCompletedException
* You can't revert the certificate transfer because the transfer is
* already complete.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.CancelCertificateTransfer
*/
@Override
public CancelCertificateTransferResult cancelCertificateTransfer(
CancelCertificateTransferRequest cancelCertificateTransferRequest) {
ExecutionContext executionContext = createExecutionContext(cancelCertificateTransferRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelCertificateTransferRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(cancelCertificateTransferRequest));
// 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 CancelCertificateTransferResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates an X.509 certificate using the specified certificate signing
* request.
*
*
* Note Reusing the same certificate signing request (CSR) results in
* a distinct certificate.
*
*
* You can create multiple certificates in a batch by creating a directory,
* copying multiple .csr files into that directory, and then specifying that
* directory on the command line. The following commands show how to create
* a batch of certificates given a batch of CSRs.
*
*
* Assuming a set of CSRs are located inside of the directory
* my-csr-directory:
*
* >
*
* On Linux and OS X, the command is:
*
*
* $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
* --certificate-signing-request file://my-csr-directory/{}
*
*
* This command lists all of the CSRs in my-csr-directory and pipes each CSR
* file name to the aws iot create-certificate-from-csr AWS CLI command to
* create a certificate for the corresponding CSR.
*
*
* The aws iot create-certificate-from-csr part of the command can also be
* run in parallel to speed up the certificate creation process:
*
*
* $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot
* create-certificate-from-csr --certificate-signing-request
* file://my-csr-directory/{}
*
*
* On Windows PowerShell, the command to create certificates for all CSRs in
* my-csr-directory is:
*
*
* > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr
* --certificate-signing-request file://my-csr-directory/$_}
*
*
* On a Windows command prompt, the command to create certificates for all
* CSRs in my-csr-directory is:
*
*
* > forfiles /p my-csr-directory /c
* "cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path"
*
*
* @param createCertificateFromCsrRequest
* The input for the CreateCertificateFromCsr operation.
* @return Result of the CreateCertificateFromCsr operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.CreateCertificateFromCsr
*/
@Override
public CreateCertificateFromCsrResult createCertificateFromCsr(
CreateCertificateFromCsrRequest createCertificateFromCsrRequest) {
ExecutionContext executionContext = createExecutionContext(createCertificateFromCsrRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateCertificateFromCsrRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createCertificateFromCsrRequest));
// 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 CreateCertificateFromCsrResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
* issued public key.
*
*
* Note This is the only time AWS IoT issues the private key for this
* certificate, so it is important to keep it in a secure location.
*
*
* @param createKeysAndCertificateRequest
* The input for the CreateKeysAndCertificate operation.
* @return Result of the CreateKeysAndCertificate operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.CreateKeysAndCertificate
*/
@Override
public CreateKeysAndCertificateResult createKeysAndCertificate(
CreateKeysAndCertificateRequest createKeysAndCertificateRequest) {
ExecutionContext executionContext = createExecutionContext(createKeysAndCertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateKeysAndCertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createKeysAndCertificateRequest));
// 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 CreateKeysAndCertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates an AWS IoT policy.
*
*
* The created policy is the default version for the policy. This operation
* creates a policy version with a version identifier of 1 and sets
* 1 as the policy's default version.
*
*
* @param createPolicyRequest
* The input for the CreatePolicy operation.
* @return Result of the CreatePolicy operation returned by the service.
* @throws ResourceAlreadyExistsException
* The resource already exists.
* @throws MalformedPolicyException
* The policy documentation is not valid.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.CreatePolicy
*/
@Override
public CreatePolicyResult createPolicy(
CreatePolicyRequest createPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(createPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreatePolicyRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(createPolicyRequest));
// 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 CreatePolicyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new version of the specified AWS IoT policy. To update a
* policy, create a new policy version. A managed policy can have up to five
* versions. If the policy has five versions, you must use
* DeletePolicyVersion to delete an existing version before you
* create a new one.
*
*
* Optionally, you can set the new version as the policy's default version.
* The default version is the operative version (that is, the version that
* is in effect for the certificates to which the policy is attached).
*
*
* @param createPolicyVersionRequest
* The input for the CreatePolicyVersion operation.
* @return Result of the CreatePolicyVersion operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws MalformedPolicyException
* The policy documentation is not valid.
* @throws VersionsLimitExceededException
* The number of policy versions exceeds the limit.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.CreatePolicyVersion
*/
@Override
public CreatePolicyVersionResult createPolicyVersion(
CreatePolicyVersionRequest createPolicyVersionRequest) {
ExecutionContext executionContext = createExecutionContext(createPolicyVersionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreatePolicyVersionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(createPolicyVersionRequest));
// 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 CreatePolicyVersionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a thing in the Thing Registry.
*
*
* @param createThingRequest
* The input for the CreateThing operation.
* @return Result of the CreateThing operation returned by the service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceAlreadyExistsException
* The resource already exists.
* @sample AWSIot.CreateThing
*/
@Override
public CreateThingResult createThing(CreateThingRequest createThingRequest) {
ExecutionContext executionContext = createExecutionContext(createThingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateThingRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(createThingRequest));
// 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 CreateThingResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a rule. Creating rules is an administrator-level action. Any user
* who has permission to create rules will be able to access data processed
* by the rule.
*
*
* @param createTopicRuleRequest
* The input for the CreateTopicRule operation.
* @return Result of the CreateTopicRule operation returned by the service.
* @throws SqlParseException
* The Rule-SQL expression can't be parsed correctly.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ResourceAlreadyExistsException
* The resource already exists.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @sample AWSIot.CreateTopicRule
*/
@Override
public CreateTopicRuleResult createTopicRule(
CreateTopicRuleRequest createTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(createTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTopicRuleRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(createTopicRuleRequest));
// 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 CreateTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a registered CA certificate.
*
*
* @param deleteCACertificateRequest
* Input for the DeleteCACertificate operation.
* @return Result of the DeleteCACertificate operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws CertificateStateException
* The certificate operation is not allowed.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @sample AWSIot.DeleteCACertificate
*/
@Override
public DeleteCACertificateResult deleteCACertificate(
DeleteCACertificateRequest deleteCACertificateRequest) {
ExecutionContext executionContext = createExecutionContext(deleteCACertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteCACertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteCACertificateRequest));
// 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 DeleteCACertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified certificate.
*
*
* A certificate cannot be deleted if it has a policy attached to it or if
* its status is set to ACTIVE. To delete a certificate, first use the
* DetachPrincipalPolicy API to detach all policies. Next, use the
* UpdateCertificate API to set the certificate to the INACTIVE
* status.
*
*
* @param deleteCertificateRequest
* The input for the DeleteCertificate operation.
* @return Result of the DeleteCertificate operation returned by the
* service.
* @throws CertificateStateException
* The certificate operation is not allowed.
* @throws DeleteConflictException
* You can't delete the resource because it is attached to one or
* more resources.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @sample AWSIot.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);
}
}
/**
*
* Deletes the specified policy.
*
*
* A policy cannot be deleted if it has non-default versions or it is
* attached to any certificate.
*
*
* To delete a policy, use the DeletePolicyVersion API to delete all
* non-default versions of the policy; use the DetachPrincipalPolicy API to
* detach the policy from any certificate; and then use the DeletePolicy API
* to delete the policy.
*
*
* When a policy is deleted using DeletePolicy, its default version is
* deleted with it.
*
*
* @param deletePolicyRequest
* The input for the DeletePolicy operation.
* @return Result of the DeletePolicy operation returned by the service.
* @throws DeleteConflictException
* You can't delete the resource because it is attached to one or
* more resources.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DeletePolicy
*/
@Override
public DeletePolicyResult deletePolicy(
DeletePolicyRequest deletePolicyRequest) {
ExecutionContext executionContext = createExecutionContext(deletePolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeletePolicyRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(deletePolicyRequest));
// 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 DeletePolicyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified version of the specified policy. You cannot delete
* the default version of a policy using this API. To delete the default
* version of a policy, use DeletePolicy. To find out which version
* of a policy is marked as the default version, use ListPolicyVersions.
*
*
* @param deletePolicyVersionRequest
* The input for the DeletePolicyVersion operation.
* @return Result of the DeletePolicyVersion operation returned by the
* service.
* @throws DeleteConflictException
* You can't delete the resource because it is attached to one or
* more resources.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DeletePolicyVersion
*/
@Override
public DeletePolicyVersionResult deletePolicyVersion(
DeletePolicyVersionRequest deletePolicyVersionRequest) {
ExecutionContext executionContext = createExecutionContext(deletePolicyVersionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeletePolicyVersionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deletePolicyVersionRequest));
// 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 DeletePolicyVersionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a CA certificate registration code.
*
*
* @param deleteRegistrationCodeRequest
* The input for the DeleteRegistrationCode operation.
* @return Result of the DeleteRegistrationCode operation returned by the
* service.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DeleteRegistrationCode
*/
@Override
public DeleteRegistrationCodeResult deleteRegistrationCode(
DeleteRegistrationCodeRequest deleteRegistrationCodeRequest) {
ExecutionContext executionContext = createExecutionContext(deleteRegistrationCodeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteRegistrationCodeRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(deleteRegistrationCodeRequest));
// 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 DeleteRegistrationCodeResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified thing from the Thing Registry.
*
*
* @param deleteThingRequest
* The input for the DeleteThing operation.
* @return Result of the DeleteThing operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DeleteThing
*/
@Override
public DeleteThingResult deleteThing(DeleteThingRequest deleteThingRequest) {
ExecutionContext executionContext = createExecutionContext(deleteThingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteThingRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(deleteThingRequest));
// 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 DeleteThingResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified rule.
*
*
* @param deleteTopicRuleRequest
* The input for the DeleteTopicRule operation.
* @return Result of the DeleteTopicRule operation returned by the service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @sample AWSIot.DeleteTopicRule
*/
@Override
public DeleteTopicRuleResult deleteTopicRule(
DeleteTopicRuleRequest deleteTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(deleteTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteTopicRuleRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(deleteTopicRuleRequest));
// 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 DeleteTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Describes a registered CA certificate.
*
*
* @param describeCACertificateRequest
* The input for the DescribeCACertificate operation.
* @return Result of the DescribeCACertificate operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @sample AWSIot.DescribeCACertificate
*/
@Override
public DescribeCACertificateResult describeCACertificate(
DescribeCACertificateRequest describeCACertificateRequest) {
ExecutionContext executionContext = createExecutionContext(describeCACertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeCACertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(describeCACertificateRequest));
// 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 DescribeCACertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified certificate.
*
*
* @param describeCertificateRequest
* The input for the DescribeCertificate operation.
* @return Result of the DescribeCertificate operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @sample AWSIot.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);
}
}
/**
*
* Returns a unique endpoint specific to the AWS account making the call.
* You specify the following URI when updating state information for your
* thing: https://endpoint/things/thingName/shadow.
*
*
* @param describeEndpointRequest
* The input for the DescribeEndpoint operation.
* @return Result of the DescribeEndpoint operation returned by the service.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ThrottlingException
* The rate exceeds the limit.
* @sample AWSIot.DescribeEndpoint
*/
@Override
public DescribeEndpointResult describeEndpoint(
DescribeEndpointRequest describeEndpointRequest) {
ExecutionContext executionContext = createExecutionContext(describeEndpointRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeEndpointRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(describeEndpointRequest));
// 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 DescribeEndpointResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified thing.
*
*
* @param describeThingRequest
* The input for the DescribeThing operation.
* @return Result of the DescribeThing operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DescribeThing
*/
@Override
public DescribeThingResult describeThing(
DescribeThingRequest describeThingRequest) {
ExecutionContext executionContext = createExecutionContext(describeThingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeThingRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(describeThingRequest));
// 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 DescribeThingResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes the specified policy from the specified certificate.
*
*
* @param detachPrincipalPolicyRequest
* The input for the DetachPrincipalPolicy operation.
* @return Result of the DetachPrincipalPolicy operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DetachPrincipalPolicy
*/
@Override
public DetachPrincipalPolicyResult detachPrincipalPolicy(
DetachPrincipalPolicyRequest detachPrincipalPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(detachPrincipalPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachPrincipalPolicyRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(detachPrincipalPolicyRequest));
// 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 DetachPrincipalPolicyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Detaches the specified principal from the specified thing.
*
*
* @param detachThingPrincipalRequest
* The input for the DetachThingPrincipal operation.
* @return Result of the DetachThingPrincipal operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.DetachThingPrincipal
*/
@Override
public DetachThingPrincipalResult detachThingPrincipal(
DetachThingPrincipalRequest detachThingPrincipalRequest) {
ExecutionContext executionContext = createExecutionContext(detachThingPrincipalRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachThingPrincipalRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(detachThingPrincipalRequest));
// 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 DetachThingPrincipalResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Disables the specified rule.
*
*
* @param disableTopicRuleRequest
* The input for the DisableTopicRuleRequest operation.
* @return Result of the DisableTopicRule operation returned by the service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @sample AWSIot.DisableTopicRule
*/
@Override
public DisableTopicRuleResult disableTopicRule(
DisableTopicRuleRequest disableTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(disableTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisableTopicRuleRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(disableTopicRuleRequest));
// 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 DisableTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Enables the specified rule.
*
*
* @param enableTopicRuleRequest
* The input for the EnableTopicRuleRequest operation.
* @return Result of the EnableTopicRule operation returned by the service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @sample AWSIot.EnableTopicRule
*/
@Override
public EnableTopicRuleResult enableTopicRule(
EnableTopicRuleRequest enableTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(enableTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableTopicRuleRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(enableTopicRuleRequest));
// 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 EnableTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets the logging options.
*
*
* @param getLoggingOptionsRequest
* The input for the GetLoggingOptions operation.
* @return Result of the GetLoggingOptions operation returned by the
* service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @sample AWSIot.GetLoggingOptions
*/
@Override
public GetLoggingOptionsResult getLoggingOptions(
GetLoggingOptionsRequest getLoggingOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(getLoggingOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetLoggingOptionsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getLoggingOptionsRequest));
// 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 GetLoggingOptionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified policy with the policy document of
* the default version.
*
*
* @param getPolicyRequest
* The input for the GetPolicy operation.
* @return Result of the GetPolicy operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.GetPolicy
*/
@Override
public GetPolicyResult getPolicy(GetPolicyRequest getPolicyRequest) {
ExecutionContext executionContext = createExecutionContext(getPolicyRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPolicyRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(getPolicyRequest));
// 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 GetPolicyResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified policy version.
*
*
* @param getPolicyVersionRequest
* The input for the GetPolicyVersion operation.
* @return Result of the GetPolicyVersion operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.GetPolicyVersion
*/
@Override
public GetPolicyVersionResult getPolicyVersion(
GetPolicyVersionRequest getPolicyVersionRequest) {
ExecutionContext executionContext = createExecutionContext(getPolicyVersionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPolicyVersionRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(getPolicyVersionRequest));
// 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 GetPolicyVersionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets a registration code used to register a CA certificate with AWS IoT.
*
*
* @param getRegistrationCodeRequest
* The input to the GetRegistrationCode operation.
* @return Result of the GetRegistrationCode operation returned by the
* service.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.GetRegistrationCode
*/
@Override
public GetRegistrationCodeResult getRegistrationCode(
GetRegistrationCodeRequest getRegistrationCodeRequest) {
ExecutionContext executionContext = createExecutionContext(getRegistrationCodeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetRegistrationCodeRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(getRegistrationCodeRequest));
// 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 GetRegistrationCodeResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Gets information about the specified rule.
*
*
* @param getTopicRuleRequest
* The input for the GetTopicRule operation.
* @return Result of the GetTopicRule operation returned by the service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @sample AWSIot.GetTopicRule
*/
@Override
public GetTopicRuleResult getTopicRule(
GetTopicRuleRequest getTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(getTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetTopicRuleRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(getTopicRuleRequest));
// 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 GetTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the CA certificates registered for your AWS account.
*
*
* The results are paginated with a default page size of 25. You can use the
* returned marker to retrieve additional results.
*
*
* @param listCACertificatesRequest
* Input for the ListCACertificates operation.
* @return Result of the ListCACertificates operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListCACertificates
*/
@Override
public ListCACertificatesResult listCACertificates(
ListCACertificatesRequest listCACertificatesRequest) {
ExecutionContext executionContext = createExecutionContext(listCACertificatesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListCACertificatesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listCACertificatesRequest));
// 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 ListCACertificatesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the certificates registered in your AWS account.
*
*
* The results are paginated with a default page size of 25. You can use the
* returned marker to retrieve additional results.
*
*
* @param listCertificatesRequest
* The input for the ListCertificates operation.
* @return Result of the ListCertificates operation returned by the service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.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);
}
}
/**
*
* List the device certificates signed by the specified CA certificate.
*
*
* @param listCertificatesByCARequest
* The input to the ListCertificatesByCA operation.
* @return Result of the ListCertificatesByCA operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListCertificatesByCA
*/
@Override
public ListCertificatesByCAResult listCertificatesByCA(
ListCertificatesByCARequest listCertificatesByCARequest) {
ExecutionContext executionContext = createExecutionContext(listCertificatesByCARequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListCertificatesByCARequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listCertificatesByCARequest));
// 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 ListCertificatesByCAResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists your policies.
*
*
* @param listPoliciesRequest
* The input for the ListPolicies operation.
* @return Result of the ListPolicies operation returned by the service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListPolicies
*/
@Override
public ListPoliciesResult listPolicies(
ListPoliciesRequest listPoliciesRequest) {
ExecutionContext executionContext = createExecutionContext(listPoliciesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPoliciesRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(listPoliciesRequest));
// 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 ListPoliciesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the versions of the specified policy, and identifies the default
* version.
*
*
* @param listPolicyVersionsRequest
* The input for the ListPolicyVersions operation.
* @return Result of the ListPolicyVersions operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListPolicyVersions
*/
@Override
public ListPolicyVersionsResult listPolicyVersions(
ListPolicyVersionsRequest listPolicyVersionsRequest) {
ExecutionContext executionContext = createExecutionContext(listPolicyVersionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPolicyVersionsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listPolicyVersionsRequest));
// 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 ListPolicyVersionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the policies attached to the specified principal. If you use an
* Cognito identity, the ID must be in AmazonCognito Identity format.
*
*
* @param listPrincipalPoliciesRequest
* The input for the ListPrincipalPolicies operation.
* @return Result of the ListPrincipalPolicies operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListPrincipalPolicies
*/
@Override
public ListPrincipalPoliciesResult listPrincipalPolicies(
ListPrincipalPoliciesRequest listPrincipalPoliciesRequest) {
ExecutionContext executionContext = createExecutionContext(listPrincipalPoliciesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPrincipalPoliciesRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listPrincipalPoliciesRequest));
// 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 ListPrincipalPoliciesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the things associated with the specified principal.
*
*
* @param listPrincipalThingsRequest
* The input for the ListPrincipalThings operation.
* @return Result of the ListPrincipalThings operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListPrincipalThings
*/
@Override
public ListPrincipalThingsResult listPrincipalThings(
ListPrincipalThingsRequest listPrincipalThingsRequest) {
ExecutionContext executionContext = createExecutionContext(listPrincipalThingsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListPrincipalThingsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listPrincipalThingsRequest));
// 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 ListPrincipalThingsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the principals associated with the specified thing.
*
*
* @param listThingPrincipalsRequest
* The input for the ListThingPrincipal operation.
* @return Result of the ListThingPrincipals operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListThingPrincipals
*/
@Override
public ListThingPrincipalsResult listThingPrincipals(
ListThingPrincipalsRequest listThingPrincipalsRequest) {
ExecutionContext executionContext = createExecutionContext(listThingPrincipalsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListThingPrincipalsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(listThingPrincipalsRequest));
// 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 ListThingPrincipalsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists your things. You can pass an AttributeName or AttributeValue to
* filter your things (for example,
* "ListThings where AttributeName=Color and AttributeValue=Red").
*
*
* @param listThingsRequest
* The input for the ListThings operation.
* @return Result of the ListThings operation returned by the service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.ListThings
*/
@Override
public ListThingsResult listThings(ListThingsRequest listThingsRequest) {
ExecutionContext executionContext = createExecutionContext(listThingsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListThingsRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(listThingsRequest));
// 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 ListThingsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Lists the rules for the specific topic.
*
*
* @param listTopicRulesRequest
* The input for the ListTopicRules operation.
* @return Result of the ListTopicRules operation returned by the service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @sample AWSIot.ListTopicRules
*/
@Override
public ListTopicRulesResult listTopicRules(
ListTopicRulesRequest listTopicRulesRequest) {
ExecutionContext executionContext = createExecutionContext(listTopicRulesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ListTopicRulesRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(listTopicRulesRequest));
// 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 ListTopicRulesResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Registers a CA certificate with AWS IoT. This CA certificate can then be
* used to sign device certificates, which can be then registered with AWS
* IoT. You can register up to 10 CA certificates per AWS account that have
* the same subject field and public key. This enables you to have up to 10
* certificate authorities sign your device certificates. If you have more
* than one CA certificate registered, make sure you pass the CA certificate
* when you register your device certificates with the RegisterCertificate
* API.
*
*
* @param registerCACertificateRequest
* The input to the RegisterCACertificate operation.
* @return Result of the RegisterCACertificate operation returned by the
* service.
* @throws ResourceAlreadyExistsException
* The resource already exists.
* @throws RegistrationCodeValidationException
* The registration code is invalid.
* @throws InvalidRequestException
* The request is not valid.
* @throws CertificateValidationException
* The certificate is invalid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws LimitExceededException
* The number of attached entities exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.RegisterCACertificate
*/
@Override
public RegisterCACertificateResult registerCACertificate(
RegisterCACertificateRequest registerCACertificateRequest) {
ExecutionContext executionContext = createExecutionContext(registerCACertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterCACertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(registerCACertificateRequest));
// 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 RegisterCACertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Registers a device certificate with AWS IoT. If you have more than one CA
* certificate that has the same subject field, you must specify the CA
* certificate that was used to sign the device certificate being
* registered.
*
*
* @param registerCertificateRequest
* The input to the RegisterCertificate operation.
* @return Result of the RegisterCertificate operation returned by the
* service.
* @throws ResourceAlreadyExistsException
* The resource already exists.
* @throws InvalidRequestException
* The request is not valid.
* @throws CertificateValidationException
* The certificate is invalid.
* @throws CertificateStateException
* The certificate operation is not allowed.
* @throws CertificateConflictException
* Unable to verify the CA certificate used to sign the device
* certificate you are attempting to register. This is happens when
* you have registered more than one CA certificate that has the
* same subject field and public key.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.RegisterCertificate
*/
@Override
public RegisterCertificateResult registerCertificate(
RegisterCertificateRequest registerCertificateRequest) {
ExecutionContext executionContext = createExecutionContext(registerCertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterCertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(registerCertificateRequest));
// 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 RegisterCertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Rejects a pending certificate transfer. After AWS IoT rejects a
* certificate transfer, the certificate status changes from
* PENDING_TRANSFER to INACTIVE.
*
*
* To check for pending certificate transfers, call ListCertificates
* to enumerate your certificates.
*
*
* This operation can only be called by the transfer destination. After it
* is called, the certificate will be returned to the source's account in
* the INACTIVE state.
*
*
* @param rejectCertificateTransferRequest
* The input for the RejectCertificateTransfer operation.
* @return Result of the RejectCertificateTransfer operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws TransferAlreadyCompletedException
* You can't revert the certificate transfer because the transfer is
* already complete.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.RejectCertificateTransfer
*/
@Override
public RejectCertificateTransferResult rejectCertificateTransfer(
RejectCertificateTransferRequest rejectCertificateTransferRequest) {
ExecutionContext executionContext = createExecutionContext(rejectCertificateTransferRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RejectCertificateTransferRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(rejectCertificateTransferRequest));
// 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 RejectCertificateTransferResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Replaces the specified rule. You must specify all parameters for the new
* rule. Creating rules is an administrator-level action. Any user who has
* permission to create rules will be able to access data processed by the
* rule.
*
*
* @param replaceTopicRuleRequest
* The input for the ReplaceTopicRule operation.
* @return Result of the ReplaceTopicRule operation returned by the service.
* @throws SqlParseException
* The Rule-SQL expression can't be parsed correctly.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @sample AWSIot.ReplaceTopicRule
*/
@Override
public ReplaceTopicRuleResult replaceTopicRule(
ReplaceTopicRuleRequest replaceTopicRuleRequest) {
ExecutionContext executionContext = createExecutionContext(replaceTopicRuleRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceTopicRuleRequestMarshaller(protocolFactory)
.marshall(super
.beforeMarshalling(replaceTopicRuleRequest));
// 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 ReplaceTopicRuleResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Sets the specified version of the specified policy as the policy's
* default (operative) version. This action affects all certificates to
* which the policy is attached. To list the principals the policy is
* attached to, use the ListPrincipalPolicy API.
*
*
* @param setDefaultPolicyVersionRequest
* The input for the SetDefaultPolicyVersion operation.
* @return Result of the SetDefaultPolicyVersion operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.SetDefaultPolicyVersion
*/
@Override
public SetDefaultPolicyVersionResult setDefaultPolicyVersion(
SetDefaultPolicyVersionRequest setDefaultPolicyVersionRequest) {
ExecutionContext executionContext = createExecutionContext(setDefaultPolicyVersionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new SetDefaultPolicyVersionRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(setDefaultPolicyVersionRequest));
// 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 SetDefaultPolicyVersionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Sets the logging options.
*
*
* @param setLoggingOptionsRequest
* The input for the SetLoggingOptions operation.
* @return Result of the SetLoggingOptions operation returned by the
* service.
* @throws InternalException
* An unexpected error has occurred.
* @throws InvalidRequestException
* The request is not valid.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @sample AWSIot.SetLoggingOptions
*/
@Override
public SetLoggingOptionsResult setLoggingOptions(
SetLoggingOptionsRequest setLoggingOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(setLoggingOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new SetLoggingOptionsRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(setLoggingOptionsRequest));
// 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 SetLoggingOptionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Transfers the specified certificate to the specified AWS account.
*
*
* You can cancel the transfer until it is acknowledged by the recipient.
*
*
* No notification is sent to the transfer destination's account. It is up
* to the caller to notify the transfer target.
*
*
* The certificate being transferred must not be in the ACTIVE state. You
* can use the UpdateCertificate API to deactivate it.
*
*
* The certificate must not have any policies attached to it. You can use
* the DetachPrincipalPolicy API to detach them.
*
*
* @param transferCertificateRequest
* The input for the TransferCertificate operation.
* @return Result of the TransferCertificate operation returned by the
* service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws CertificateStateException
* The certificate operation is not allowed.
* @throws TransferConflictException
* You can't transfer the certificate because authorization policies
* are still attached.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.TransferCertificate
*/
@Override
public TransferCertificateResult transferCertificate(
TransferCertificateRequest transferCertificateRequest) {
ExecutionContext executionContext = createExecutionContext(transferCertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new TransferCertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(transferCertificateRequest));
// 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 TransferCertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates a registered CA certificate.
*
*
* @param updateCACertificateRequest
* The input to the UpdateCACertificate operation.
* @return Result of the UpdateCACertificate operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.UpdateCACertificate
*/
@Override
public UpdateCACertificateResult updateCACertificate(
UpdateCACertificateRequest updateCACertificateRequest) {
ExecutionContext executionContext = createExecutionContext(updateCACertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateCACertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(updateCACertificateRequest));
// 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 UpdateCACertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the status of the specified certificate. This operation is
* idempotent.
*
*
* Moving a certificate from the ACTIVE state (including REVOKED) will not
* disconnect currently connected devices, but these devices will be unable
* to reconnect.
*
*
* The ACTIVE state is required to authenticate devices connecting to AWS
* IoT using a certificate.
*
*
* @param updateCertificateRequest
* The input for the UpdateCertificate operation.
* @return Result of the UpdateCertificate operation returned by the
* service.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @throws CertificateStateException
* The certificate operation is not allowed.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @sample AWSIot.UpdateCertificate
*/
@Override
public UpdateCertificateResult updateCertificate(
UpdateCertificateRequest updateCertificateRequest) {
ExecutionContext executionContext = createExecutionContext(updateCertificateRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateCertificateRequestMarshaller(
protocolFactory).marshall(super
.beforeMarshalling(updateCertificateRequest));
// 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 UpdateCertificateResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the data for a thing.
*
*
* @param updateThingRequest
* The input for the UpdateThing operation.
* @return Result of the UpdateThing operation returned by the service.
* @throws InvalidRequestException
* The request is not valid.
* @throws ThrottlingException
* The rate exceeds the limit.
* @throws UnauthorizedException
* You are not authorized to perform this operation.
* @throws ServiceUnavailableException
* The service is temporarily unavailable.
* @throws InternalFailureException
* An unexpected error has occurred.
* @throws ResourceNotFoundException
* The specified resource does not exist.
* @sample AWSIot.UpdateThing
*/
@Override
public UpdateThingResult updateThing(UpdateThingRequest updateThingRequest) {
ExecutionContext executionContext = createExecutionContext(updateThingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext
.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UpdateThingRequestMarshaller(protocolFactory)
.marshall(super.beforeMarshalling(updateThingRequest));
// 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 UpdateThingResultJsonUnmarshaller());
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);
}
}