aws-0.0.1: Aws/S3/Model.hs
module Aws.S3.Model
where
import Aws.S3.Error
import Control.Monad.Compose.Class
import Data.Time
import Text.XML.Monad
import qualified Text.XML.Light as XL
type CanonicalUserId = String
data UserInfo
= UserInfo {
userId :: CanonicalUserId
, userDisplayName :: String
}
deriving (Show)
parseUserInfo :: Xml S3Error XL.Element UserInfo
parseUserInfo = do
id_ <- strContent <<< findElementNameUI "ID"
displayName <- strContent <<< findElementNameUI "DisplayName"
return UserInfo { userId = id_, userDisplayName = displayName }
type Bucket = String
data BucketInfo
= BucketInfo {
bucketName :: Bucket
, bucketCreationDate :: UTCTime
}
deriving (Show)
data ObjectInfo
= ObjectInfo {
objectKey :: String
, objectLastModified :: UTCTime
, objectETag :: String
, objectSize :: Integer
, objectStorageClass :: StorageClass
, objectOwner :: UserInfo
}
deriving (Show)
data StorageClass
= StorageClassStandard
deriving (Show)
type LocationConstraint = String
locationUsClassic, locationUsWest, locationEu, locationApSouthEast, locationApNorthEast :: LocationConstraint
locationUsClassic = ""
locationUsWest = "us-west-1"
locationEu = "EU"
locationApSouthEast = "ap-southeast-1"
locationApNorthEast = "ap-northeast-1"