amazonka-elasticbeanstalk-1.4.3: gen/Network/AWS/ElasticBeanstalk/CreateApplicationVersion.hs
{-# 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 <brendan.g.hay@gmail.com>
-- 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]