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