{-# 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.OpsWorks.UpdateApp -- Copyright : (c) 2013-2014 Brendan Hay -- 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 -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Updates a specified app. -- -- Required Permissions: To use this action, an IAM user must have a Deploy or -- Manage permissions level for the stack, or an attached policy that explicitly -- grants permissions. For more information on user permissions, see . -- -- module Network.AWS.OpsWorks.UpdateApp ( -- * Request UpdateApp -- ** Request constructor , updateApp -- ** Request lenses , uaAppId , uaAppSource , uaAttributes , uaDataSources , uaDescription , uaDomains , uaEnableSsl , uaEnvironment , uaName , uaSslConfiguration , uaType -- * Response , UpdateAppResponse -- ** Response constructor , updateAppResponse ) where import Network.AWS.Prelude import Network.AWS.Request.JSON import Network.AWS.OpsWorks.Types import qualified GHC.Exts data UpdateApp = UpdateApp { _uaAppId :: Text , _uaAppSource :: Maybe Source , _uaAttributes :: Map AppAttributesKeys Text , _uaDataSources :: List "DataSources" DataSource , _uaDescription :: Maybe Text , _uaDomains :: List "Domains" Text , _uaEnableSsl :: Maybe Bool , _uaEnvironment :: List "Environment" EnvironmentVariable , _uaName :: Maybe Text , _uaSslConfiguration :: Maybe SslConfiguration , _uaType :: Maybe AppType } deriving (Eq, Show) -- | 'UpdateApp' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'uaAppId' @::@ 'Text' -- -- * 'uaAppSource' @::@ 'Maybe' 'Source' -- -- * 'uaAttributes' @::@ 'HashMap' 'AppAttributesKeys' 'Text' -- -- * 'uaDataSources' @::@ ['DataSource'] -- -- * 'uaDescription' @::@ 'Maybe' 'Text' -- -- * 'uaDomains' @::@ ['Text'] -- -- * 'uaEnableSsl' @::@ 'Maybe' 'Bool' -- -- * 'uaEnvironment' @::@ ['EnvironmentVariable'] -- -- * 'uaName' @::@ 'Maybe' 'Text' -- -- * 'uaSslConfiguration' @::@ 'Maybe' 'SslConfiguration' -- -- * 'uaType' @::@ 'Maybe' 'AppType' -- updateApp :: Text -- ^ 'uaAppId' -> UpdateApp updateApp p1 = UpdateApp { _uaAppId = p1 , _uaName = Nothing , _uaDescription = Nothing , _uaDataSources = mempty , _uaType = Nothing , _uaAppSource = Nothing , _uaDomains = mempty , _uaEnableSsl = Nothing , _uaSslConfiguration = Nothing , _uaAttributes = mempty , _uaEnvironment = mempty } -- | The app ID. uaAppId :: Lens' UpdateApp Text uaAppId = lens _uaAppId (\s a -> s { _uaAppId = a }) -- | A 'Source' object that specifies the app repository. uaAppSource :: Lens' UpdateApp (Maybe Source) uaAppSource = lens _uaAppSource (\s a -> s { _uaAppSource = a }) -- | One or more user-defined key/value pairs to be added to the stack attributes. uaAttributes :: Lens' UpdateApp (HashMap AppAttributesKeys Text) uaAttributes = lens _uaAttributes (\s a -> s { _uaAttributes = a }) . _Map -- | The app's data sources. uaDataSources :: Lens' UpdateApp [DataSource] uaDataSources = lens _uaDataSources (\s a -> s { _uaDataSources = a }) . _List -- | A description of the app. uaDescription :: Lens' UpdateApp (Maybe Text) uaDescription = lens _uaDescription (\s a -> s { _uaDescription = a }) -- | The app's virtual host settings, with multiple domains separated by commas. -- For example: ''www.example.com, example.com'' uaDomains :: Lens' UpdateApp [Text] uaDomains = lens _uaDomains (\s a -> s { _uaDomains = a }) . _List -- | Whether SSL is enabled for the app. uaEnableSsl :: Lens' UpdateApp (Maybe Bool) uaEnableSsl = lens _uaEnableSsl (\s a -> s { _uaEnableSsl = a }) -- | An array of 'EnvironmentVariable' objects that specify environment variables to -- be associated with the app. You can specify up to ten environment variables. -- After you deploy the app, these variables are defined on the associated app -- server instances. -- -- This parameter is supported only by Chef 11.10 stacks. If you have specified -- one or more environment variables, you cannot modify the stack's Chef version. uaEnvironment :: Lens' UpdateApp [EnvironmentVariable] uaEnvironment = lens _uaEnvironment (\s a -> s { _uaEnvironment = a }) . _List -- | The app name. uaName :: Lens' UpdateApp (Maybe Text) uaName = lens _uaName (\s a -> s { _uaName = a }) -- | An 'SslConfiguration' object with the SSL configuration. uaSslConfiguration :: Lens' UpdateApp (Maybe SslConfiguration) uaSslConfiguration = lens _uaSslConfiguration (\s a -> s { _uaSslConfiguration = a }) -- | The app type. uaType :: Lens' UpdateApp (Maybe AppType) uaType = lens _uaType (\s a -> s { _uaType = a }) data UpdateAppResponse = UpdateAppResponse deriving (Eq, Ord, Show, Generic) -- | 'UpdateAppResponse' constructor. updateAppResponse :: UpdateAppResponse updateAppResponse = UpdateAppResponse instance ToPath UpdateApp where toPath = const "/" instance ToQuery UpdateApp where toQuery = const mempty instance ToHeaders UpdateApp instance ToJSON UpdateApp where toJSON UpdateApp{..} = object [ "AppId" .= _uaAppId , "Name" .= _uaName , "Description" .= _uaDescription , "DataSources" .= _uaDataSources , "Type" .= _uaType , "AppSource" .= _uaAppSource , "Domains" .= _uaDomains , "EnableSsl" .= _uaEnableSsl , "SslConfiguration" .= _uaSslConfiguration , "Attributes" .= _uaAttributes , "Environment" .= _uaEnvironment ] instance AWSRequest UpdateApp where type Sv UpdateApp = OpsWorks type Rs UpdateApp = UpdateAppResponse request = post "UpdateApp" response = nullResponse UpdateAppResponse