do-spaces-0.2: src/Network/DO/Spaces/Actions/DeleteBucket.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
-- |
-- Module : Network.DO.Spaces.Actions.DeleteBucket
-- Copyright : (c) 2021 Rory Tyler Hayford
-- License : BSD-3-Clause
-- Maintainer : rory.hayford@protonmail.com
-- Stability : experimental
-- Portability : GHC
--
module Network.DO.Spaces.Actions.DeleteBucket
( DeleteBucket(..)
, DeleteBucketResponse
) where
import Control.Monad.Reader ( MonadReader(ask) )
import GHC.Generics ( Generic )
import Network.DO.Spaces.Types
-- | Delete a single 'Bucket'. Note that it must be empty
newtype DeleteBucket = DeleteBucket
{ bucket :: Bucket -- ^ The name of the 'Bucket' to delete
}
deriving stock ( Show, Generic )
deriving newtype ( Eq )
type DeleteBucketResponse = ()
instance MonadSpaces m => Action m DeleteBucket where
type ConsumedResponse DeleteBucket = DeleteBucketResponse
buildRequest DeleteBucket { .. } = do
spaces <- ask
pure SpacesRequestBuilder
{ method = Just DELETE
, bucket = Just bucket
, body = Nothing
, object = Nothing
, queryString = Nothing
, subresources = Nothing
, headers = mempty
, overrideRegion = Nothing
, ..
}
consumeResponse _ = pure ()