{-# 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 #-}
module Network.AWS.AppStream.CreateImageBuilder
(
createImageBuilder
, CreateImageBuilder
, cibDomainJoinInfo
, cibVPCConfig
, cibDisplayName
, cibEnableDefaultInternetAccess
, cibDescription
, cibAppstreamAgentVersion
, cibName
, cibImageName
, cibInstanceType
, createImageBuilderResponse
, CreateImageBuilderResponse
, cibrsImageBuilder
, cibrsResponseStatus
) where
import Network.AWS.AppStream.Types
import Network.AWS.AppStream.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateImageBuilder = CreateImageBuilder'
{ _cibDomainJoinInfo :: !(Maybe DomainJoinInfo)
, _cibVPCConfig :: !(Maybe VPCConfig)
, _cibDisplayName :: !(Maybe Text)
, _cibEnableDefaultInternetAccess :: !(Maybe Bool)
, _cibDescription :: !(Maybe Text)
, _cibAppstreamAgentVersion :: !(Maybe Text)
, _cibName :: !Text
, _cibImageName :: !Text
, _cibInstanceType :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createImageBuilder
:: Text
-> Text
-> Text
-> CreateImageBuilder
createImageBuilder pName_ pImageName_ pInstanceType_ =
CreateImageBuilder'
{ _cibDomainJoinInfo = Nothing
, _cibVPCConfig = Nothing
, _cibDisplayName = Nothing
, _cibEnableDefaultInternetAccess = Nothing
, _cibDescription = Nothing
, _cibAppstreamAgentVersion = Nothing
, _cibName = pName_
, _cibImageName = pImageName_
, _cibInstanceType = pInstanceType_
}
cibDomainJoinInfo :: Lens' CreateImageBuilder (Maybe DomainJoinInfo)
cibDomainJoinInfo = lens _cibDomainJoinInfo (\ s a -> s{_cibDomainJoinInfo = a})
cibVPCConfig :: Lens' CreateImageBuilder (Maybe VPCConfig)
cibVPCConfig = lens _cibVPCConfig (\ s a -> s{_cibVPCConfig = a})
cibDisplayName :: Lens' CreateImageBuilder (Maybe Text)
cibDisplayName = lens _cibDisplayName (\ s a -> s{_cibDisplayName = a})
cibEnableDefaultInternetAccess :: Lens' CreateImageBuilder (Maybe Bool)
cibEnableDefaultInternetAccess = lens _cibEnableDefaultInternetAccess (\ s a -> s{_cibEnableDefaultInternetAccess = a})
cibDescription :: Lens' CreateImageBuilder (Maybe Text)
cibDescription = lens _cibDescription (\ s a -> s{_cibDescription = a})
cibAppstreamAgentVersion :: Lens' CreateImageBuilder (Maybe Text)
cibAppstreamAgentVersion = lens _cibAppstreamAgentVersion (\ s a -> s{_cibAppstreamAgentVersion = a})
cibName :: Lens' CreateImageBuilder Text
cibName = lens _cibName (\ s a -> s{_cibName = a})
cibImageName :: Lens' CreateImageBuilder Text
cibImageName = lens _cibImageName (\ s a -> s{_cibImageName = a})
cibInstanceType :: Lens' CreateImageBuilder Text
cibInstanceType = lens _cibInstanceType (\ s a -> s{_cibInstanceType = a})
instance AWSRequest CreateImageBuilder where
type Rs CreateImageBuilder =
CreateImageBuilderResponse
request = postJSON appStream
response
= receiveJSON
(\ s h x ->
CreateImageBuilderResponse' <$>
(x .?> "ImageBuilder") <*> (pure (fromEnum s)))
instance Hashable CreateImageBuilder where
instance NFData CreateImageBuilder where
instance ToHeaders CreateImageBuilder where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("PhotonAdminProxyService.CreateImageBuilder" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateImageBuilder where
toJSON CreateImageBuilder'{..}
= object
(catMaybes
[("DomainJoinInfo" .=) <$> _cibDomainJoinInfo,
("VpcConfig" .=) <$> _cibVPCConfig,
("DisplayName" .=) <$> _cibDisplayName,
("EnableDefaultInternetAccess" .=) <$>
_cibEnableDefaultInternetAccess,
("Description" .=) <$> _cibDescription,
("AppstreamAgentVersion" .=) <$>
_cibAppstreamAgentVersion,
Just ("Name" .= _cibName),
Just ("ImageName" .= _cibImageName),
Just ("InstanceType" .= _cibInstanceType)])
instance ToPath CreateImageBuilder where
toPath = const "/"
instance ToQuery CreateImageBuilder where
toQuery = const mempty
data CreateImageBuilderResponse = CreateImageBuilderResponse'
{ _cibrsImageBuilder :: !(Maybe ImageBuilder)
, _cibrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createImageBuilderResponse
:: Int
-> CreateImageBuilderResponse
createImageBuilderResponse pResponseStatus_ =
CreateImageBuilderResponse'
{_cibrsImageBuilder = Nothing, _cibrsResponseStatus = pResponseStatus_}
cibrsImageBuilder :: Lens' CreateImageBuilderResponse (Maybe ImageBuilder)
cibrsImageBuilder = lens _cibrsImageBuilder (\ s a -> s{_cibrsImageBuilder = a})
cibrsResponseStatus :: Lens' CreateImageBuilderResponse Int
cibrsResponseStatus = lens _cibrsResponseStatus (\ s a -> s{_cibrsResponseStatus = a})
instance NFData CreateImageBuilderResponse where