{-# 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.Transfer.Types.DescribedAccess where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.Transfer.Types.HomeDirectoryMapEntry
import Amazonka.Transfer.Types.HomeDirectoryType
import Amazonka.Transfer.Types.PosixProfile
data DescribedAccess = DescribedAccess'
{
DescribedAccess -> Maybe Text
externalId :: Prelude.Maybe Prelude.Text,
DescribedAccess -> Maybe Text
homeDirectory :: Prelude.Maybe Prelude.Text,
DescribedAccess -> Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings :: Prelude.Maybe (Prelude.NonEmpty HomeDirectoryMapEntry),
DescribedAccess -> Maybe HomeDirectoryType
homeDirectoryType :: Prelude.Maybe HomeDirectoryType,
DescribedAccess -> Maybe Text
policy :: Prelude.Maybe Prelude.Text,
DescribedAccess -> Maybe PosixProfile
posixProfile :: Prelude.Maybe PosixProfile,
DescribedAccess -> Maybe Text
role' :: Prelude.Maybe Prelude.Text
}
deriving (DescribedAccess -> DescribedAccess -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribedAccess -> DescribedAccess -> Bool
$c/= :: DescribedAccess -> DescribedAccess -> Bool
== :: DescribedAccess -> DescribedAccess -> Bool
$c== :: DescribedAccess -> DescribedAccess -> Bool
Prelude.Eq, ReadPrec [DescribedAccess]
ReadPrec DescribedAccess
Int -> ReadS DescribedAccess
ReadS [DescribedAccess]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribedAccess]
$creadListPrec :: ReadPrec [DescribedAccess]
readPrec :: ReadPrec DescribedAccess
$creadPrec :: ReadPrec DescribedAccess
readList :: ReadS [DescribedAccess]
$creadList :: ReadS [DescribedAccess]
readsPrec :: Int -> ReadS DescribedAccess
$creadsPrec :: Int -> ReadS DescribedAccess
Prelude.Read, Int -> DescribedAccess -> ShowS
[DescribedAccess] -> ShowS
DescribedAccess -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribedAccess] -> ShowS
$cshowList :: [DescribedAccess] -> ShowS
show :: DescribedAccess -> String
$cshow :: DescribedAccess -> String
showsPrec :: Int -> DescribedAccess -> ShowS
$cshowsPrec :: Int -> DescribedAccess -> ShowS
Prelude.Show, forall x. Rep DescribedAccess x -> DescribedAccess
forall x. DescribedAccess -> Rep DescribedAccess x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribedAccess x -> DescribedAccess
$cfrom :: forall x. DescribedAccess -> Rep DescribedAccess x
Prelude.Generic)
newDescribedAccess ::
DescribedAccess
newDescribedAccess :: DescribedAccess
newDescribedAccess =
DescribedAccess'
{ $sel:externalId:DescribedAccess' :: Maybe Text
externalId = forall a. Maybe a
Prelude.Nothing,
$sel:homeDirectory:DescribedAccess' :: Maybe Text
homeDirectory = forall a. Maybe a
Prelude.Nothing,
$sel:homeDirectoryMappings:DescribedAccess' :: Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings = forall a. Maybe a
Prelude.Nothing,
$sel:homeDirectoryType:DescribedAccess' :: Maybe HomeDirectoryType
homeDirectoryType = forall a. Maybe a
Prelude.Nothing,
$sel:policy:DescribedAccess' :: Maybe Text
policy = forall a. Maybe a
Prelude.Nothing,
$sel:posixProfile:DescribedAccess' :: Maybe PosixProfile
posixProfile = forall a. Maybe a
Prelude.Nothing,
$sel:role':DescribedAccess' :: Maybe Text
role' = forall a. Maybe a
Prelude.Nothing
}
describedAccess_externalId :: Lens.Lens' DescribedAccess (Prelude.Maybe Prelude.Text)
describedAccess_externalId :: Lens' DescribedAccess (Maybe Text)
describedAccess_externalId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe Text
externalId :: Maybe Text
$sel:externalId:DescribedAccess' :: DescribedAccess -> Maybe Text
externalId} -> Maybe Text
externalId) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe Text
a -> DescribedAccess
s {$sel:externalId:DescribedAccess' :: Maybe Text
externalId = Maybe Text
a} :: DescribedAccess)
describedAccess_homeDirectory :: Lens.Lens' DescribedAccess (Prelude.Maybe Prelude.Text)
describedAccess_homeDirectory :: Lens' DescribedAccess (Maybe Text)
describedAccess_homeDirectory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe Text
homeDirectory :: Maybe Text
$sel:homeDirectory:DescribedAccess' :: DescribedAccess -> Maybe Text
homeDirectory} -> Maybe Text
homeDirectory) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe Text
a -> DescribedAccess
s {$sel:homeDirectory:DescribedAccess' :: Maybe Text
homeDirectory = Maybe Text
a} :: DescribedAccess)
describedAccess_homeDirectoryMappings :: Lens.Lens' DescribedAccess (Prelude.Maybe (Prelude.NonEmpty HomeDirectoryMapEntry))
describedAccess_homeDirectoryMappings :: Lens' DescribedAccess (Maybe (NonEmpty HomeDirectoryMapEntry))
describedAccess_homeDirectoryMappings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings :: Maybe (NonEmpty HomeDirectoryMapEntry)
$sel:homeDirectoryMappings:DescribedAccess' :: DescribedAccess -> Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings} -> Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe (NonEmpty HomeDirectoryMapEntry)
a -> DescribedAccess
s {$sel:homeDirectoryMappings:DescribedAccess' :: Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings = Maybe (NonEmpty HomeDirectoryMapEntry)
a} :: DescribedAccess) 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
describedAccess_homeDirectoryType :: Lens.Lens' DescribedAccess (Prelude.Maybe HomeDirectoryType)
describedAccess_homeDirectoryType :: Lens' DescribedAccess (Maybe HomeDirectoryType)
describedAccess_homeDirectoryType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe HomeDirectoryType
homeDirectoryType :: Maybe HomeDirectoryType
$sel:homeDirectoryType:DescribedAccess' :: DescribedAccess -> Maybe HomeDirectoryType
homeDirectoryType} -> Maybe HomeDirectoryType
homeDirectoryType) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe HomeDirectoryType
a -> DescribedAccess
s {$sel:homeDirectoryType:DescribedAccess' :: Maybe HomeDirectoryType
homeDirectoryType = Maybe HomeDirectoryType
a} :: DescribedAccess)
describedAccess_policy :: Lens.Lens' DescribedAccess (Prelude.Maybe Prelude.Text)
describedAccess_policy :: Lens' DescribedAccess (Maybe Text)
describedAccess_policy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe Text
policy :: Maybe Text
$sel:policy:DescribedAccess' :: DescribedAccess -> Maybe Text
policy} -> Maybe Text
policy) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe Text
a -> DescribedAccess
s {$sel:policy:DescribedAccess' :: Maybe Text
policy = Maybe Text
a} :: DescribedAccess)
describedAccess_posixProfile :: Lens.Lens' DescribedAccess (Prelude.Maybe PosixProfile)
describedAccess_posixProfile :: Lens' DescribedAccess (Maybe PosixProfile)
describedAccess_posixProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe PosixProfile
posixProfile :: Maybe PosixProfile
$sel:posixProfile:DescribedAccess' :: DescribedAccess -> Maybe PosixProfile
posixProfile} -> Maybe PosixProfile
posixProfile) (\s :: DescribedAccess
s@DescribedAccess' {} Maybe PosixProfile
a -> DescribedAccess
s {$sel:posixProfile:DescribedAccess' :: Maybe PosixProfile
posixProfile = Maybe PosixProfile
a} :: DescribedAccess)
describedAccess_role :: Lens.Lens' DescribedAccess (Prelude.Maybe Prelude.Text)
describedAccess_role :: Lens' DescribedAccess (Maybe Text)
describedAccess_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribedAccess' {Maybe Text
role' :: Maybe Text
$sel:role':DescribedAccess' :: DescribedAccess -> Maybe Text
role'} -> Maybe Text
role') (\s :: DescribedAccess
s@DescribedAccess' {} Maybe Text
a -> DescribedAccess
s {$sel:role':DescribedAccess' :: Maybe Text
role' = Maybe Text
a} :: DescribedAccess)
instance Data.FromJSON DescribedAccess where
parseJSON :: Value -> Parser DescribedAccess
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DescribedAccess"
( \Object
x ->
Maybe Text
-> Maybe Text
-> Maybe (NonEmpty HomeDirectoryMapEntry)
-> Maybe HomeDirectoryType
-> Maybe Text
-> Maybe PosixProfile
-> Maybe Text
-> DescribedAccess
DescribedAccess'
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
"ExternalId")
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
"HomeDirectory")
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
"HomeDirectoryMappings")
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
"HomeDirectoryType")
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
"Policy")
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
"PosixProfile")
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
"Role")
)
instance Prelude.Hashable DescribedAccess where
hashWithSalt :: Int -> DescribedAccess -> Int
hashWithSalt Int
_salt DescribedAccess' {Maybe (NonEmpty HomeDirectoryMapEntry)
Maybe Text
Maybe HomeDirectoryType
Maybe PosixProfile
role' :: Maybe Text
posixProfile :: Maybe PosixProfile
policy :: Maybe Text
homeDirectoryType :: Maybe HomeDirectoryType
homeDirectoryMappings :: Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectory :: Maybe Text
externalId :: Maybe Text
$sel:role':DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:posixProfile:DescribedAccess' :: DescribedAccess -> Maybe PosixProfile
$sel:policy:DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:homeDirectoryType:DescribedAccess' :: DescribedAccess -> Maybe HomeDirectoryType
$sel:homeDirectoryMappings:DescribedAccess' :: DescribedAccess -> Maybe (NonEmpty HomeDirectoryMapEntry)
$sel:homeDirectory:DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:externalId:DescribedAccess' :: DescribedAccess -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
externalId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
homeDirectory
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HomeDirectoryType
homeDirectoryType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
policy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PosixProfile
posixProfile
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
role'
instance Prelude.NFData DescribedAccess where
rnf :: DescribedAccess -> ()
rnf DescribedAccess' {Maybe (NonEmpty HomeDirectoryMapEntry)
Maybe Text
Maybe HomeDirectoryType
Maybe PosixProfile
role' :: Maybe Text
posixProfile :: Maybe PosixProfile
policy :: Maybe Text
homeDirectoryType :: Maybe HomeDirectoryType
homeDirectoryMappings :: Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectory :: Maybe Text
externalId :: Maybe Text
$sel:role':DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:posixProfile:DescribedAccess' :: DescribedAccess -> Maybe PosixProfile
$sel:policy:DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:homeDirectoryType:DescribedAccess' :: DescribedAccess -> Maybe HomeDirectoryType
$sel:homeDirectoryMappings:DescribedAccess' :: DescribedAccess -> Maybe (NonEmpty HomeDirectoryMapEntry)
$sel:homeDirectory:DescribedAccess' :: DescribedAccess -> Maybe Text
$sel:externalId:DescribedAccess' :: DescribedAccess -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
externalId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
homeDirectory
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty HomeDirectoryMapEntry)
homeDirectoryMappings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HomeDirectoryType
homeDirectoryType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
policy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PosixProfile
posixProfile
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
role'