{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.CloudWatchEvents.PutEvents -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Sends custom events to Amazon CloudWatch Events so that they can be matched to rules. -- -- module Network.AWS.CloudWatchEvents.PutEvents ( -- * Creating a Request putEvents , PutEvents -- * Request Lenses , peEntries -- * Destructuring the Response , putEventsResponse , PutEventsResponse -- * Response Lenses , persFailedEntryCount , persEntries , persResponseStatus ) where import Network.AWS.CloudWatchEvents.Types import Network.AWS.CloudWatchEvents.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'putEvents' smart constructor. newtype PutEvents = PutEvents' { _peEntries :: List1 PutEventsRequestEntry } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'PutEvents' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'peEntries' - The entry that defines an event in your system. You can specify several parameters for the entry such as the source and type of the event, resources associated with the event, and so on. putEvents :: NonEmpty PutEventsRequestEntry -- ^ 'peEntries' -> PutEvents putEvents pEntries_ = PutEvents' {_peEntries = _List1 # pEntries_} -- | The entry that defines an event in your system. You can specify several parameters for the entry such as the source and type of the event, resources associated with the event, and so on. peEntries :: Lens' PutEvents (NonEmpty PutEventsRequestEntry) peEntries = lens _peEntries (\ s a -> s{_peEntries = a}) . _List1 instance AWSRequest PutEvents where type Rs PutEvents = PutEventsResponse request = postJSON cloudWatchEvents response = receiveJSON (\ s h x -> PutEventsResponse' <$> (x .?> "FailedEntryCount") <*> (x .?> "Entries" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable PutEvents where instance NFData PutEvents where instance ToHeaders PutEvents where toHeaders = const (mconcat ["X-Amz-Target" =# ("AWSEvents.PutEvents" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON PutEvents where toJSON PutEvents'{..} = object (catMaybes [Just ("Entries" .= _peEntries)]) instance ToPath PutEvents where toPath = const "/" instance ToQuery PutEvents where toQuery = const mempty -- | /See:/ 'putEventsResponse' smart constructor. data PutEventsResponse = PutEventsResponse' { _persFailedEntryCount :: !(Maybe Int) , _persEntries :: !(Maybe [PutEventsResultEntry]) , _persResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'PutEventsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'persFailedEntryCount' - The number of failed entries. -- -- * 'persEntries' - The successfully and unsuccessfully ingested events results. If the ingestion was successful, the entry has the event ID in it. Otherwise, you can use the error code and error message to identify the problem with the entry. -- -- * 'persResponseStatus' - -- | The response status code. putEventsResponse :: Int -- ^ 'persResponseStatus' -> PutEventsResponse putEventsResponse pResponseStatus_ = PutEventsResponse' { _persFailedEntryCount = Nothing , _persEntries = Nothing , _persResponseStatus = pResponseStatus_ } -- | The number of failed entries. persFailedEntryCount :: Lens' PutEventsResponse (Maybe Int) persFailedEntryCount = lens _persFailedEntryCount (\ s a -> s{_persFailedEntryCount = a}) -- | The successfully and unsuccessfully ingested events results. If the ingestion was successful, the entry has the event ID in it. Otherwise, you can use the error code and error message to identify the problem with the entry. persEntries :: Lens' PutEventsResponse [PutEventsResultEntry] persEntries = lens _persEntries (\ s a -> s{_persEntries = a}) . _Default . _Coerce -- | -- | The response status code. persResponseStatus :: Lens' PutEventsResponse Int persResponseStatus = lens _persResponseStatus (\ s a -> s{_persResponseStatus = a}) instance NFData PutEventsResponse where