module Network.AWS.ServiceCatalog.AcceptPortfolioShare
    (
    
      acceptPortfolioShare
    , AcceptPortfolioShare
    
    , apsAcceptLanguage
    , apsPortfolioId
    
    , acceptPortfolioShareResponse
    , AcceptPortfolioShareResponse
    
    , apsrsResponseStatus
    ) 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 AcceptPortfolioShare = AcceptPortfolioShare'
  { _apsAcceptLanguage :: !(Maybe Text)
  , _apsPortfolioId    :: !Text
  } deriving (Eq, Read, Show, Data, Typeable, Generic)
acceptPortfolioShare
    :: Text 
    -> AcceptPortfolioShare
acceptPortfolioShare pPortfolioId_ =
  AcceptPortfolioShare'
  {_apsAcceptLanguage = Nothing, _apsPortfolioId = pPortfolioId_}
apsAcceptLanguage :: Lens' AcceptPortfolioShare (Maybe Text)
apsAcceptLanguage = lens _apsAcceptLanguage (\ s a -> s{_apsAcceptLanguage = a});
apsPortfolioId :: Lens' AcceptPortfolioShare Text
apsPortfolioId = lens _apsPortfolioId (\ s a -> s{_apsPortfolioId = a});
instance AWSRequest AcceptPortfolioShare where
        type Rs AcceptPortfolioShare =
             AcceptPortfolioShareResponse
        request = postJSON serviceCatalog
        response
          = receiveEmpty
              (\ s h x ->
                 AcceptPortfolioShareResponse' <$>
                   (pure (fromEnum s)))
instance Hashable AcceptPortfolioShare where
instance NFData AcceptPortfolioShare where
instance ToHeaders AcceptPortfolioShare where
        toHeaders
          = const
              (mconcat
                 ["X-Amz-Target" =#
                    ("AWS242ServiceCatalogService.AcceptPortfolioShare"
                       :: ByteString),
                  "Content-Type" =#
                    ("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AcceptPortfolioShare where
        toJSON AcceptPortfolioShare'{..}
          = object
              (catMaybes
                 [("AcceptLanguage" .=) <$> _apsAcceptLanguage,
                  Just ("PortfolioId" .= _apsPortfolioId)])
instance ToPath AcceptPortfolioShare where
        toPath = const "/"
instance ToQuery AcceptPortfolioShare where
        toQuery = const mempty
newtype AcceptPortfolioShareResponse = AcceptPortfolioShareResponse'
  { _apsrsResponseStatus :: Int
  } deriving (Eq, Read, Show, Data, Typeable, Generic)
acceptPortfolioShareResponse
    :: Int 
    -> AcceptPortfolioShareResponse
acceptPortfolioShareResponse pResponseStatus_ =
  AcceptPortfolioShareResponse' {_apsrsResponseStatus = pResponseStatus_}
apsrsResponseStatus :: Lens' AcceptPortfolioShareResponse Int
apsrsResponseStatus = lens _apsrsResponseStatus (\ s a -> s{_apsrsResponseStatus = a});
instance NFData AcceptPortfolioShareResponse where