amazonka-elasticbeanstalk-0.2.2: gen/Network/AWS/ElasticBeanstalk/DescribeEnvironments.hs
{-# 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.DescribeEnvironments
-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
-- 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 <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- | Returns descriptions for existing environments.
--
-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html>
module Network.AWS.ElasticBeanstalk.DescribeEnvironments
(
-- * Request
DescribeEnvironments
-- ** Request constructor
, describeEnvironments
-- ** Request lenses
, de1ApplicationName
, de1EnvironmentIds
, de1EnvironmentNames
, de1IncludeDeleted
, de1IncludedDeletedBackTo
, de1VersionLabel
-- * Response
, DescribeEnvironmentsResponse
-- ** Response constructor
, describeEnvironmentsResponse
-- ** Response lenses
, derEnvironments
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElasticBeanstalk.Types
import qualified GHC.Exts
data DescribeEnvironments = DescribeEnvironments
{ _de1ApplicationName :: Maybe Text
, _de1EnvironmentIds :: List "member" Text
, _de1EnvironmentNames :: List "member" Text
, _de1IncludeDeleted :: Maybe Bool
, _de1IncludedDeletedBackTo :: Maybe ISO8601
, _de1VersionLabel :: Maybe Text
} deriving (Eq, Ord, Read, Show)
-- | 'DescribeEnvironments' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'de1ApplicationName' @::@ 'Maybe' 'Text'
--
-- * 'de1EnvironmentIds' @::@ ['Text']
--
-- * 'de1EnvironmentNames' @::@ ['Text']
--
-- * 'de1IncludeDeleted' @::@ 'Maybe' 'Bool'
--
-- * 'de1IncludedDeletedBackTo' @::@ 'Maybe' 'UTCTime'
--
-- * 'de1VersionLabel' @::@ 'Maybe' 'Text'
--
describeEnvironments :: DescribeEnvironments
describeEnvironments = DescribeEnvironments
{ _de1ApplicationName = Nothing
, _de1VersionLabel = Nothing
, _de1EnvironmentIds = mempty
, _de1EnvironmentNames = mempty
, _de1IncludeDeleted = Nothing
, _de1IncludedDeletedBackTo = Nothing
}
-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
-- include only those that are associated with this application.
de1ApplicationName :: Lens' DescribeEnvironments (Maybe Text)
de1ApplicationName =
lens _de1ApplicationName (\s a -> s { _de1ApplicationName = a })
-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
-- include only those that have the specified IDs.
de1EnvironmentIds :: Lens' DescribeEnvironments [Text]
de1EnvironmentIds =
lens _de1EnvironmentIds (\s a -> s { _de1EnvironmentIds = a })
. _List
-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
-- include only those that have the specified names.
de1EnvironmentNames :: Lens' DescribeEnvironments [Text]
de1EnvironmentNames =
lens _de1EnvironmentNames (\s a -> s { _de1EnvironmentNames = a })
. _List
-- | Indicates whether to include deleted environments:
--
-- 'true': Environments that have been deleted after 'IncludedDeletedBackTo' are
-- displayed.
--
-- 'false': Do not include deleted environments.
de1IncludeDeleted :: Lens' DescribeEnvironments (Maybe Bool)
de1IncludeDeleted =
lens _de1IncludeDeleted (\s a -> s { _de1IncludeDeleted = a })
-- | If specified when 'IncludeDeleted' is set to 'true', then environments deleted
-- after this date are displayed.
de1IncludedDeletedBackTo :: Lens' DescribeEnvironments (Maybe UTCTime)
de1IncludedDeletedBackTo =
lens _de1IncludedDeletedBackTo
(\s a -> s { _de1IncludedDeletedBackTo = a })
. mapping _Time
-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
-- include only those that are associated with this application version.
de1VersionLabel :: Lens' DescribeEnvironments (Maybe Text)
de1VersionLabel = lens _de1VersionLabel (\s a -> s { _de1VersionLabel = a })
newtype DescribeEnvironmentsResponse = DescribeEnvironmentsResponse
{ _derEnvironments :: List "member" EnvironmentDescription
} deriving (Eq, Read, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeEnvironmentsResponse where
type Item DescribeEnvironmentsResponse = EnvironmentDescription
fromList = DescribeEnvironmentsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _derEnvironments
-- | 'DescribeEnvironmentsResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'derEnvironments' @::@ ['EnvironmentDescription']
--
describeEnvironmentsResponse :: DescribeEnvironmentsResponse
describeEnvironmentsResponse = DescribeEnvironmentsResponse
{ _derEnvironments = mempty
}
-- | Returns an 'EnvironmentDescription' list.
derEnvironments :: Lens' DescribeEnvironmentsResponse [EnvironmentDescription]
derEnvironments = lens _derEnvironments (\s a -> s { _derEnvironments = a }) . _List
instance ToPath DescribeEnvironments where
toPath = const "/"
instance ToQuery DescribeEnvironments where
toQuery DescribeEnvironments{..} = mconcat
[ "ApplicationName" =? _de1ApplicationName
, "EnvironmentIds" =? _de1EnvironmentIds
, "EnvironmentNames" =? _de1EnvironmentNames
, "IncludeDeleted" =? _de1IncludeDeleted
, "IncludedDeletedBackTo" =? _de1IncludedDeletedBackTo
, "VersionLabel" =? _de1VersionLabel
]
instance ToHeaders DescribeEnvironments
instance AWSRequest DescribeEnvironments where
type Sv DescribeEnvironments = ElasticBeanstalk
type Rs DescribeEnvironments = DescribeEnvironmentsResponse
request = post "DescribeEnvironments"
response = xmlResponse
instance FromXML DescribeEnvironmentsResponse where
parseXML = withElement "DescribeEnvironmentsResult" $ \x -> DescribeEnvironmentsResponse
<$> x .@? "Environments" .!@ mempty