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