{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.ElasticBeanstalk.DescribeEvents -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Returns list of event descriptions matching criteria up to the last 6 weeks. -- -- module Network.AWS.ElasticBeanstalk.DescribeEvents ( -- * Request DescribeEvents -- ** Request constructor , describeEvents -- ** Request lenses , deApplicationName , deEndTime , deEnvironmentId , deEnvironmentName , deMaxRecords , deNextToken , deRequestId , deSeverity , deStartTime , deTemplateName , deVersionLabel -- * Response , DescribeEventsResponse -- ** Response constructor , describeEventsResponse -- ** Response lenses , derEvents , derNextToken ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.ElasticBeanstalk.Types import qualified GHC.Exts data DescribeEvents = DescribeEvents { _deApplicationName :: Maybe Text , _deEndTime :: Maybe ISO8601 , _deEnvironmentId :: Maybe Text , _deEnvironmentName :: Maybe Text , _deMaxRecords :: Maybe Nat , _deNextToken :: Maybe Text , _deRequestId :: Maybe Text , _deSeverity :: Maybe EventSeverity , _deStartTime :: Maybe ISO8601 , _deTemplateName :: Maybe Text , _deVersionLabel :: Maybe Text } deriving (Eq, Show) -- | 'DescribeEvents' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'deApplicationName' @::@ 'Maybe' 'Text' -- -- * 'deEndTime' @::@ 'Maybe' 'UTCTime' -- -- * 'deEnvironmentId' @::@ 'Maybe' 'Text' -- -- * 'deEnvironmentName' @::@ 'Maybe' 'Text' -- -- * 'deMaxRecords' @::@ 'Maybe' 'Natural' -- -- * 'deNextToken' @::@ 'Maybe' 'Text' -- -- * 'deRequestId' @::@ 'Maybe' 'Text' -- -- * 'deSeverity' @::@ 'Maybe' 'EventSeverity' -- -- * 'deStartTime' @::@ 'Maybe' 'UTCTime' -- -- * 'deTemplateName' @::@ 'Maybe' 'Text' -- -- * 'deVersionLabel' @::@ 'Maybe' 'Text' -- describeEvents :: DescribeEvents describeEvents = DescribeEvents { _deApplicationName = Nothing , _deVersionLabel = Nothing , _deTemplateName = Nothing , _deEnvironmentId = Nothing , _deEnvironmentName = Nothing , _deRequestId = Nothing , _deSeverity = Nothing , _deStartTime = Nothing , _deEndTime = Nothing , _deMaxRecords = Nothing , _deNextToken = Nothing } -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- include only those associated with this application. deApplicationName :: Lens' DescribeEvents (Maybe Text) deApplicationName = lens _deApplicationName (\s a -> s { _deApplicationName = a }) -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those that occur up to, but not including, the 'EndTime'. deEndTime :: Lens' DescribeEvents (Maybe UTCTime) deEndTime = lens _deEndTime (\s a -> s { _deEndTime = a }) . mapping _Time -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those associated with this environment. deEnvironmentId :: Lens' DescribeEvents (Maybe Text) deEnvironmentId = lens _deEnvironmentId (\s a -> s { _deEnvironmentId = a }) -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those associated with this environment. deEnvironmentName :: Lens' DescribeEvents (Maybe Text) deEnvironmentName = lens _deEnvironmentName (\s a -> s { _deEnvironmentName = a }) -- | Specifies the maximum number of events that can be returned, beginning with -- the most recent event. deMaxRecords :: Lens' DescribeEvents (Maybe Natural) deMaxRecords = lens _deMaxRecords (\s a -> s { _deMaxRecords = a }) . mapping _Nat -- | Pagination token. If specified, the events return the next batch of results. deNextToken :: Lens' DescribeEvents (Maybe Text) deNextToken = lens _deNextToken (\s a -> s { _deNextToken = a }) -- | If specified, AWS Elastic Beanstalk restricts the described events to -- include only those associated with this request ID. deRequestId :: Lens' DescribeEvents (Maybe Text) deRequestId = lens _deRequestId (\s a -> s { _deRequestId = a }) -- | If specified, limits the events returned from this call to include only -- those with the specified severity or higher. deSeverity :: Lens' DescribeEvents (Maybe EventSeverity) deSeverity = lens _deSeverity (\s a -> s { _deSeverity = a }) -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those that occur on or after this time. deStartTime :: Lens' DescribeEvents (Maybe UTCTime) deStartTime = lens _deStartTime (\s a -> s { _deStartTime = a }) . mapping _Time -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those that are associated with this environment configuration. deTemplateName :: Lens' DescribeEvents (Maybe Text) deTemplateName = lens _deTemplateName (\s a -> s { _deTemplateName = a }) -- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to -- those associated with this application version. deVersionLabel :: Lens' DescribeEvents (Maybe Text) deVersionLabel = lens _deVersionLabel (\s a -> s { _deVersionLabel = a }) data DescribeEventsResponse = DescribeEventsResponse { _derEvents :: List "member" EventDescription , _derNextToken :: Maybe Text } deriving (Eq, Show) -- | 'DescribeEventsResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'derEvents' @::@ ['EventDescription'] -- -- * 'derNextToken' @::@ 'Maybe' 'Text' -- describeEventsResponse :: DescribeEventsResponse describeEventsResponse = DescribeEventsResponse { _derEvents = mempty , _derNextToken = Nothing } -- | A list of 'EventDescription'. derEvents :: Lens' DescribeEventsResponse [EventDescription] derEvents = lens _derEvents (\s a -> s { _derEvents = a }) . _List -- | If returned, this indicates that there are more results to obtain. Use this -- token in the next 'DescribeEvents' call to get the next batch of events. derNextToken :: Lens' DescribeEventsResponse (Maybe Text) derNextToken = lens _derNextToken (\s a -> s { _derNextToken = a }) instance ToPath DescribeEvents where toPath = const "/" instance ToQuery DescribeEvents where toQuery DescribeEvents{..} = mconcat [ "ApplicationName" =? _deApplicationName , "EndTime" =? _deEndTime , "EnvironmentId" =? _deEnvironmentId , "EnvironmentName" =? _deEnvironmentName , "MaxRecords" =? _deMaxRecords , "NextToken" =? _deNextToken , "RequestId" =? _deRequestId , "Severity" =? _deSeverity , "StartTime" =? _deStartTime , "TemplateName" =? _deTemplateName , "VersionLabel" =? _deVersionLabel ] instance ToHeaders DescribeEvents instance AWSRequest DescribeEvents where type Sv DescribeEvents = ElasticBeanstalk type Rs DescribeEvents = DescribeEventsResponse request = post "DescribeEvents" response = xmlResponse instance FromXML DescribeEventsResponse where parseXML = withElement "DescribeEventsResult" $ \x -> DescribeEventsResponse <$> x .@? "Events" .!@ mempty <*> x .@? "NextToken" instance AWSPager DescribeEvents where page rq rs | stop (rq ^. deNextToken) = Nothing | otherwise = (\x -> rq & deNextToken ?~ x) <$> (rs ^. derNextToken)