/*
 * 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 mediapackage-2017-10-12.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.MediaPackage.Model;
namespace Amazon.MediaPackage
{
    /// 
    /// Interface for accessing MediaPackage
    ///
    /// AWS Elemental MediaPackage
    /// 
    public partial interface IAmazonMediaPackage : IAmazonService, IDisposable
    {
        /// 
        /// Paginators for the service
        /// 
        IMediaPackagePaginatorFactory Paginators { get; }
        
        #region  ConfigureLogs
        /// 
        /// Changes the Channel's properities to configure log subscription
        /// 
        /// Container for the necessary parameters to execute the ConfigureLogs service method.
        /// 
        /// The response from the ConfigureLogs service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ConfigureLogs Operation
        ConfigureLogsResponse ConfigureLogs(ConfigureLogsRequest request);
        /// 
        /// Changes the Channel's properities to configure log subscription
        /// 
        /// Container for the necessary parameters to execute the ConfigureLogs service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ConfigureLogs service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ConfigureLogs Operation
        Task ConfigureLogsAsync(ConfigureLogsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateChannel
        /// 
        /// Creates a new Channel.
        /// 
        /// Container for the necessary parameters to execute the CreateChannel service method.
        /// 
        /// The response from the CreateChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateChannel Operation
        CreateChannelResponse CreateChannel(CreateChannelRequest request);
        /// 
        /// Creates a new Channel.
        /// 
        /// Container for the necessary parameters to execute the CreateChannel service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateChannel Operation
        Task CreateChannelAsync(CreateChannelRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateHarvestJob
        /// 
        /// Creates a new HarvestJob record.
        /// 
        /// Container for the necessary parameters to execute the CreateHarvestJob service method.
        /// 
        /// The response from the CreateHarvestJob service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateHarvestJob Operation
        CreateHarvestJobResponse CreateHarvestJob(CreateHarvestJobRequest request);
        /// 
        /// Creates a new HarvestJob record.
        /// 
        /// Container for the necessary parameters to execute the CreateHarvestJob service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateHarvestJob service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateHarvestJob Operation
        Task CreateHarvestJobAsync(CreateHarvestJobRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateOriginEndpoint
        /// 
        /// Creates a new OriginEndpoint record.
        /// 
        /// Container for the necessary parameters to execute the CreateOriginEndpoint service method.
        /// 
        /// The response from the CreateOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateOriginEndpoint Operation
        CreateOriginEndpointResponse CreateOriginEndpoint(CreateOriginEndpointRequest request);
        /// 
        /// Creates a new OriginEndpoint record.
        /// 
        /// Container for the necessary parameters to execute the CreateOriginEndpoint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for CreateOriginEndpoint Operation
        Task CreateOriginEndpointAsync(CreateOriginEndpointRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteChannel
        /// 
        /// Deletes an existing Channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteChannel service method.
        /// 
        /// The response from the DeleteChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DeleteChannel Operation
        DeleteChannelResponse DeleteChannel(DeleteChannelRequest request);
        /// 
        /// Deletes an existing Channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteChannel service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DeleteChannel Operation
        Task DeleteChannelAsync(DeleteChannelRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteOriginEndpoint
        /// 
        /// Deletes an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the DeleteOriginEndpoint service method.
        /// 
        /// The response from the DeleteOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DeleteOriginEndpoint Operation
        DeleteOriginEndpointResponse DeleteOriginEndpoint(DeleteOriginEndpointRequest request);
        /// 
        /// Deletes an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the DeleteOriginEndpoint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DeleteOriginEndpoint Operation
        Task DeleteOriginEndpointAsync(DeleteOriginEndpointRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeChannel
        /// 
        /// Gets details about a Channel.
        /// 
        /// Container for the necessary parameters to execute the DescribeChannel service method.
        /// 
        /// The response from the DescribeChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeChannel Operation
        DescribeChannelResponse DescribeChannel(DescribeChannelRequest request);
        /// 
        /// Gets details about a Channel.
        /// 
        /// Container for the necessary parameters to execute the DescribeChannel service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeChannel Operation
        Task DescribeChannelAsync(DescribeChannelRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeHarvestJob
        /// 
        /// Gets details about an existing HarvestJob.
        /// 
        /// Container for the necessary parameters to execute the DescribeHarvestJob service method.
        /// 
        /// The response from the DescribeHarvestJob service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeHarvestJob Operation
        DescribeHarvestJobResponse DescribeHarvestJob(DescribeHarvestJobRequest request);
        /// 
        /// Gets details about an existing HarvestJob.
        /// 
        /// Container for the necessary parameters to execute the DescribeHarvestJob service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeHarvestJob service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeHarvestJob Operation
        Task DescribeHarvestJobAsync(DescribeHarvestJobRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DescribeOriginEndpoint
        /// 
        /// Gets details about an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the DescribeOriginEndpoint service method.
        /// 
        /// The response from the DescribeOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeOriginEndpoint Operation
        DescribeOriginEndpointResponse DescribeOriginEndpoint(DescribeOriginEndpointRequest request);
        /// 
        /// Gets details about an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the DescribeOriginEndpoint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DescribeOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for DescribeOriginEndpoint Operation
        Task DescribeOriginEndpointAsync(DescribeOriginEndpointRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListChannels
        /// 
        /// Returns a collection of Channels.
        /// 
        /// Container for the necessary parameters to execute the ListChannels service method.
        /// 
        /// The response from the ListChannels service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListChannels Operation
        ListChannelsResponse ListChannels(ListChannelsRequest request);
        /// 
        /// Returns a collection of Channels.
        /// 
        /// Container for the necessary parameters to execute the ListChannels service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListChannels service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListChannels Operation
        Task ListChannelsAsync(ListChannelsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListHarvestJobs
        /// 
        /// Returns a collection of HarvestJob records.
        /// 
        /// Container for the necessary parameters to execute the ListHarvestJobs service method.
        /// 
        /// The response from the ListHarvestJobs service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListHarvestJobs Operation
        ListHarvestJobsResponse ListHarvestJobs(ListHarvestJobsRequest request);
        /// 
        /// Returns a collection of HarvestJob records.
        /// 
        /// Container for the necessary parameters to execute the ListHarvestJobs service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListHarvestJobs service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListHarvestJobs Operation
        Task ListHarvestJobsAsync(ListHarvestJobsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListOriginEndpoints
        /// 
        /// Returns a collection of OriginEndpoint records.
        /// 
        /// Container for the necessary parameters to execute the ListOriginEndpoints service method.
        /// 
        /// The response from the ListOriginEndpoints service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListOriginEndpoints Operation
        ListOriginEndpointsResponse ListOriginEndpoints(ListOriginEndpointsRequest request);
        /// 
        /// Returns a collection of OriginEndpoint records.
        /// 
        /// Container for the necessary parameters to execute the ListOriginEndpoints service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListOriginEndpoints service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for ListOriginEndpoints Operation
        Task ListOriginEndpointsAsync(ListOriginEndpointsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by MediaPackage.
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// 
        /// 
        /// 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 MediaPackage.
        /// REST API Reference for ListTagsForResource Operation
        Task ListTagsForResourceAsync(ListTagsForResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  RotateChannelCredentials
        /// 
        /// Changes the Channel's first IngestEndpoint's username and password. WARNING - This
        /// API is deprecated. Please use RotateIngestEndpointCredentials instead
        /// 
        /// Container for the necessary parameters to execute the RotateChannelCredentials service method.
        /// 
        /// The response from the RotateChannelCredentials service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for RotateChannelCredentials Operation
        [Obsolete("This API is deprecated. Please use RotateIngestEndpointCredentials instead")]
        RotateChannelCredentialsResponse RotateChannelCredentials(RotateChannelCredentialsRequest request);
        /// 
        /// Changes the Channel's first IngestEndpoint's username and password. WARNING - This
        /// API is deprecated. Please use RotateIngestEndpointCredentials instead
        /// 
        /// Container for the necessary parameters to execute the RotateChannelCredentials service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the RotateChannelCredentials service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for RotateChannelCredentials Operation
        [Obsolete("This API is deprecated. Please use RotateIngestEndpointCredentials instead")]
        Task RotateChannelCredentialsAsync(RotateChannelCredentialsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  RotateIngestEndpointCredentials
        /// 
        /// Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's
        /// id.
        /// 
        /// Container for the necessary parameters to execute the RotateIngestEndpointCredentials service method.
        /// 
        /// The response from the RotateIngestEndpointCredentials service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for RotateIngestEndpointCredentials Operation
        RotateIngestEndpointCredentialsResponse RotateIngestEndpointCredentials(RotateIngestEndpointCredentialsRequest request);
        /// 
        /// Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's
        /// id.
        /// 
        /// Container for the necessary parameters to execute the RotateIngestEndpointCredentials service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the RotateIngestEndpointCredentials service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for RotateIngestEndpointCredentials Operation
        Task RotateIngestEndpointCredentialsAsync(RotateIngestEndpointCredentialsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  TagResource
        /// 
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by MediaPackage.
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// 
        /// 
        /// 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 MediaPackage.
        /// REST API Reference for TagResource Operation
        Task TagResourceAsync(TagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UntagResource
        /// 
        /// 
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by MediaPackage.
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// 
        /// 
        /// 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 MediaPackage.
        /// REST API Reference for UntagResource Operation
        Task UntagResourceAsync(UntagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateChannel
        /// 
        /// Updates an existing Channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateChannel service method.
        /// 
        /// The response from the UpdateChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for UpdateChannel Operation
        UpdateChannelResponse UpdateChannel(UpdateChannelRequest request);
        /// 
        /// Updates an existing Channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateChannel service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateChannel service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for UpdateChannel Operation
        Task UpdateChannelAsync(UpdateChannelRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateOriginEndpoint
        /// 
        /// Updates an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the UpdateOriginEndpoint service method.
        /// 
        /// The response from the UpdateOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for UpdateOriginEndpoint Operation
        UpdateOriginEndpointResponse UpdateOriginEndpoint(UpdateOriginEndpointRequest request);
        /// 
        /// Updates an existing OriginEndpoint.
        /// 
        /// Container for the necessary parameters to execute the UpdateOriginEndpoint service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateOriginEndpoint service method, as returned by MediaPackage.
        /// 
        /// The client is not authorized to access the requested resource.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The requested resource does not exist.
        /// 
        /// 
        /// An unexpected error occurred.
        /// 
        /// 
        /// The client has exceeded their resource or throttling limits.
        /// 
        /// 
        /// The parameters sent in the request are not valid.
        /// 
        /// REST API Reference for UpdateOriginEndpoint Operation
        Task UpdateOriginEndpointAsync(UpdateOriginEndpointRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}