{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.OSLogin.Types.Product where
import Network.Google.OSLogin.Types.Sum
import Network.Google.Prelude
newtype LoginProFileSSHPublicKeys = LoginProFileSSHPublicKeys'
{ _lpfspkAddtional :: HashMap Text SSHPublicKey
} deriving (Eq,Show,Data,Typeable,Generic)
loginProFileSSHPublicKeys
:: HashMap Text SSHPublicKey
-> LoginProFileSSHPublicKeys
loginProFileSSHPublicKeys pLpfspkAddtional_ =
LoginProFileSSHPublicKeys'
{ _lpfspkAddtional = _Coerce # pLpfspkAddtional_
}
lpfspkAddtional :: Lens' LoginProFileSSHPublicKeys (HashMap Text SSHPublicKey)
lpfspkAddtional
= lens _lpfspkAddtional
(\ s a -> s{_lpfspkAddtional = a})
. _Coerce
instance FromJSON LoginProFileSSHPublicKeys where
parseJSON
= withObject "LoginProFileSSHPublicKeys"
(\ o ->
LoginProFileSSHPublicKeys' <$> (parseJSONObject o))
instance ToJSON LoginProFileSSHPublicKeys where
toJSON = toJSON . _lpfspkAddtional
data Empty =
Empty'
deriving (Eq,Show,Data,Typeable,Generic)
empty
:: Empty
empty = Empty'
instance FromJSON Empty where
parseJSON = withObject "Empty" (\ o -> pure Empty')
instance ToJSON Empty where
toJSON = const emptyObject
data LoginProFile = LoginProFile'
{ _lpfPosixAccounts :: !(Maybe [PosixAccount])
, _lpfSSHPublicKeys :: !(Maybe LoginProFileSSHPublicKeys)
, _lpfName :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
loginProFile
:: LoginProFile
loginProFile =
LoginProFile'
{ _lpfPosixAccounts = Nothing
, _lpfSSHPublicKeys = Nothing
, _lpfName = Nothing
}
lpfPosixAccounts :: Lens' LoginProFile [PosixAccount]
lpfPosixAccounts
= lens _lpfPosixAccounts
(\ s a -> s{_lpfPosixAccounts = a})
. _Default
. _Coerce
lpfSSHPublicKeys :: Lens' LoginProFile (Maybe LoginProFileSSHPublicKeys)
lpfSSHPublicKeys
= lens _lpfSSHPublicKeys
(\ s a -> s{_lpfSSHPublicKeys = a})
lpfName :: Lens' LoginProFile (Maybe Text)
lpfName = lens _lpfName (\ s a -> s{_lpfName = a})
instance FromJSON LoginProFile where
parseJSON
= withObject "LoginProFile"
(\ o ->
LoginProFile' <$>
(o .:? "posixAccounts" .!= mempty) <*>
(o .:? "sshPublicKeys")
<*> (o .:? "name"))
instance ToJSON LoginProFile where
toJSON LoginProFile'{..}
= object
(catMaybes
[("posixAccounts" .=) <$> _lpfPosixAccounts,
("sshPublicKeys" .=) <$> _lpfSSHPublicKeys,
("name" .=) <$> _lpfName])
newtype ImportSSHPublicKeyResponse = ImportSSHPublicKeyResponse'
{ _ispkrLoginProFile :: Maybe LoginProFile
} deriving (Eq,Show,Data,Typeable,Generic)
importSSHPublicKeyResponse
:: ImportSSHPublicKeyResponse
importSSHPublicKeyResponse =
ImportSSHPublicKeyResponse'
{ _ispkrLoginProFile = Nothing
}
ispkrLoginProFile :: Lens' ImportSSHPublicKeyResponse (Maybe LoginProFile)
ispkrLoginProFile
= lens _ispkrLoginProFile
(\ s a -> s{_ispkrLoginProFile = a})
instance FromJSON ImportSSHPublicKeyResponse where
parseJSON
= withObject "ImportSSHPublicKeyResponse"
(\ o ->
ImportSSHPublicKeyResponse' <$>
(o .:? "loginProfile"))
instance ToJSON ImportSSHPublicKeyResponse where
toJSON ImportSSHPublicKeyResponse'{..}
= object
(catMaybes
[("loginProfile" .=) <$> _ispkrLoginProFile])
data SSHPublicKey = SSHPublicKey'
{ _spkFingerprint :: !(Maybe Text)
, _spkKey :: !(Maybe Text)
, _spkExpirationTimeUsec :: !(Maybe (Textual Int64))
} deriving (Eq,Show,Data,Typeable,Generic)
sshPublicKey
:: SSHPublicKey
sshPublicKey =
SSHPublicKey'
{ _spkFingerprint = Nothing
, _spkKey = Nothing
, _spkExpirationTimeUsec = Nothing
}
spkFingerprint :: Lens' SSHPublicKey (Maybe Text)
spkFingerprint
= lens _spkFingerprint
(\ s a -> s{_spkFingerprint = a})
spkKey :: Lens' SSHPublicKey (Maybe Text)
spkKey = lens _spkKey (\ s a -> s{_spkKey = a})
spkExpirationTimeUsec :: Lens' SSHPublicKey (Maybe Int64)
spkExpirationTimeUsec
= lens _spkExpirationTimeUsec
(\ s a -> s{_spkExpirationTimeUsec = a})
. mapping _Coerce
instance FromJSON SSHPublicKey where
parseJSON
= withObject "SSHPublicKey"
(\ o ->
SSHPublicKey' <$>
(o .:? "fingerprint") <*> (o .:? "key") <*>
(o .:? "expirationTimeUsec"))
instance ToJSON SSHPublicKey where
toJSON SSHPublicKey'{..}
= object
(catMaybes
[("fingerprint" .=) <$> _spkFingerprint,
("key" .=) <$> _spkKey,
("expirationTimeUsec" .=) <$>
_spkExpirationTimeUsec])
data PosixAccount = PosixAccount'
{ _paGecos :: !(Maybe Text)
, _paUid :: !(Maybe (Textual Int64))
, _paUsername :: !(Maybe Text)
, _paShell :: !(Maybe Text)
, _paPrimary :: !(Maybe Bool)
, _paAccountId :: !(Maybe Text)
, _paGid :: !(Maybe (Textual Int64))
, _paOperatingSystemType :: !(Maybe PosixAccountOperatingSystemType)
, _paSystemId :: !(Maybe Text)
, _paHomeDirectory :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
posixAccount
:: PosixAccount
posixAccount =
PosixAccount'
{ _paGecos = Nothing
, _paUid = Nothing
, _paUsername = Nothing
, _paShell = Nothing
, _paPrimary = Nothing
, _paAccountId = Nothing
, _paGid = Nothing
, _paOperatingSystemType = Nothing
, _paSystemId = Nothing
, _paHomeDirectory = Nothing
}
paGecos :: Lens' PosixAccount (Maybe Text)
paGecos = lens _paGecos (\ s a -> s{_paGecos = a})
paUid :: Lens' PosixAccount (Maybe Int64)
paUid
= lens _paUid (\ s a -> s{_paUid = a}) .
mapping _Coerce
paUsername :: Lens' PosixAccount (Maybe Text)
paUsername
= lens _paUsername (\ s a -> s{_paUsername = a})
paShell :: Lens' PosixAccount (Maybe Text)
paShell = lens _paShell (\ s a -> s{_paShell = a})
paPrimary :: Lens' PosixAccount (Maybe Bool)
paPrimary
= lens _paPrimary (\ s a -> s{_paPrimary = a})
paAccountId :: Lens' PosixAccount (Maybe Text)
paAccountId
= lens _paAccountId (\ s a -> s{_paAccountId = a})
paGid :: Lens' PosixAccount (Maybe Int64)
paGid
= lens _paGid (\ s a -> s{_paGid = a}) .
mapping _Coerce
paOperatingSystemType :: Lens' PosixAccount (Maybe PosixAccountOperatingSystemType)
paOperatingSystemType
= lens _paOperatingSystemType
(\ s a -> s{_paOperatingSystemType = a})
paSystemId :: Lens' PosixAccount (Maybe Text)
paSystemId
= lens _paSystemId (\ s a -> s{_paSystemId = a})
paHomeDirectory :: Lens' PosixAccount (Maybe Text)
paHomeDirectory
= lens _paHomeDirectory
(\ s a -> s{_paHomeDirectory = a})
instance FromJSON PosixAccount where
parseJSON
= withObject "PosixAccount"
(\ o ->
PosixAccount' <$>
(o .:? "gecos") <*> (o .:? "uid") <*>
(o .:? "username")
<*> (o .:? "shell")
<*> (o .:? "primary")
<*> (o .:? "accountId")
<*> (o .:? "gid")
<*> (o .:? "operatingSystemType")
<*> (o .:? "systemId")
<*> (o .:? "homeDirectory"))
instance ToJSON PosixAccount where
toJSON PosixAccount'{..}
= object
(catMaybes
[("gecos" .=) <$> _paGecos, ("uid" .=) <$> _paUid,
("username" .=) <$> _paUsername,
("shell" .=) <$> _paShell,
("primary" .=) <$> _paPrimary,
("accountId" .=) <$> _paAccountId,
("gid" .=) <$> _paGid,
("operatingSystemType" .=) <$>
_paOperatingSystemType,
("systemId" .=) <$> _paSystemId,
("homeDirectory" .=) <$> _paHomeDirectory])