{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Lightsail.Types.InstanceAccessDetails where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types.HostKeyAttributes
import Amazonka.Lightsail.Types.InstanceAccessProtocol
import Amazonka.Lightsail.Types.PasswordData
import qualified Amazonka.Prelude as Prelude
data InstanceAccessDetails = InstanceAccessDetails'
{
InstanceAccessDetails -> Maybe Text
certKey :: Prelude.Maybe Prelude.Text,
InstanceAccessDetails -> Maybe POSIX
expiresAt :: Prelude.Maybe Data.POSIX,
InstanceAccessDetails -> Maybe [HostKeyAttributes]
hostKeys :: Prelude.Maybe [HostKeyAttributes],
InstanceAccessDetails -> Maybe Text
instanceName :: Prelude.Maybe Prelude.Text,
InstanceAccessDetails -> Maybe Text
ipAddress :: Prelude.Maybe Prelude.Text,
InstanceAccessDetails -> Maybe Text
password :: Prelude.Maybe Prelude.Text,
InstanceAccessDetails -> Maybe PasswordData
passwordData :: Prelude.Maybe PasswordData,
InstanceAccessDetails -> Maybe Text
privateKey :: Prelude.Maybe Prelude.Text,
InstanceAccessDetails -> Maybe InstanceAccessProtocol
protocol :: Prelude.Maybe InstanceAccessProtocol,
InstanceAccessDetails -> Maybe Text
username :: Prelude.Maybe Prelude.Text
}
deriving (InstanceAccessDetails -> InstanceAccessDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceAccessDetails -> InstanceAccessDetails -> Bool
$c/= :: InstanceAccessDetails -> InstanceAccessDetails -> Bool
== :: InstanceAccessDetails -> InstanceAccessDetails -> Bool
$c== :: InstanceAccessDetails -> InstanceAccessDetails -> Bool
Prelude.Eq, ReadPrec [InstanceAccessDetails]
ReadPrec InstanceAccessDetails
Int -> ReadS InstanceAccessDetails
ReadS [InstanceAccessDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceAccessDetails]
$creadListPrec :: ReadPrec [InstanceAccessDetails]
readPrec :: ReadPrec InstanceAccessDetails
$creadPrec :: ReadPrec InstanceAccessDetails
readList :: ReadS [InstanceAccessDetails]
$creadList :: ReadS [InstanceAccessDetails]
readsPrec :: Int -> ReadS InstanceAccessDetails
$creadsPrec :: Int -> ReadS InstanceAccessDetails
Prelude.Read, Int -> InstanceAccessDetails -> ShowS
[InstanceAccessDetails] -> ShowS
InstanceAccessDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceAccessDetails] -> ShowS
$cshowList :: [InstanceAccessDetails] -> ShowS
show :: InstanceAccessDetails -> String
$cshow :: InstanceAccessDetails -> String
showsPrec :: Int -> InstanceAccessDetails -> ShowS
$cshowsPrec :: Int -> InstanceAccessDetails -> ShowS
Prelude.Show, forall x. Rep InstanceAccessDetails x -> InstanceAccessDetails
forall x. InstanceAccessDetails -> Rep InstanceAccessDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstanceAccessDetails x -> InstanceAccessDetails
$cfrom :: forall x. InstanceAccessDetails -> Rep InstanceAccessDetails x
Prelude.Generic)
newInstanceAccessDetails ::
InstanceAccessDetails
newInstanceAccessDetails :: InstanceAccessDetails
newInstanceAccessDetails =
InstanceAccessDetails'
{ $sel:certKey:InstanceAccessDetails' :: Maybe Text
certKey = forall a. Maybe a
Prelude.Nothing,
$sel:expiresAt:InstanceAccessDetails' :: Maybe POSIX
expiresAt = forall a. Maybe a
Prelude.Nothing,
$sel:hostKeys:InstanceAccessDetails' :: Maybe [HostKeyAttributes]
hostKeys = forall a. Maybe a
Prelude.Nothing,
$sel:instanceName:InstanceAccessDetails' :: Maybe Text
instanceName = forall a. Maybe a
Prelude.Nothing,
$sel:ipAddress:InstanceAccessDetails' :: Maybe Text
ipAddress = forall a. Maybe a
Prelude.Nothing,
$sel:password:InstanceAccessDetails' :: Maybe Text
password = forall a. Maybe a
Prelude.Nothing,
$sel:passwordData:InstanceAccessDetails' :: Maybe PasswordData
passwordData = forall a. Maybe a
Prelude.Nothing,
$sel:privateKey:InstanceAccessDetails' :: Maybe Text
privateKey = forall a. Maybe a
Prelude.Nothing,
$sel:protocol:InstanceAccessDetails' :: Maybe InstanceAccessProtocol
protocol = forall a. Maybe a
Prelude.Nothing,
$sel:username:InstanceAccessDetails' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing
}
instanceAccessDetails_certKey :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_certKey :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_certKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
certKey :: Maybe Text
$sel:certKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
certKey} -> Maybe Text
certKey) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:certKey:InstanceAccessDetails' :: Maybe Text
certKey = Maybe Text
a} :: InstanceAccessDetails)
instanceAccessDetails_expiresAt :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.UTCTime)
instanceAccessDetails_expiresAt :: Lens' InstanceAccessDetails (Maybe UTCTime)
instanceAccessDetails_expiresAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe POSIX
expiresAt :: Maybe POSIX
$sel:expiresAt:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe POSIX
expiresAt} -> Maybe POSIX
expiresAt) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe POSIX
a -> InstanceAccessDetails
s {$sel:expiresAt:InstanceAccessDetails' :: Maybe POSIX
expiresAt = Maybe POSIX
a} :: InstanceAccessDetails) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
instanceAccessDetails_hostKeys :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe [HostKeyAttributes])
instanceAccessDetails_hostKeys :: Lens' InstanceAccessDetails (Maybe [HostKeyAttributes])
instanceAccessDetails_hostKeys = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe [HostKeyAttributes]
hostKeys :: Maybe [HostKeyAttributes]
$sel:hostKeys:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe [HostKeyAttributes]
hostKeys} -> Maybe [HostKeyAttributes]
hostKeys) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe [HostKeyAttributes]
a -> InstanceAccessDetails
s {$sel:hostKeys:InstanceAccessDetails' :: Maybe [HostKeyAttributes]
hostKeys = Maybe [HostKeyAttributes]
a} :: InstanceAccessDetails) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instanceAccessDetails_instanceName :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_instanceName :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_instanceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
instanceName :: Maybe Text
$sel:instanceName:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
instanceName} -> Maybe Text
instanceName) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:instanceName:InstanceAccessDetails' :: Maybe Text
instanceName = Maybe Text
a} :: InstanceAccessDetails)
instanceAccessDetails_ipAddress :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_ipAddress :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_ipAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
ipAddress :: Maybe Text
$sel:ipAddress:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
ipAddress} -> Maybe Text
ipAddress) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:ipAddress:InstanceAccessDetails' :: Maybe Text
ipAddress = Maybe Text
a} :: InstanceAccessDetails)
instanceAccessDetails_password :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_password :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_password = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
password :: Maybe Text
$sel:password:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
password} -> Maybe Text
password) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:password:InstanceAccessDetails' :: Maybe Text
password = Maybe Text
a} :: InstanceAccessDetails)
instanceAccessDetails_passwordData :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe PasswordData)
instanceAccessDetails_passwordData :: Lens' InstanceAccessDetails (Maybe PasswordData)
instanceAccessDetails_passwordData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe PasswordData
passwordData :: Maybe PasswordData
$sel:passwordData:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe PasswordData
passwordData} -> Maybe PasswordData
passwordData) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe PasswordData
a -> InstanceAccessDetails
s {$sel:passwordData:InstanceAccessDetails' :: Maybe PasswordData
passwordData = Maybe PasswordData
a} :: InstanceAccessDetails)
instanceAccessDetails_privateKey :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_privateKey :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_privateKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
privateKey :: Maybe Text
$sel:privateKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
privateKey} -> Maybe Text
privateKey) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:privateKey:InstanceAccessDetails' :: Maybe Text
privateKey = Maybe Text
a} :: InstanceAccessDetails)
instanceAccessDetails_protocol :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe InstanceAccessProtocol)
instanceAccessDetails_protocol :: Lens' InstanceAccessDetails (Maybe InstanceAccessProtocol)
instanceAccessDetails_protocol = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe InstanceAccessProtocol
protocol :: Maybe InstanceAccessProtocol
$sel:protocol:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe InstanceAccessProtocol
protocol} -> Maybe InstanceAccessProtocol
protocol) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe InstanceAccessProtocol
a -> InstanceAccessDetails
s {$sel:protocol:InstanceAccessDetails' :: Maybe InstanceAccessProtocol
protocol = Maybe InstanceAccessProtocol
a} :: InstanceAccessDetails)
instanceAccessDetails_username :: Lens.Lens' InstanceAccessDetails (Prelude.Maybe Prelude.Text)
instanceAccessDetails_username :: Lens' InstanceAccessDetails (Maybe Text)
instanceAccessDetails_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceAccessDetails' {Maybe Text
username :: Maybe Text
$sel:username:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
username} -> Maybe Text
username) (\s :: InstanceAccessDetails
s@InstanceAccessDetails' {} Maybe Text
a -> InstanceAccessDetails
s {$sel:username:InstanceAccessDetails' :: Maybe Text
username = Maybe Text
a} :: InstanceAccessDetails)
instance Data.FromJSON InstanceAccessDetails where
parseJSON :: Value -> Parser InstanceAccessDetails
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"InstanceAccessDetails"
( \Object
x ->
Maybe Text
-> Maybe POSIX
-> Maybe [HostKeyAttributes]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PasswordData
-> Maybe Text
-> Maybe InstanceAccessProtocol
-> Maybe Text
-> InstanceAccessDetails
InstanceAccessDetails'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"certKey")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"expiresAt")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"hostKeys" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"instanceName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ipAddress")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"password")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"passwordData")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"privateKey")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"protocol")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"username")
)
instance Prelude.Hashable InstanceAccessDetails where
hashWithSalt :: Int -> InstanceAccessDetails -> Int
hashWithSalt Int
_salt InstanceAccessDetails' {Maybe [HostKeyAttributes]
Maybe Text
Maybe POSIX
Maybe InstanceAccessProtocol
Maybe PasswordData
username :: Maybe Text
protocol :: Maybe InstanceAccessProtocol
privateKey :: Maybe Text
passwordData :: Maybe PasswordData
password :: Maybe Text
ipAddress :: Maybe Text
instanceName :: Maybe Text
hostKeys :: Maybe [HostKeyAttributes]
expiresAt :: Maybe POSIX
certKey :: Maybe Text
$sel:username:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:protocol:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe InstanceAccessProtocol
$sel:privateKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:passwordData:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe PasswordData
$sel:password:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:ipAddress:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:instanceName:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:hostKeys:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe [HostKeyAttributes]
$sel:expiresAt:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe POSIX
$sel:certKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certKey
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
expiresAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [HostKeyAttributes]
hostKeys
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
instanceName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ipAddress
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
password
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PasswordData
passwordData
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
privateKey
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceAccessProtocol
protocol
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username
instance Prelude.NFData InstanceAccessDetails where
rnf :: InstanceAccessDetails -> ()
rnf InstanceAccessDetails' {Maybe [HostKeyAttributes]
Maybe Text
Maybe POSIX
Maybe InstanceAccessProtocol
Maybe PasswordData
username :: Maybe Text
protocol :: Maybe InstanceAccessProtocol
privateKey :: Maybe Text
passwordData :: Maybe PasswordData
password :: Maybe Text
ipAddress :: Maybe Text
instanceName :: Maybe Text
hostKeys :: Maybe [HostKeyAttributes]
expiresAt :: Maybe POSIX
certKey :: Maybe Text
$sel:username:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:protocol:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe InstanceAccessProtocol
$sel:privateKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:passwordData:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe PasswordData
$sel:password:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:ipAddress:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:instanceName:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
$sel:hostKeys:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe [HostKeyAttributes]
$sel:expiresAt:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe POSIX
$sel:certKey:InstanceAccessDetails' :: InstanceAccessDetails -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certKey
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
expiresAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [HostKeyAttributes]
hostKeys
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
instanceName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ipAddress
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
password
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PasswordData
passwordData
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
privateKey
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceAccessProtocol
protocol
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
username