@@ -1,8 +1,6 @@
11module Network.Azure.ServiceManagement
2− (
3− -- * Submitting requests
4− SubscriptionId(SubscriptionId)
5− , azureRequest
2+ ( -- * Submitting requests
3+ azureRequest
64 -- * Re-export functionality from TLS
75 , fileReadCertificate
86 , fileReadPrivateKey
@@ -23,18 +21,19 @@ import Network.HTTP.Conduit
2321 )
2422import Data.CaseInsensitive as CI (mk)
2523
26−newtype SubscriptionId = SubscriptionId { unSubscriptionId :: String }
27−
28−azureRequest :: SubscriptionId -> X509 -> PrivateKey -> String -> IO ByteString
29−azureRequest sid cert pkey subURL = do
30− req <- parseUrl ( "https://management.core.windows.net/"
31− ++ unSubscriptionId sid
32− ++ subURL
33− )
24+-- ^ Execute an Azure request
25+azureRequest :: String -- ^ Subscription ID
26+ -> X509 -- ^ X509 certificate
27+ -> PrivateKey -- ^ Private key
28+ -> String -- ^ Relative path
29+ -> String -- ^ Version
30+ -> IO ByteString
31+azureRequest sid cert pkey subURL version = do
32+ req <- parseUrl $ "https://management.core.windows.net/" ++ sid++ subURL
3433 withManager $ \manager -> do
3534 let req' = req {
3635 clientCertificates = [ (cert, Just pkey) ]
37− , requestHeaders = [ (CI.mk $ BSC.pack "x-ms-version", BSC.pack "2010-10-28")
36+ , requestHeaders = [ (CI.mk $ BSC.pack "x-ms-version", BSC.pack version)
3837 , (CI.mk $ BSC.pack "content-type", BSC.pack "application/xml")
3938 ]
4039 }