{-# 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.CreateDirectoryConfig
(
createDirectoryConfig
, CreateDirectoryConfig
, cdcDirectoryName
, cdcOrganizationalUnitDistinguishedNames
, cdcServiceAccountCredentials
, createDirectoryConfigResponse
, CreateDirectoryConfigResponse
, cdcrsDirectoryConfig
, cdcrsResponseStatus
) 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 CreateDirectoryConfig = CreateDirectoryConfig'
{ _cdcDirectoryName :: !Text
, _cdcOrganizationalUnitDistinguishedNames :: ![Text]
, _cdcServiceAccountCredentials :: !ServiceAccountCredentials
} deriving (Eq, Show, Data, Typeable, Generic)
createDirectoryConfig
:: Text
-> ServiceAccountCredentials
-> CreateDirectoryConfig
createDirectoryConfig pDirectoryName_ pServiceAccountCredentials_ =
CreateDirectoryConfig'
{ _cdcDirectoryName = pDirectoryName_
, _cdcOrganizationalUnitDistinguishedNames = mempty
, _cdcServiceAccountCredentials = pServiceAccountCredentials_
}
cdcDirectoryName :: Lens' CreateDirectoryConfig Text
cdcDirectoryName = lens _cdcDirectoryName (\ s a -> s{_cdcDirectoryName = a})
cdcOrganizationalUnitDistinguishedNames :: Lens' CreateDirectoryConfig [Text]
cdcOrganizationalUnitDistinguishedNames = lens _cdcOrganizationalUnitDistinguishedNames (\ s a -> s{_cdcOrganizationalUnitDistinguishedNames = a}) . _Coerce
cdcServiceAccountCredentials :: Lens' CreateDirectoryConfig ServiceAccountCredentials
cdcServiceAccountCredentials = lens _cdcServiceAccountCredentials (\ s a -> s{_cdcServiceAccountCredentials = a})
instance AWSRequest CreateDirectoryConfig where
type Rs CreateDirectoryConfig =
CreateDirectoryConfigResponse
request = postJSON appStream
response
= receiveJSON
(\ s h x ->
CreateDirectoryConfigResponse' <$>
(x .?> "DirectoryConfig") <*> (pure (fromEnum s)))
instance Hashable CreateDirectoryConfig where
instance NFData CreateDirectoryConfig where
instance ToHeaders CreateDirectoryConfig where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("PhotonAdminProxyService.CreateDirectoryConfig" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateDirectoryConfig where
toJSON CreateDirectoryConfig'{..}
= object
(catMaybes
[Just ("DirectoryName" .= _cdcDirectoryName),
Just
("OrganizationalUnitDistinguishedNames" .=
_cdcOrganizationalUnitDistinguishedNames),
Just
("ServiceAccountCredentials" .=
_cdcServiceAccountCredentials)])
instance ToPath CreateDirectoryConfig where
toPath = const "/"
instance ToQuery CreateDirectoryConfig where
toQuery = const mempty
data CreateDirectoryConfigResponse = CreateDirectoryConfigResponse'
{ _cdcrsDirectoryConfig :: !(Maybe DirectoryConfig)
, _cdcrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
createDirectoryConfigResponse
:: Int
-> CreateDirectoryConfigResponse
createDirectoryConfigResponse pResponseStatus_ =
CreateDirectoryConfigResponse'
{_cdcrsDirectoryConfig = Nothing, _cdcrsResponseStatus = pResponseStatus_}
cdcrsDirectoryConfig :: Lens' CreateDirectoryConfigResponse (Maybe DirectoryConfig)
cdcrsDirectoryConfig = lens _cdcrsDirectoryConfig (\ s a -> s{_cdcrsDirectoryConfig = a})
cdcrsResponseStatus :: Lens' CreateDirectoryConfigResponse Int
cdcrsResponseStatus = lens _cdcrsResponseStatus (\ s a -> s{_cdcrsResponseStatus = a})
instance NFData CreateDirectoryConfigResponse where