module Data.Hadoop.Protobuf.Hdfs where
import Data.ByteString (ByteString)
import Data.ProtocolBuffers
import Data.ProtocolBuffers.Orphans ()
import Data.Text (Text)
import Data.Word (Word32, Word64)
import GHC.Generics (Generic)
import Data.Hadoop.Protobuf.Security
data ContentSummary = ContentSummary
{ csLength :: Required 1 (Value Word64)
, csFileCount :: Required 2 (Value Word64)
, csDirectoryCount :: Required 3 (Value Word64)
, csQuota :: Required 4 (Value Word64)
, csSpaceConsumed :: Required 5 (Value Word64)
, csSpaceQuota :: Required 6 (Value Word64)
} deriving (Generic, Show)
instance Encode ContentSummary
instance Decode ContentSummary
data DirectoryListing = DirectoryListing
{ dlPartialListing :: Repeated 1 (Message FileStatus)
, dlRemaingEntries :: Required 2 (Value Word32)
} deriving (Generic, Show)
instance Encode DirectoryListing
instance Decode DirectoryListing
data FileStatus = FileStatus
{ fsFileType :: Required 1 (Enumeration FileType)
, fsPath :: Required 2 (Value ByteString)
, fsLength :: Required 3 (Value Word64)
, fsPermission :: Required 4 (Message FilePermission)
, fsOwner :: Required 5 (Value Text)
, fsGroup :: Required 6 (Value Text)
, fsModificationTime :: Required 7 (Value Word64)
, fsAccessTime :: Required 8 (Value Word64)
, fsSymLink :: Optional 9 (Value ByteString)
, fsBlockReplication :: Optional 10 (Value Word32)
, fsBlockSize :: Optional 11 (Value Word64)
, fsLocations :: Optional 12 (Message LocatedBlocks)
} deriving (Generic, Show)
instance Encode FileStatus
instance Decode FileStatus
data FileType = IS_DIR | IS_FILE | IS_SYMLINK
deriving (Generic, Show, Eq)
instance Enum FileType where
toEnum n = case n of
1 -> IS_DIR
2 -> IS_FILE
3 -> IS_SYMLINK
_ -> error $ "FileType.toEnum: invalid enum value <" ++ show n ++ ">"
fromEnum e = case e of
IS_DIR -> 1
IS_FILE -> 2
IS_SYMLINK -> 3
data ChecksumType = CHECKSUM_NULL | CHECKSUM_CRC32 | CHECKSUM_CRC32C
deriving (Generic, Show, Eq)
instance Enum ChecksumType where
toEnum n = case n of
0 -> CHECKSUM_NULL
1 -> CHECKSUM_CRC32
2 -> CHECKSUM_CRC32C
_ -> error $ "ChecksumType.toEnum: invalid enum value <" ++ show n ++ ">"
fromEnum e = case e of
CHECKSUM_NULL -> 0
CHECKSUM_CRC32 -> 1
CHECKSUM_CRC32C -> 2
instance Encode ChecksumType
instance Decode ChecksumType
data FilePermission = FilePermission
{ fpPerm :: Required 1 (Value Word32)
} deriving (Generic, Show)
instance Encode FilePermission
instance Decode FilePermission
data LocatedBlocks = LocatedBlocks
{ lbFileLength :: Required 1 (Value Word64)
, lbBlocks :: Repeated 2 (Message LocatedBlock)
, lbUnderConstruction :: Required 3 (Value Bool)
, lbLastBlock :: Optional 4 (Message LocatedBlock)
, lbLastBlockComplete :: Required 5 (Value Bool)
} deriving (Generic, Show)
instance Encode LocatedBlocks
instance Decode LocatedBlocks
data LocatedBlock = LocatedBlock
{ lbExtended :: Required 1 (Message ExtendedBlock)
, lbOffset :: Required 2 (Value Word64)
, lbLocations :: Repeated 3 (Message DataNodeInfo)
, lbCorrupt :: Required 4 (Value Bool)
, lbToken :: Required 5 (Message Token)
} deriving (Generic, Show)
instance Encode LocatedBlock
instance Decode LocatedBlock
data ExtendedBlock = ExtendedBlock
{ ebPoolId :: Required 1 (Value Text)
, ebBlockId :: Required 2 (Value Word64)
, ebGenerationStamp :: Required 3 (Value Word64)
, ebNumBytes :: Optional 4 (Value Word64)
} deriving (Generic, Show)
instance Encode ExtendedBlock
instance Decode ExtendedBlock
data DataNodeInfo = DataNodeInfo
{ dnId :: Required 1 (Message DataNodeId)
, dnCapacity :: Optional 2 (Value Word64)
, dnDfsUsed :: Optional 3 (Value Word64)
, dnRemaining :: Optional 4 (Value Word64)
, dnBlockPoolUsed :: Optional 5 (Value Word64)
, dnLastUpdate :: Optional 6 (Value Word64)
, dnXceiverCount :: Optional 7 (Value Word32)
, dnLocation :: Optional 8 (Value Text)
, dnAdminState :: Optional 9 (Enumeration AdminState)
} deriving (Generic, Show)
instance Encode DataNodeInfo
instance Decode DataNodeInfo
data AdminState = NORMAL | DECOMMISSION_INPROGRESS | DECOMMISSIONED
deriving (Generic, Show, Eq)
instance Enum AdminState where
toEnum n = case n of
0 -> NORMAL
1 -> DECOMMISSION_INPROGRESS
2 -> DECOMMISSIONED
_ -> error $ "AdminState.toEnum: invalid enum value <" ++ show n ++ ">"
fromEnum e = case e of
NORMAL -> 0
DECOMMISSION_INPROGRESS -> 1
DECOMMISSIONED -> 2
data DataNodeId = DataNodeId
{ dnIpAddr :: Required 1 (Value Text)
, dnHostName :: Required 2 (Value Text)
, dnStorageId :: Required 3 (Value Text)
, dnXferPort :: Required 4 (Value Word32)
, dnInfoPort :: Required 5 (Value Word32)
, dnIpcPort :: Required 6 (Value Word32)
} deriving (Generic, Show)
instance Encode DataNodeId
instance Decode DataNodeId