{-# 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.ElasticBeanstalk.UpdateEnvironment -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Updates the environment description, deploys a new application version, -- updates the configuration settings to an entirely new configuration -- template, or updates select configuration option values in the running -- environment. -- -- Attempting to update both the release and configuration is not allowed -- and AWS Elastic Beanstalk returns an 'InvalidParameterCombination' -- error. -- -- When updating the configuration settings to a new template or individual -- settings, a draft configuration is created and -- < DescribeConfigurationSettings> for this environment returns two -- setting descriptions with different 'DeploymentStatus' values. module Network.AWS.ElasticBeanstalk.UpdateEnvironment ( -- * Creating a Request updateEnvironment , UpdateEnvironment -- * Request Lenses , ueTemplateName , ueOptionsToRemove , ueOptionSettings , ueVersionLabel , ueTier , ueEnvironmentName , ueApplicationName , ueSolutionStackName , ueEnvironmentId , ueGroupName , ueDescription -- * Destructuring the Response , environmentDescription , EnvironmentDescription -- * Response Lenses , eStatus , eCNAME , eTemplateName , eAbortableOperationInProgress , eEndpointURL , eResources , eDateUpdated , eDateCreated , eHealth , eVersionLabel , eTier , eEnvironmentName , eApplicationName , eSolutionStackName , eEnvironmentId , eHealthStatus , eEnvironmentLinks , eDescription ) where import Network.AWS.ElasticBeanstalk.Types import Network.AWS.ElasticBeanstalk.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | -- -- /See:/ 'updateEnvironment' smart constructor. data UpdateEnvironment = UpdateEnvironment' { _ueTemplateName :: !(Maybe Text) , _ueOptionsToRemove :: !(Maybe [OptionSpecification]) , _ueOptionSettings :: !(Maybe [ConfigurationOptionSetting]) , _ueVersionLabel :: !(Maybe Text) , _ueTier :: !(Maybe EnvironmentTier) , _ueEnvironmentName :: !(Maybe Text) , _ueApplicationName :: !(Maybe Text) , _ueSolutionStackName :: !(Maybe Text) , _ueEnvironmentId :: !(Maybe Text) , _ueGroupName :: !(Maybe Text) , _ueDescription :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'UpdateEnvironment' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ueTemplateName' -- -- * 'ueOptionsToRemove' -- -- * 'ueOptionSettings' -- -- * 'ueVersionLabel' -- -- * 'ueTier' -- -- * 'ueEnvironmentName' -- -- * 'ueApplicationName' -- -- * 'ueSolutionStackName' -- -- * 'ueEnvironmentId' -- -- * 'ueGroupName' -- -- * 'ueDescription' updateEnvironment :: UpdateEnvironment updateEnvironment = UpdateEnvironment' { _ueTemplateName = Nothing , _ueOptionsToRemove = Nothing , _ueOptionSettings = Nothing , _ueVersionLabel = Nothing , _ueTier = Nothing , _ueEnvironmentName = Nothing , _ueApplicationName = Nothing , _ueSolutionStackName = Nothing , _ueEnvironmentId = Nothing , _ueGroupName = Nothing , _ueDescription = Nothing } -- | If this parameter is specified, AWS Elastic Beanstalk deploys this -- configuration template to the environment. If no such configuration -- template is found, AWS Elastic Beanstalk returns an -- 'InvalidParameterValue' error. ueTemplateName :: Lens' UpdateEnvironment (Maybe Text) ueTemplateName = lens _ueTemplateName (\ s a -> s{_ueTemplateName = a}); -- | A list of custom user-defined configuration options to remove from the -- configuration set for this environment. ueOptionsToRemove :: Lens' UpdateEnvironment [OptionSpecification] ueOptionsToRemove = lens _ueOptionsToRemove (\ s a -> s{_ueOptionsToRemove = a}) . _Default . _Coerce; -- | If specified, AWS Elastic Beanstalk updates the configuration set -- associated with the running environment and sets the specified -- configuration options to the requested value. ueOptionSettings :: Lens' UpdateEnvironment [ConfigurationOptionSetting] ueOptionSettings = lens _ueOptionSettings (\ s a -> s{_ueOptionSettings = a}) . _Default . _Coerce; -- | If this parameter is specified, AWS Elastic Beanstalk deploys the named -- application version to the environment. If no such application version -- is found, returns an 'InvalidParameterValue' error. ueVersionLabel :: Lens' UpdateEnvironment (Maybe Text) ueVersionLabel = lens _ueVersionLabel (\ s a -> s{_ueVersionLabel = a}); -- | This specifies the tier to use to update the environment. -- -- Condition: At this time, if you change the tier version, name, or type, -- AWS Elastic Beanstalk returns 'InvalidParameterValue' error. ueTier :: Lens' UpdateEnvironment (Maybe EnvironmentTier) ueTier = lens _ueTier (\ s a -> s{_ueTier = a}); -- | The name of the environment to update. If no environment with this name -- exists, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error. -- -- Condition: You must specify either this or an EnvironmentId, or both. If -- you do not specify either, AWS Elastic Beanstalk returns -- 'MissingRequiredParameter' error. ueEnvironmentName :: Lens' UpdateEnvironment (Maybe Text) ueEnvironmentName = lens _ueEnvironmentName (\ s a -> s{_ueEnvironmentName = a}); -- | The name of the application with which the environment is associated. ueApplicationName :: Lens' UpdateEnvironment (Maybe Text) ueApplicationName = lens _ueApplicationName (\ s a -> s{_ueApplicationName = a}); -- | This specifies the platform version that the environment will run after -- the environment is updated. ueSolutionStackName :: Lens' UpdateEnvironment (Maybe Text) ueSolutionStackName = lens _ueSolutionStackName (\ s a -> s{_ueSolutionStackName = a}); -- | The ID of the environment to update. -- -- If no environment with this ID exists, AWS Elastic Beanstalk returns an -- 'InvalidParameterValue' error. -- -- Condition: You must specify either this or an EnvironmentName, or both. -- If you do not specify either, AWS Elastic Beanstalk returns -- 'MissingRequiredParameter' error. ueEnvironmentId :: Lens' UpdateEnvironment (Maybe Text) ueEnvironmentId = lens _ueEnvironmentId (\ s a -> s{_ueEnvironmentId = a}); -- | The name of the group to which the target environment belongs. Specify a -- group name only if the environment\'s name is specified in an -- environment manifest and not with the environment name or environment ID -- parameters. See -- -- for details. ueGroupName :: Lens' UpdateEnvironment (Maybe Text) ueGroupName = lens _ueGroupName (\ s a -> s{_ueGroupName = a}); -- | If this parameter is specified, AWS Elastic Beanstalk updates the -- description of this environment. ueDescription :: Lens' UpdateEnvironment (Maybe Text) ueDescription = lens _ueDescription (\ s a -> s{_ueDescription = a}); instance AWSRequest UpdateEnvironment where type Rs UpdateEnvironment = EnvironmentDescription request = postQuery elasticBeanstalk response = receiveXMLWrapper "UpdateEnvironmentResult" (\ s h x -> parseXML x) instance Hashable UpdateEnvironment instance ToHeaders UpdateEnvironment where toHeaders = const mempty instance ToPath UpdateEnvironment where toPath = const "/" instance ToQuery UpdateEnvironment where toQuery UpdateEnvironment'{..} = mconcat ["Action" =: ("UpdateEnvironment" :: ByteString), "Version" =: ("2010-12-01" :: ByteString), "TemplateName" =: _ueTemplateName, "OptionsToRemove" =: toQuery (toQueryList "member" <$> _ueOptionsToRemove), "OptionSettings" =: toQuery (toQueryList "member" <$> _ueOptionSettings), "VersionLabel" =: _ueVersionLabel, "Tier" =: _ueTier, "EnvironmentName" =: _ueEnvironmentName, "ApplicationName" =: _ueApplicationName, "SolutionStackName" =: _ueSolutionStackName, "EnvironmentId" =: _ueEnvironmentId, "GroupName" =: _ueGroupName, "Description" =: _ueDescription]