linode-v4 0.1.0.3 → 0.1.0.4
raw patch · 4 files changed
+35/−26 lines, 4 files
Files
- README.md +7/−0
- linode-v4.cabal +1/−1
- src/Network/Linode/Api.hs +20/−19
- src/Network/Linode/Response.hs +7/−6
README.md view
@@ -25,6 +25,13 @@ $ cabal install ``` +## Test++```bash+$ cabal install --enable-tests --only-dependencies+$ cabal test+```+ ## Example ```
linode-v4.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: linode-v4-version: 0.1.0.3+version: 0.1.0.4 synopsis: Haskell wrapper for the Linode v4 API -- description: homepage: https://github.com/eatonphil/linode-haskell
src/Network/Linode/Api.hs view
@@ -89,58 +89,59 @@ getDatacenter id = get ["/datacenters", id] getDistributions :: IO (Data.Maybe.Maybe Rsp.Distributions)-getDistributions = get ["/distributions"]+getDistributions = get ["/linode/distributions"] getDistributionsRecommended :: IO (Data.Maybe.Maybe Rsp.Distributions)-getDistributionsRecommended = get ["/distributions/recommended"]+getDistributionsRecommended = get ["/linode/distributions/recommended"] getDistribution :: String -> IO (Data.Maybe.Maybe Rsp.Distribution)-getDistribution id = get ["/distributions", id]+getDistribution id = get ["/linode/distributions", id] getLinodes :: IO (Data.Maybe.Maybe Rsp.Linodes)-getLinodes = get ["/linodes"]+getLinodes = get ["/linode/instances"] getLinode :: String -> IO (Data.Maybe.Maybe Rsp.Linode)-getLinode id = get ["/linodes", id]+getLinode id = get ["/linode/instances", id] addLinode :: Req.Linode -> IO (Data.Maybe.Maybe Rsp.Linode)-addLinode linode = post ["/linodes"] linode+addLinode linode = post ["/linode/instances"] linode editLinode :: Rsp.Linode -> IO (Data.Maybe.Maybe Rsp.Linode)-editLinode linode = put ["/linodes", Rsp.id linode] linode+editLinode linode = put ["/linode/instances", show $ Rsp.id linode] linode getDisks :: String -> IO (Data.Maybe.Maybe Rsp.Disks)-getDisks linodeId = get ["/linodes", linodeId, "disks"]+getDisks linodeId = get ["/linode/instances", linodeId, "disks"] getDisk :: String -> String -> IO (Data.Maybe.Maybe Rsp.Disk)-getDisk linodeId diskId = get ["/linodes", linodeId, "disks", diskId]+getDisk linodeId diskId = get ["/linode/instances", linodeId, "disks", diskId] addDisk :: String -> Req.Disk -> IO (Data.Maybe.Maybe Rsp.Disk)-addDisk linodeId disk = post ["/linodes", linodeId] disk+addDisk linodeId disk = post ["/linode/instances", linodeId] disk getConfigs :: String -> IO (Data.Maybe.Maybe Rsp.Configs)-getConfigs linodeId = get ["/linodes", linodeId, "configs"]+getConfigs linodeId = get ["/linode/instances", linodeId, "configs"] getConfig :: String -> String -> IO (Data.Maybe.Maybe Rsp.Config)-getConfig linodeId configId = get ["/linodes", linodeId, "configs", configId]+getConfig linodeId configId = get ["/linode/instances", linodeId, "configs", configId] addConfig :: String -> Req.Config -> IO (Data.Maybe.Maybe Rsp.Config)-addConfig linodeId config = post ["/linodes", linodeId, "configs"] config+addConfig linodeId config = post ["/linode/instances", linodeId, "configs"] config +{- There are more services endpoints -} getServices :: IO (Data.Maybe.Maybe Rsp.Services)-getServices = get ["/services"]+getServices = get ["/linode/services"] getService :: String -> IO (Data.Maybe.Maybe Rsp.Service)-getService id = get ["/services", id]+getService id = get ["/linode/services", id] getDNSZones :: IO (Data.Maybe.Maybe Rsp.DNSZones)-getDNSZones = get ["/dnszones"]+getDNSZones = get ["/dns/zones"] getDNSZone :: String -> IO (Data.Maybe.Maybe Rsp.DNSZone)-getDNSZone id = get ["/dnszones", id]+getDNSZone id = get ["/dns/zones", id] getKernels :: IO (Data.Maybe.Maybe Rsp.Kernels)-getKernels = get ["/kernels"]+getKernels = get ["/linode/kernels"] getKernel :: String -> IO (Data.Maybe.Maybe Rsp.Kernel)-getKernel id = get ["/kernels", id]+getKernel id = get ["/linode/kernels", id]
src/Network/Linode/Response.hs view
@@ -50,7 +50,6 @@ mbits_out :: M.Maybe Int, monthly_price :: Int, ram :: M.Maybe Int,- service_type :: String, transfer :: M.Maybe Int, vcpus :: M.Maybe Int } deriving (Eq, Show, GHC.Generics.Generic) @@ -96,6 +95,7 @@ deprecated :: Bool, xen :: Bool, kvm :: Bool,+ description :: M.Maybe String, label :: String, version :: String, x64 :: Bool } deriving (Eq, Show, GHC.Generics.Generic)@@ -133,9 +133,11 @@ instance Data.Aeson.FromJSON LinodeBackupsSchedule instance Data.Aeson.ToJSON LinodeBackupsSchedule + data LinodeBackups = LinodeBackups { enabled :: Bool, schedule :: LinodeBackupsSchedule,- last_backup :: M.Maybe String } deriving (Eq, Show, GHC.Generics.Generic)+ snapshot :: M.Maybe Backup,+ last_backup :: M.Maybe Backup } deriving (Eq, Show, GHC.Generics.Generic) instance Data.Aeson.FromJSON LinodeBackups instance Data.Aeson.ToJSON LinodeBackups@@ -159,7 +161,7 @@ instance Data.Aeson.FromJSON LinodeIPAddresses instance Data.Aeson.ToJSON LinodeIPAddresses -data Linode = Linode { id :: String,+data Linode = Linode { id :: Int, alerts :: LinodeAlerts, backups :: LinodeBackups, created :: String,@@ -185,10 +187,9 @@ instance Data.Aeson.ToJSON Linodes -- Missing type field-data Backup = Backup { id :: String,- label :: String,+data Backup = Backup { id :: Int,+ label :: M.Maybe String, status :: String,- linode_id :: String, datacenter :: Datacenter, created :: String, updated :: String,