{-# 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.CreateApplicationVersion -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates an application version for the specified application. -- -- Once you create an application version with a specified Amazon S3 bucket -- and key location, you cannot change that Amazon S3 location. If you -- change the Amazon S3 location, you receive an exception when you attempt -- to launch an environment from the application version. module Network.AWS.ElasticBeanstalk.CreateApplicationVersion ( -- * Creating a Request createApplicationVersion , CreateApplicationVersion -- * Request Lenses , cavProcess , cavSourceBundle , cavAutoCreateApplication , cavDescription , cavApplicationName , cavVersionLabel -- * Destructuring the Response , applicationVersionDescriptionMessage , ApplicationVersionDescriptionMessage -- * Response Lenses , avdmApplicationVersion ) 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:/ 'createApplicationVersion' smart constructor. data CreateApplicationVersion = CreateApplicationVersion' { _cavProcess :: !(Maybe Bool) , _cavSourceBundle :: !(Maybe S3Location) , _cavAutoCreateApplication :: !(Maybe Bool) , _cavDescription :: !(Maybe Text) , _cavApplicationName :: !Text , _cavVersionLabel :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'CreateApplicationVersion' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cavProcess' -- -- * 'cavSourceBundle' -- -- * 'cavAutoCreateApplication' -- -- * 'cavDescription' -- -- * 'cavApplicationName' -- -- * 'cavVersionLabel' createApplicationVersion :: Text -- ^ 'cavApplicationName' -> Text -- ^ 'cavVersionLabel' -> CreateApplicationVersion createApplicationVersion pApplicationName_ pVersionLabel_ = CreateApplicationVersion' { _cavProcess = Nothing , _cavSourceBundle = Nothing , _cavAutoCreateApplication = Nothing , _cavDescription = Nothing , _cavApplicationName = pApplicationName_ , _cavVersionLabel = pVersionLabel_ } -- | Preprocesses and validates the environment manifest and configuration -- files in the source bundle. Validating configuration files can identify -- issues prior to deploying the application version to an environment. cavProcess :: Lens' CreateApplicationVersion (Maybe Bool) cavProcess = lens _cavProcess (\ s a -> s{_cavProcess = a}); -- | The Amazon S3 bucket and key that identify the location of the source -- bundle for this version. -- -- If data found at the Amazon S3 location exceeds the maximum allowed -- source bundle size, AWS Elastic Beanstalk returns an -- 'InvalidParameterValue' error. The maximum size allowed is 512 MB. -- -- Default: If not specified, AWS Elastic Beanstalk uses a sample -- application. If only partially specified (for example, a bucket is -- provided but not the key) or if no data is found at the Amazon S3 -- location, AWS Elastic Beanstalk returns an 'InvalidParameterCombination' -- error. cavSourceBundle :: Lens' CreateApplicationVersion (Maybe S3Location) cavSourceBundle = lens _cavSourceBundle (\ s a -> s{_cavSourceBundle = a}); -- | Determines how the system behaves if the specified application for this -- version does not already exist: -- -- - 'true' : Automatically creates the specified application for this -- release if it does not already exist. -- - 'false' : Throws an 'InvalidParameterValue' if the specified -- application for this release does not already exist. -- -- Default: 'false' -- -- Valid Values: 'true' | 'false' cavAutoCreateApplication :: Lens' CreateApplicationVersion (Maybe Bool) cavAutoCreateApplication = lens _cavAutoCreateApplication (\ s a -> s{_cavAutoCreateApplication = a}); -- | Describes this version. cavDescription :: Lens' CreateApplicationVersion (Maybe Text) cavDescription = lens _cavDescription (\ s a -> s{_cavDescription = a}); -- | The name of the application. If no application is found with this name, -- and 'AutoCreateApplication' is 'false', returns an -- 'InvalidParameterValue' error. cavApplicationName :: Lens' CreateApplicationVersion Text cavApplicationName = lens _cavApplicationName (\ s a -> s{_cavApplicationName = a}); -- | A label identifying this version. -- -- Constraint: Must be unique per application. If an application version -- already exists with this label for the specified application, AWS -- Elastic Beanstalk returns an 'InvalidParameterValue' error. cavVersionLabel :: Lens' CreateApplicationVersion Text cavVersionLabel = lens _cavVersionLabel (\ s a -> s{_cavVersionLabel = a}); instance AWSRequest CreateApplicationVersion where type Rs CreateApplicationVersion = ApplicationVersionDescriptionMessage request = postQuery elasticBeanstalk response = receiveXMLWrapper "CreateApplicationVersionResult" (\ s h x -> parseXML x) instance Hashable CreateApplicationVersion instance ToHeaders CreateApplicationVersion where toHeaders = const mempty instance ToPath CreateApplicationVersion where toPath = const "/" instance ToQuery CreateApplicationVersion where toQuery CreateApplicationVersion'{..} = mconcat ["Action" =: ("CreateApplicationVersion" :: ByteString), "Version" =: ("2010-12-01" :: ByteString), "Process" =: _cavProcess, "SourceBundle" =: _cavSourceBundle, "AutoCreateApplication" =: _cavAutoCreateApplication, "Description" =: _cavDescription, "ApplicationName" =: _cavApplicationName, "VersionLabel" =: _cavVersionLabel]