-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Please see the README on Github at
--   <a>https://github.com/arbor/antiope#readme</a>
@package antiope-s3
@version 6.2.0

module Antiope.S3.Internal
toS3Uri :: BucketName -> ObjectKey -> Text

module Antiope.S3.Types
newtype BucketName
BucketName :: Text -> BucketName
newtype ObjectKey
ObjectKey :: Text -> ObjectKey
newtype ETag
ETag :: ByteString -> ETag
data S3Uri
S3Uri :: BucketName -> ObjectKey -> S3Uri
[bucket] :: S3Uri -> BucketName
[objectKey] :: S3Uri -> ObjectKey
readBucketName :: ReadPrec BucketName
readWhile :: (Char -> Bool) -> ReadPrec String
data Range
Range :: Int -> Int -> Range
[first] :: Range -> Int
[last] :: Range -> Int
instance GHC.Generics.Generic Antiope.S3.Types.Range
instance GHC.Show.Show Antiope.S3.Types.Range
instance GHC.Classes.Eq Antiope.S3.Types.Range
instance GHC.Generics.Generic Antiope.S3.Types.S3Uri
instance GHC.Classes.Eq Antiope.S3.Types.S3Uri
instance GHC.Show.Show Antiope.S3.Types.S3Uri
instance Network.AWS.Data.Text.FromText Antiope.S3.Types.S3Uri
instance Network.AWS.Data.Text.ToText Antiope.S3.Types.S3Uri
instance System.Log.FastLogger.LogStr.ToLogStr Antiope.S3.Types.S3Uri
instance GHC.Read.Read Antiope.S3.Types.S3Uri

module Antiope.S3.Request
getObjectUri :: S3Uri -> GetObject

module Antiope.S3.Range
data Range
Range :: Int -> Int -> Range
rangeHeaderText :: Range -> Text

module Antiope.S3.GetObject

-- | Access the response body as a lazy bytestring
lazyByteString :: MonadResource m => RsBody -> m ByteString
getObject :: MonadAWS m => BucketName -> ObjectKey -> m (Rs GetObject)
getObjectForS3Uri :: MonadAWS m => S3Uri -> m GetObjectResponse

module Antiope.S3.Lazy
unsafeDownload :: (MonadAWS m, MonadResource m) => BucketName -> ObjectKey -> m ByteString
unsafeDownloadRequest :: (MonadAWS m, MonadResource m) => GetObject -> m ByteString
download :: (MonadAWS m, MonadResource m) => BucketName -> ObjectKey -> m (Maybe ByteString)
downloadRequest :: (MonadAWS m, MonadResource m) => GetObject -> m (Maybe ByteString)
downloadFromS3Uri :: (MonadAWS m, MonadResource m) => S3Uri -> m (Maybe ByteString)

module Antiope.S3.Strict
unsafeDownload :: (MonadAWS m, MonadUnliftIO m) => BucketName -> ObjectKey -> m ByteString
download :: (MonadAWS m, MonadUnliftIO m) => BucketName -> ObjectKey -> m (Maybe ByteString)
downloadFromS3Uri :: (MonadAWS m, MonadUnliftIO m) => S3Uri -> m (Maybe ByteString)
unsafeDownloadMap :: (MonadAWS m, MonadUnliftIO m) => (ByteString -> ByteString) -> BucketName -> ObjectKey -> m ByteString
downloadMap :: (MonadAWS m, MonadUnliftIO m) => (ByteString -> ByteString) -> BucketName -> ObjectKey -> m (Maybe ByteString)
downloadMapFromS3Uri :: (MonadAWS m, MonadUnliftIO m) => (ByteString -> ByteString) -> S3Uri -> m (Maybe ByteString)

module Antiope.S3
s3ObjectSource :: (MonadAWS m, MonadResource m) => BucketName -> ObjectKey -> m (ConduitT () ByteString m ())

-- | Puts file into a specified S3 bucket
putFile :: MonadAWS m => BucketName -> ObjectKey -> FilePath -> m (Maybe ETag)
putContent :: MonadAWS m => BucketName -> ObjectKey -> ByteString -> m (Maybe ETag)
putContent' :: MonadAWS m => S3Uri -> ByteString -> m (Maybe ETag)

-- | Copies a single object within S3
copySingle :: MonadAWS m => BucketName -> ObjectKey -> BucketName -> ObjectKey -> m ()
fromS3Uri :: Text -> Maybe S3Uri
toS3Uri :: BucketName -> ObjectKey -> Text

-- | Streams all pages of the result (ListObjectsV2Responses) of a
--   ListObjectsV2 request from S3. lsBucketResponseStream :: MonadAWS m
--   =&gt; ListObjectsV2 -&gt; ConduitT i ListObjectsV2Response m ()
lsBucketResponseStream :: MonadAWS m => ListObjectsV2 -> ConduitM a ListObjectsV2Response m ()

-- | Streams all Objects from all pages of the result of a ListObjectsV2
--   request from S3. lsBucketStream :: MonadAWS m =&gt; ListObjectsV2
--   -&gt; ConduitT i Object m ()
lsBucketStream :: MonadAWS m => ListObjectsV2 -> ConduitM a Object m ()

-- | Lists the specified prefix in a bucket.
lsPrefix :: MonadAWS m => BucketName -> Prefix -> m [S3Uri]

-- | Deletes specified keys in a bucket. Returns a list of keys that were
--   successfully deleted.
--   
--   Will fail monadically (using <a>fail</a>) if the response indicates
--   any errors.
deleteFiles :: MonadAWS m => BucketName -> [ObjectKey] -> m [S3Uri]

-- | Deletes all the keys in a specified prefix EXCEPT the specified ones.
--   Returns a list of objects that were successfully deleted.
deleteFilesExcept :: MonadAWS m => BucketName -> Prefix -> [ObjectKey] -> m [S3Uri]

-- | The available AWS regions.
data Region

-- | US East ('us-east-1').
NorthVirginia :: Region

-- | US East ('us-east-2').
Ohio :: Region

-- | US West ('us-west-1').
NorthCalifornia :: Region

-- | US West ('us-west-2').
Oregon :: Region

-- | Canada ('ca-central-1').
Montreal :: Region

-- | Asia Pacific ('ap-northeast-1').
Tokyo :: Region

-- | Asia Pacific ('ap-northeast-2').
Seoul :: Region

-- | Asia Pacific ('ap-south-1').
Mumbai :: Region

-- | Asia Pacific ('ap-southeast-1').
Singapore :: Region

-- | Asia Pacific ('ap-southeast-2').
Sydney :: Region

-- | South America ('sa-east-1').
SaoPaulo :: Region

-- | EU ('eu-west-1').
Ireland :: Region

-- | EU ('eu-west-2').
London :: Region

-- | EU ('eu-central-1').
Frankfurt :: Region

-- | US GovCloud ('us-gov-west-1').
GovCloud :: Region

-- | US GovCloud FIPS (S3 Only, 'fips-us-gov-west-1').
GovCloudFIPS :: Region

-- | China ('cn-north-1').
Beijing :: Region
newtype BucketName
BucketName :: Text -> BucketName
newtype ObjectKey
ObjectKey :: Text -> ObjectKey
newtype ETag
ETag :: ByteString -> ETag
data S3Uri
S3Uri :: BucketName -> ObjectKey -> S3Uri
