using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
namespace Amazon.Runtime.SharedInterfaces
{
///
/// ICoreAmazonS3 is not meant to use directly. It defines S3 with basic .NET types
/// and allows other services to be able to use S3 as a runtime dependency. This interface
/// is implemented by the AmazonS3Client defined in the S3 assembly.
///
public partial interface ICoreAmazonS3
{
///
/// Generate a presigned URL.
///
///
///
///
///
///
string GeneratePreSignedURL(string bucketName, string objectKey, DateTime expiration, IDictionary additionalProperties);
#if AWS_APM_API
///
/// Start a delete object.
///
///
///
///
///
///
///
IAsyncResult BeginDelete(string bucketName, string objectKey, IDictionary additionalProperties, AsyncCallback callback, object state);
///
/// Get the results of a delete object.
///
///
void EndDelete(IAsyncResult result);
///
/// Start an upload object from stream.
///
///
///
///
///
///
///
///
IAsyncResult BeginUploadObjectFromStream(string bucketName, string objectKey, Stream stream, IDictionary additionalProperties, AsyncCallback callback, object state);
///
/// Get the results of an upload from stream.
///
///
void EndUploadObjectFromStream(IAsyncResult result);
///
/// Start an upload object from file path.
///
///
///
///
///
///
///
///
IAsyncResult BeginUploadObjectFromFilePath(string bucketName, string objectKey, string filepath, IDictionary additionalProperties, AsyncCallback callback, object state);
///
/// Get the results of an upload from file path.
///
///
void EndUploadObjectFromFilePath(IAsyncResult result);
///
/// Start a download to a file path.
///
///
///
///
///
///
///
///
IAsyncResult BeginDownloadToFilePath(string bucketName, string objectKey, string filepath, IDictionary additionalProperties, AsyncCallback callback, object state);
///
/// Get results of downloading an object to a file path.
///
///
void EndDownloadToFilePath(IAsyncResult result);
///
/// Start opening a stream to an object in S3.
///
///
///
///
///
///
///
IAsyncResult BeginGetObjectStream(string bucketName, string objectKey, IDictionary additionalProperties, AsyncCallback callback, object state);
///
/// Get results of opening a stream to an object in S3.
///
///
///
Stream EndGetObjectStream(IAsyncResult result);
#endif
}
}