{-# 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 NFData 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]