/*
 * Copyright 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.
 */
/*
 * Do not modify this file. This file is generated from the iotfleethub-2020-11-03.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.IoTFleetHub.Model;
namespace Amazon.IoTFleetHub
{
    /// 
    /// Interface for accessing IoTFleetHub
    ///
    /// With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications
    /// for monitoring the health of your device fleets.
    /// 
    ///   
    /// 
    /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
    /// 
    ///  
    /// 
    public partial interface IAmazonIoTFleetHub : IAmazonService, IDisposable
    {
        /// 
        /// Paginators for the service
        /// 
        IIoTFleetHubPaginatorFactory Paginators { get; }
        
        #region  CreateApplication
        /// 
        /// Creates a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateApplication service method.
        /// 
        /// The response from the CreateApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// A limit has been exceeded.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for CreateApplication Operation
        CreateApplicationResponse CreateApplication(CreateApplicationRequest request);
        /// 
        /// Creates a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateApplication service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// A limit has been exceeded.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for CreateApplication Operation
        Task CreateApplicationAsync(CreateApplicationRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteApplication
        /// 
        /// Deletes a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteApplication service method.
        /// 
        /// The response from the DeleteApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for DeleteApplication Operation
        DeleteApplicationResponse DeleteApplication(DeleteApplicationRequest request);
        /// 
        /// Deletes a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteApplication service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for DeleteApplication Operation
        Task DeleteApplicationAsync(DeleteApplicationRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeApplication
        /// 
        /// Gets information about a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DescribeApplication service method.
        /// 
        /// The response from the DescribeApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for DescribeApplication Operation
        DescribeApplicationResponse DescribeApplication(DescribeApplicationRequest request);
        /// 
        /// Gets information about a Fleet Hub for AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DescribeApplication service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeApplication service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for DescribeApplication Operation
        Task DescribeApplicationAsync(DescribeApplicationRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListApplications
        /// 
        /// Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current
        /// account.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListApplications service method.
        /// 
        /// The response from the ListApplications service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for ListApplications Operation
        ListApplicationsResponse ListApplications(ListApplicationsRequest request);
        /// 
        /// Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current
        /// account.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListApplications service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListApplications service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for ListApplications Operation
        Task ListApplicationsAsync(ListApplicationsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Lists the tags for the specified resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// Lists the tags for the specified resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListTagsForResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        Task ListTagsForResourceAsync(ListTagsForResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  TagResource
        /// 
        /// Adds to or modifies the tags of the specified resource. Tags are metadata which can
        /// be used to manage a resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// Adds to or modifies the tags of the specified resource. Tags are metadata which can
        /// be used to manage a resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the TagResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for TagResource Operation
        Task TagResourceAsync(TagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes the specified tags (metadata) from the resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// Removes the specified tags (metadata) from the resource.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UntagResource service method, as returned by IoTFleetHub.
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// REST API Reference for UntagResource Operation
        Task UntagResourceAsync(UntagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateApplication
        /// 
        /// Updates information about a Fleet Hub for a AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UpdateApplication service method.
        /// 
        /// The response from the UpdateApplication service method, as returned by IoTFleetHub.
        /// 
        /// The request conflicts with the current state of the resource.
        /// 
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for UpdateApplication Operation
        UpdateApplicationResponse UpdateApplication(UpdateApplicationRequest request);
        /// 
        /// Updates information about a Fleet Hub for a AWS IoT Device Management web application.
        /// 
        ///   
        /// 
        /// Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the UpdateApplication service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateApplication service method, as returned by IoTFleetHub.
        /// 
        /// The request conflicts with the current state of the resource.
        /// 
        /// 
        /// An unexpected error has occurred.
        /// 
        /// 
        /// The request is not valid.
        /// 
        /// 
        /// The specified resource does not exist.
        /// 
        /// 
        /// The rate exceeds the limit.
        /// 
        /// REST API Reference for UpdateApplication Operation
        Task UpdateApplicationAsync(UpdateApplicationRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}