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

com.amazonaws.services.iot.AWSIotClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-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.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.AmazonServiceException;

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 final 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"; /** * 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) .withContentTypeOverride("") .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InternalFailureException") .withModeledClass( com.amazonaws.services.iot.model.InternalFailureException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("DeleteConflictException") .withModeledClass( com.amazonaws.services.iot.model.DeleteConflictException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InvalidRequestException") .withModeledClass( com.amazonaws.services.iot.model.InvalidRequestException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "CertificateConflictException") .withModeledClass( com.amazonaws.services.iot.model.CertificateConflictException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "RegistrationCodeValidationException") .withModeledClass( com.amazonaws.services.iot.model.RegistrationCodeValidationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ThrottlingException") .withModeledClass( com.amazonaws.services.iot.model.ThrottlingException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("UnauthorizedException") .withModeledClass( com.amazonaws.services.iot.model.UnauthorizedException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("LimitExceededException") .withModeledClass( com.amazonaws.services.iot.model.LimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("CertificateStateException") .withModeledClass( com.amazonaws.services.iot.model.CertificateStateException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "TransferAlreadyCompletedException") .withModeledClass( com.amazonaws.services.iot.model.TransferAlreadyCompletedException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("VersionConflictException") .withModeledClass( com.amazonaws.services.iot.model.VersionConflictException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ResourceNotFoundException") .withModeledClass( com.amazonaws.services.iot.model.ResourceNotFoundException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("SqlParseException") .withModeledClass( com.amazonaws.services.iot.model.SqlParseException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("MalformedPolicyException") .withModeledClass( com.amazonaws.services.iot.model.MalformedPolicyException.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( "ResourceAlreadyExistsException") .withModeledClass( com.amazonaws.services.iot.model.ResourceAlreadyExistsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("InternalException") .withModeledClass( com.amazonaws.services.iot.model.InternalException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "VersionsLimitExceededException") .withModeledClass( com.amazonaws.services.iot.model.VersionsLimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("TransferConflictException") .withModeledClass( com.amazonaws.services.iot.model.TransferConflictException.class)) .withBaseServiceExceptionClass( com.amazonaws.services.iot.model.AWSIotException.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(); } /** * Constructs a new client to invoke service methods on AWS IoT using the * specified parameters. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientParams * Object providing client parameters. */ AWSIotClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(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 record 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. * @throws ResourceNotFoundException * The specified resource does not exist. * @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 new thing type. *

* * @param createThingTypeRequest * The input for the CreateThingType operation. * @return Result of the CreateThingType 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.CreateThingType */ @Override public CreateThingTypeResult createThingType( CreateThingTypeRequest createThingTypeRequest) { ExecutionContext executionContext = createExecutionContext(createThingTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateThingTypeRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createThingTypeRequest)); // 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 CreateThingTypeResultJsonUnmarshaller()); 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. *

* * @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 VersionConflictException * An exception thrown when the version of a thing passed to a * command is different than the version specified with the * --version parameter. * @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 thing type . You cannot delete a thing type if it * has things associated with it. To delete a thing type, first mark it as * deprecated by calling DeprecateThingType, then remove any * associated things by calling UpdateThing to change the thing type * on any associated thing, and finally use DeleteThingType to delete * the thing type. *

* * @param deleteThingTypeRequest * The input for the DeleteThingType operation. * @return Result of the DeleteThingType 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.DeleteThingType */ @Override public DeleteThingTypeResult deleteThingType( DeleteThingTypeRequest deleteThingTypeRequest) { ExecutionContext executionContext = createExecutionContext(deleteThingTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteThingTypeRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(deleteThingTypeRequest)); // 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 DeleteThingTypeResultJsonUnmarshaller()); 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); } } /** *

* Deprecates a thing type. You can not associate new things with deprecated * thing type. *

* * @param deprecateThingTypeRequest * The input for the DeprecateThingType operation. * @return Result of the DeprecateThingType 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.DeprecateThingType */ @Override public DeprecateThingTypeResult deprecateThingType( DeprecateThingTypeRequest deprecateThingTypeRequest) { ExecutionContext executionContext = createExecutionContext(deprecateThingTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeprecateThingTypeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(deprecateThingTypeRequest)); // 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 DeprecateThingTypeResultJsonUnmarshaller()); 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. *

* * @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); } } /** *

* Gets information about the specified thing type. *

* * @param describeThingTypeRequest * The input for the DescribeThingType operation. * @return Result of the DescribeThingType 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.DescribeThingType */ @Override public DescribeThingTypeResult describeThingType( DescribeThingTypeRequest describeThingTypeRequest) { ExecutionContext executionContext = createExecutionContext(describeThingTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeThingTypeRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeThingTypeRequest)); // 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 DescribeThingTypeResultJsonUnmarshaller()); 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. * @throws InvalidRequestException * The request is not valid. * @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 principals associated with the specified policy. *

* * @param listPolicyPrincipalsRequest * The input for the ListPolicyPrincipals operation. * @return Result of the ListPolicyPrincipals 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.ListPolicyPrincipals */ @Override public ListPolicyPrincipalsResult listPolicyPrincipals( ListPolicyPrincipalsRequest listPolicyPrincipalsRequest) { ExecutionContext executionContext = createExecutionContext(listPolicyPrincipalsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListPolicyPrincipalsRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(listPolicyPrincipalsRequest)); // 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 ListPolicyPrincipalsResultJsonUnmarshaller()); 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. * @throws ResourceNotFoundException * The specified resource does not exist. * @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. * @throws ResourceNotFoundException * The specified resource does not exist. * @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 the existing thing types. *

* * @param listThingTypesRequest * The input for the ListThingTypes operation. * @return Result of the ListThingTypes 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.ListThingTypes */ @Override public ListThingTypesResult listThingTypes( ListThingTypesRequest listThingTypesRequest) { ExecutionContext executionContext = createExecutionContext(listThingTypesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListThingTypesRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(listThingTypesRequest)); // 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 ListThingTypesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists your things. Use the attributeName and attributeValue * parameters to filter your things. For example, calling * ListThings with attributeName=Color and attributeValue=Red * retrieves all things in the registry that contain an attribute * Color with the value 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 VersionConflictException * An exception thrown when the version of a thing passed to a * command is different than the version specified with the * --version parameter. * @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); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy