using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Amazon.Runtime.SharedInterfaces
{
///
/// ICoreAmazonSQS is not meant to use directly. It defines SQS with basic .NET types
/// and allows other services to be able to use SQS as a runtime dependency. This interface
/// is implemented by the AmazonSQSClient defined in the SQS assembly.
///
public interface ICoreAmazonSQS
{
#if BCL
///
///
/// This method is used internally to access the Amazon SQS service within other service assemblies.
/// Please use AmazonSQSClient to access Amazon SQS instead.
///
/// Get the attributes for the queue identified by the queue URL.
///
/// The queue URL to get attributes for.
/// The attributes for the queue.
Dictionary GetAttributes(string queueUrl);
#endif
#if AWS_ASYNC_API
///
/// Get the attributes for the queue identified by the queue URL asynchronously.
///
/// The queue URL to get attributes for.
/// A Task containing the result of a dictionary of attributes for the queue.
System.Threading.Tasks.Task> GetAttributesAsync(string queueUrl);
#endif
#if BCL
///
///
/// This method is used internally to access the Amazon SQS service within other service assemblies.
/// Please use AmazonSQSClient to access Amazon SQS instead.
///
/// Set the attributes on the queue identified by the queue URL.
///
/// The queue URL to set the attributues.
/// The attributes to set.
void SetAttributes(string queueUrl, Dictionary attributes);
#endif
#if AWS_ASYNC_API
///
/// Set the attributes on the queue identified by the queue URL asynchronously.
///
/// The queue URL to set the attributues.
/// The attributes to set.
/// A Task
System.Threading.Tasks.Task SetAttributesAsync(string queueUrl, Dictionary attributes);
#endif
}
}