/*
* Copyright 2012-2017 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.iotdata;
import javax.annotation.Generated;
import com.amazonaws.services.iotdata.model.*;
/**
* Interface for accessing AWS IoT Data Plane asynchronously. Each asynchronous method will return a Java Future object
* representing the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive
* notification when an asynchronous operation completes.
* <p>
* <b>Note:</b> Do not directly implement this interface, new methods are added to it regularly. Extend from
* {@link com.amazonaws.services.iotdata.AbstractAWSIotDataAsync} instead.
* </p>
* <p>
* <fullname>AWS IoT</fullname>
* <p>
* AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors,
* actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and
* things to publish messages over HTTP (Publish) and retrieve, update, and delete thing shadows. A thing shadow is a
* persistent representation of your things and their state in the AWS cloud.
* </p>
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public interface AWSIotDataAsync extends AWSIotData {
/**
* <p>
* Deletes the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html">DeleteThingShadow</a> in
* the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param deleteThingShadowRequest
* The input for the DeleteThingShadow operation.
* @return A Java Future containing the result of the DeleteThingShadow operation returned by the service.
* @sample AWSIotDataAsync.DeleteThingShadow
*/
java.util.concurrent.Future<DeleteThingShadowResult> deleteThingShadowAsync(DeleteThingShadowRequest deleteThingShadowRequest);
/**
* <p>
* Deletes the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html">DeleteThingShadow</a> in
* the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param deleteThingShadowRequest
* The input for the DeleteThingShadow operation.
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
* implementation of the callback methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the DeleteThingShadow operation returned by the service.
* @sample AWSIotDataAsyncHandler.DeleteThingShadow
*/
java.util.concurrent.Future<DeleteThingShadowResult> deleteThingShadowAsync(DeleteThingShadowRequest deleteThingShadowRequest,
com.amazonaws.handlers.AsyncHandler<DeleteThingShadowRequest, DeleteThingShadowResult> asyncHandler);
/**
* <p>
* Gets the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html">GetThingShadow</a> in the
* <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param getThingShadowRequest
* The input for the GetThingShadow operation.
* @return A Java Future containing the result of the GetThingShadow operation returned by the service.
* @sample AWSIotDataAsync.GetThingShadow
*/
java.util.concurrent.Future<GetThingShadowResult> getThingShadowAsync(GetThingShadowRequest getThingShadowRequest);
/**
* <p>
* Gets the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html">GetThingShadow</a> in the
* <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param getThingShadowRequest
* The input for the GetThingShadow operation.
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
* implementation of the callback methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the GetThingShadow operation returned by the service.
* @sample AWSIotDataAsyncHandler.GetThingShadow
*/
java.util.concurrent.Future<GetThingShadowResult> getThingShadowAsync(GetThingShadowRequest getThingShadowRequest,
com.amazonaws.handlers.AsyncHandler<GetThingShadowRequest, GetThingShadowResult> asyncHandler);
/**
* <p>
* Publishes state information.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http">HTTP
* Protocol</a> in the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param publishRequest
* The input for the Publish operation.
* @return A Java Future containing the result of the Publish operation returned by the service.
* @sample AWSIotDataAsync.Publish
*/
java.util.concurrent.Future<PublishResult> publishAsync(PublishRequest publishRequest);
/**
* <p>
* Publishes state information.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http">HTTP
* Protocol</a> in the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param publishRequest
* The input for the Publish operation.
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
* implementation of the callback methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the Publish operation returned by the service.
* @sample AWSIotDataAsyncHandler.Publish
*/
java.util.concurrent.Future<PublishResult> publishAsync(PublishRequest publishRequest,
com.amazonaws.handlers.AsyncHandler<PublishRequest, PublishResult> asyncHandler);
/**
* <p>
* Updates the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html">UpdateThingShadow</a> in
* the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param updateThingShadowRequest
* The input for the UpdateThingShadow operation.
* @return A Java Future containing the result of the UpdateThingShadow operation returned by the service.
* @sample AWSIotDataAsync.UpdateThingShadow
*/
java.util.concurrent.Future<UpdateThingShadowResult> updateThingShadowAsync(UpdateThingShadowRequest updateThingShadowRequest);
/**
* <p>
* Updates the thing shadow for the specified thing.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html">UpdateThingShadow</a> in
* the <i>AWS IoT Developer Guide</i>.
* </p>
*
* @param updateThingShadowRequest
* The input for the UpdateThingShadow operation.
* @param asyncHandler
* Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
* implementation of the callback methods in this interface to receive notification of successful or
* unsuccessful completion of the operation.
* @return A Java Future containing the result of the UpdateThingShadow operation returned by the service.
* @sample AWSIotDataAsyncHandler.UpdateThingShadow
*/
java.util.concurrent.Future<UpdateThingShadowResult> updateThingShadowAsync(UpdateThingShadowRequest updateThingShadowRequest,
com.amazonaws.handlers.AsyncHandler<UpdateThingShadowRequest, UpdateThingShadowResult> asyncHandler);
}