{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.ServiceCatalog.ExecuteProvisionedProductPlan
(
executeProvisionedProductPlan
, ExecuteProvisionedProductPlan
, epppAcceptLanguage
, epppPlanId
, epppIdempotencyToken
, executeProvisionedProductPlanResponse
, ExecuteProvisionedProductPlanResponse
, eppprsRecordDetail
, eppprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.ServiceCatalog.Types
import Network.AWS.ServiceCatalog.Types.Product
data ExecuteProvisionedProductPlan = ExecuteProvisionedProductPlan'
{ _epppAcceptLanguage :: !(Maybe Text)
, _epppPlanId :: !Text
, _epppIdempotencyToken :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
executeProvisionedProductPlan
:: Text
-> Text
-> ExecuteProvisionedProductPlan
executeProvisionedProductPlan pPlanId_ pIdempotencyToken_ =
ExecuteProvisionedProductPlan'
{ _epppAcceptLanguage = Nothing
, _epppPlanId = pPlanId_
, _epppIdempotencyToken = pIdempotencyToken_
}
epppAcceptLanguage :: Lens' ExecuteProvisionedProductPlan (Maybe Text)
epppAcceptLanguage = lens _epppAcceptLanguage (\ s a -> s{_epppAcceptLanguage = a})
epppPlanId :: Lens' ExecuteProvisionedProductPlan Text
epppPlanId = lens _epppPlanId (\ s a -> s{_epppPlanId = a})
epppIdempotencyToken :: Lens' ExecuteProvisionedProductPlan Text
epppIdempotencyToken = lens _epppIdempotencyToken (\ s a -> s{_epppIdempotencyToken = a})
instance AWSRequest ExecuteProvisionedProductPlan
where
type Rs ExecuteProvisionedProductPlan =
ExecuteProvisionedProductPlanResponse
request = postJSON serviceCatalog
response
= receiveJSON
(\ s h x ->
ExecuteProvisionedProductPlanResponse' <$>
(x .?> "RecordDetail") <*> (pure (fromEnum s)))
instance Hashable ExecuteProvisionedProductPlan where
instance NFData ExecuteProvisionedProductPlan where
instance ToHeaders ExecuteProvisionedProductPlan
where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWS242ServiceCatalogService.ExecuteProvisionedProductPlan"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ExecuteProvisionedProductPlan where
toJSON ExecuteProvisionedProductPlan'{..}
= object
(catMaybes
[("AcceptLanguage" .=) <$> _epppAcceptLanguage,
Just ("PlanId" .= _epppPlanId),
Just ("IdempotencyToken" .= _epppIdempotencyToken)])
instance ToPath ExecuteProvisionedProductPlan where
toPath = const "/"
instance ToQuery ExecuteProvisionedProductPlan where
toQuery = const mempty
data ExecuteProvisionedProductPlanResponse = ExecuteProvisionedProductPlanResponse'
{ _eppprsRecordDetail :: !(Maybe RecordDetail)
, _eppprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
executeProvisionedProductPlanResponse
:: Int
-> ExecuteProvisionedProductPlanResponse
executeProvisionedProductPlanResponse pResponseStatus_ =
ExecuteProvisionedProductPlanResponse'
{_eppprsRecordDetail = Nothing, _eppprsResponseStatus = pResponseStatus_}
eppprsRecordDetail :: Lens' ExecuteProvisionedProductPlanResponse (Maybe RecordDetail)
eppprsRecordDetail = lens _eppprsRecordDetail (\ s a -> s{_eppprsRecordDetail = a})
eppprsResponseStatus :: Lens' ExecuteProvisionedProductPlanResponse Int
eppprsResponseStatus = lens _eppprsResponseStatus (\ s a -> s{_eppprsResponseStatus = a})
instance NFData ExecuteProvisionedProductPlanResponse
where