{-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} module Drone.Endpoints.Server where import Data.Text (Text) import Drone.Client import Drone.Types import Lens.Micro ((^.)) import Network.HTTP.Req getServer :: (MonadHttp m, Client c) => c -> Text -> m (JsonResponse Server) getServer c name = req GET url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathServer) name opt = mkHeader c getServers :: (MonadHttp m, Client c) => c -> m (JsonResponse [Server]) getServers c = req GET url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathServers) opt = mkHeader c createServer :: (MonadHttp m, Client c) => c -> m (JsonResponse Server) createServer c = req POST url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathServers) opt = mkHeader c deleteServer :: (MonadHttp m, Client c) => c -> Text -> m IgnoreResponse deleteServer c name = req DELETE url NoReqBody ignoreResponse opt where url = mkUrl c $ format (paths ^. #pathServer) name opt = mkHeader c pauseAutoscale :: (MonadHttp m, Client c) => c -> m IgnoreResponse pauseAutoscale c = req POST url NoReqBody ignoreResponse opt where url = mkUrl c $ format (paths ^. #pathScalerPause) opt = mkHeader c resumeAutoscale :: (MonadHttp m, Client c) => c -> m IgnoreResponse resumeAutoscale c = req POST url NoReqBody ignoreResponse opt where url = mkUrl c $ format (paths ^. #pathScalerResume) opt = mkHeader c getVersion :: (MonadHttp m, Client c) => c -> m (JsonResponse Version) getVersion c = req GET url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathVersion) opt = mkHeader c