amazonka-elasticbeanstalk-0.0.0: gen/Network/AWS/ElasticBeanstalk/TerminateEnvironment.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.TerminateEnvironment
-- 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)
-- | Terminates the specified environment.
--
-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_TerminateEnvironment.html>
module Network.AWS.ElasticBeanstalk.TerminateEnvironment
(
-- * Request
TerminateEnvironment
-- ** Request constructor
, terminateEnvironment
-- ** Request lenses
, teEnvironmentId
, teEnvironmentName
, teTerminateResources
-- * Response
, TerminateEnvironmentResponse
-- ** Response constructor
, terminateEnvironmentResponse
-- ** Response lenses
, terApplicationName
, terCNAME
, terDateCreated
, terDateUpdated
, terDescription
, terEndpointURL
, terEnvironmentId
, terEnvironmentName
, terHealth
, terResources
, terSolutionStackName
, terStatus
, terTemplateName
, terTier
, terVersionLabel
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElasticBeanstalk.Types
import qualified GHC.Exts
data TerminateEnvironment = TerminateEnvironment
{ _teEnvironmentId :: Maybe Text
, _teEnvironmentName :: Maybe Text
, _teTerminateResources :: Maybe Bool
} deriving (Eq, Ord, Show)
-- | 'TerminateEnvironment' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'teEnvironmentId' @::@ 'Maybe' 'Text'
--
-- * 'teEnvironmentName' @::@ 'Maybe' 'Text'
--
-- * 'teTerminateResources' @::@ 'Maybe' 'Bool'
--
terminateEnvironment :: TerminateEnvironment
terminateEnvironment = TerminateEnvironment
{ _teEnvironmentId = Nothing
, _teEnvironmentName = Nothing
, _teTerminateResources = Nothing
}
-- | The ID of the environment to terminate. Condition: You must specify
-- either this or an EnvironmentName, or both. If you do not specify either,
-- AWS Elastic Beanstalk returns MissingRequiredParameter error.
teEnvironmentId :: Lens' TerminateEnvironment (Maybe Text)
teEnvironmentId = lens _teEnvironmentId (\s a -> s { _teEnvironmentId = a })
-- | The name of the environment to terminate. Condition: You must specify
-- either this or an EnvironmentId, or both. If you do not specify either,
-- AWS Elastic Beanstalk returns MissingRequiredParameter error.
teEnvironmentName :: Lens' TerminateEnvironment (Maybe Text)
teEnvironmentName =
lens _teEnvironmentName (\s a -> s { _teEnvironmentName = a })
-- | Indicates whether the associated AWS resources should shut down when the
-- environment is terminated: true: (default) The user AWS resources (for
-- example, the Auto Scaling group, LoadBalancer, etc.) are terminated along
-- with the environment. false: The environment is removed from the AWS
-- Elastic Beanstalk but the AWS resources continue to operate. true: The
-- specified environment as well as the associated AWS resources, such as
-- Auto Scaling group and LoadBalancer, are terminated. false: AWS Elastic
-- Beanstalk resource management is removed from the environment, but the
-- AWS resources continue to operate. For more information, see the AWS
-- Elastic Beanstalk User Guide. Default: true Valid Values: true | false.
teTerminateResources :: Lens' TerminateEnvironment (Maybe Bool)
teTerminateResources =
lens _teTerminateResources (\s a -> s { _teTerminateResources = a })
data TerminateEnvironmentResponse = TerminateEnvironmentResponse
{ _terApplicationName :: Maybe Text
, _terCNAME :: Maybe Text
, _terDateCreated :: Maybe RFC822
, _terDateUpdated :: Maybe RFC822
, _terDescription :: Maybe Text
, _terEndpointURL :: Maybe Text
, _terEnvironmentId :: Maybe Text
, _terEnvironmentName :: Maybe Text
, _terHealth :: Maybe Text
, _terResources :: Maybe EnvironmentResourcesDescription
, _terSolutionStackName :: Maybe Text
, _terStatus :: Maybe Text
, _terTemplateName :: Maybe Text
, _terTier :: Maybe EnvironmentTier
, _terVersionLabel :: Maybe Text
} deriving (Eq, Show)
-- | 'TerminateEnvironmentResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'terApplicationName' @::@ 'Maybe' 'Text'
--
-- * 'terCNAME' @::@ 'Maybe' 'Text'
--
-- * 'terDateCreated' @::@ 'Maybe' 'UTCTime'
--
-- * 'terDateUpdated' @::@ 'Maybe' 'UTCTime'
--
-- * 'terDescription' @::@ 'Maybe' 'Text'
--
-- * 'terEndpointURL' @::@ 'Maybe' 'Text'
--
-- * 'terEnvironmentId' @::@ 'Maybe' 'Text'
--
-- * 'terEnvironmentName' @::@ 'Maybe' 'Text'
--
-- * 'terHealth' @::@ 'Maybe' 'Text'
--
-- * 'terResources' @::@ 'Maybe' 'EnvironmentResourcesDescription'
--
-- * 'terSolutionStackName' @::@ 'Maybe' 'Text'
--
-- * 'terStatus' @::@ 'Maybe' 'Text'
--
-- * 'terTemplateName' @::@ 'Maybe' 'Text'
--
-- * 'terTier' @::@ 'Maybe' 'EnvironmentTier'
--
-- * 'terVersionLabel' @::@ 'Maybe' 'Text'
--
terminateEnvironmentResponse :: TerminateEnvironmentResponse
terminateEnvironmentResponse = TerminateEnvironmentResponse
{ _terEnvironmentName = Nothing
, _terEnvironmentId = Nothing
, _terApplicationName = Nothing
, _terVersionLabel = Nothing
, _terSolutionStackName = Nothing
, _terTemplateName = Nothing
, _terDescription = Nothing
, _terEndpointURL = Nothing
, _terCNAME = Nothing
, _terDateCreated = Nothing
, _terDateUpdated = Nothing
, _terStatus = Nothing
, _terHealth = Nothing
, _terResources = Nothing
, _terTier = Nothing
}
-- | The name of the application associated with this environment.
terApplicationName :: Lens' TerminateEnvironmentResponse (Maybe Text)
terApplicationName =
lens _terApplicationName (\s a -> s { _terApplicationName = a })
-- | The URL to the CNAME for this environment.
terCNAME :: Lens' TerminateEnvironmentResponse (Maybe Text)
terCNAME = lens _terCNAME (\s a -> s { _terCNAME = a })
-- | The creation date for this environment.
terDateCreated :: Lens' TerminateEnvironmentResponse (Maybe UTCTime)
terDateCreated = lens _terDateCreated (\s a -> s { _terDateCreated = a }) . mapping _Time
-- | The last modified date for this environment.
terDateUpdated :: Lens' TerminateEnvironmentResponse (Maybe UTCTime)
terDateUpdated = lens _terDateUpdated (\s a -> s { _terDateUpdated = a }) . mapping _Time
-- | Describes this environment.
terDescription :: Lens' TerminateEnvironmentResponse (Maybe Text)
terDescription = lens _terDescription (\s a -> s { _terDescription = a })
-- | For load-balanced, autoscaling environments, the URL to the LoadBalancer.
-- For single-instance environments, the IP address of the instance.
terEndpointURL :: Lens' TerminateEnvironmentResponse (Maybe Text)
terEndpointURL = lens _terEndpointURL (\s a -> s { _terEndpointURL = a })
-- | The ID of this environment.
terEnvironmentId :: Lens' TerminateEnvironmentResponse (Maybe Text)
terEnvironmentId = lens _terEnvironmentId (\s a -> s { _terEnvironmentId = a })
-- | The name of this environment.
terEnvironmentName :: Lens' TerminateEnvironmentResponse (Maybe Text)
terEnvironmentName =
lens _terEnvironmentName (\s a -> s { _terEnvironmentName = a })
-- | Describes the health status of the environment. AWS Elastic Beanstalk
-- indicates the failure levels for a running environment: Red : Indicates
-- the environment is not working. Yellow: Indicates that something is
-- wrong, the application might not be available, but the instances appear
-- running. Green: Indicates the environment is healthy and fully
-- functional. Red: Indicates the environment is not responsive. Occurs when
-- three or more consecutive failures occur for an environment. Yellow:
-- Indicates that something is wrong. Occurs when two consecutive failures
-- occur for an environment. Green: Indicates the environment is healthy and
-- fully functional. Grey: Default health for a new environment. The
-- environment is not fully launched and health checks have not started or
-- health checks are suspended during an UpdateEnvironment or
-- RestartEnvironement request. Default: Grey.
terHealth :: Lens' TerminateEnvironmentResponse (Maybe Text)
terHealth = lens _terHealth (\s a -> s { _terHealth = a })
-- | The description of the AWS resources used by this environment.
terResources :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentResourcesDescription)
terResources = lens _terResources (\s a -> s { _terResources = a })
-- | The name of the SolutionStack deployed with this environment.
terSolutionStackName :: Lens' TerminateEnvironmentResponse (Maybe Text)
terSolutionStackName =
lens _terSolutionStackName (\s a -> s { _terSolutionStackName = a })
-- | The current operational status of the environment: Launching: Environment
-- is in the process of initial deployment. Updating: Environment is in the
-- process of updating its configuration settings or application version.
-- Ready: Environment is available to have an action performed on it, such
-- as update or terminate. Terminating: Environment is in the shut-down
-- process. Terminated: Environment is not running.
terStatus :: Lens' TerminateEnvironmentResponse (Maybe Text)
terStatus = lens _terStatus (\s a -> s { _terStatus = a })
-- | The name of the configuration template used to originally launch this
-- environment.
terTemplateName :: Lens' TerminateEnvironmentResponse (Maybe Text)
terTemplateName = lens _terTemplateName (\s a -> s { _terTemplateName = a })
-- | Describes the current tier of this environment.
terTier :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentTier)
terTier = lens _terTier (\s a -> s { _terTier = a })
-- | The application version deployed in this environment.
terVersionLabel :: Lens' TerminateEnvironmentResponse (Maybe Text)
terVersionLabel = lens _terVersionLabel (\s a -> s { _terVersionLabel = a })
instance ToPath TerminateEnvironment where
toPath = const "/"
instance ToQuery TerminateEnvironment where
toQuery TerminateEnvironment{..} = mconcat
[ "EnvironmentId" =? _teEnvironmentId
, "EnvironmentName" =? _teEnvironmentName
, "TerminateResources" =? _teTerminateResources
]
instance ToHeaders TerminateEnvironment
instance AWSRequest TerminateEnvironment where
type Sv TerminateEnvironment = ElasticBeanstalk
type Rs TerminateEnvironment = TerminateEnvironmentResponse
request = post "TerminateEnvironment"
response = xmlResponse
instance FromXML TerminateEnvironmentResponse where
parseXML = withElement "TerminateEnvironmentResult" $ \x -> TerminateEnvironmentResponse
<$> x .@? "ApplicationName"
<*> x .@? "CNAME"
<*> x .@? "DateCreated"
<*> x .@? "DateUpdated"
<*> x .@? "Description"
<*> x .@? "EndpointURL"
<*> x .@? "EnvironmentId"
<*> x .@? "EnvironmentName"
<*> x .@? "Health"
<*> x .@? "Resources"
<*> x .@? "SolutionStackName"
<*> x .@? "Status"
<*> x .@? "TemplateName"
<*> x .@? "Tier"
<*> x .@? "VersionLabel"