{-# 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.Redshift.Types.EndpointAccess 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.Redshift.Internal
import Amazonka.Redshift.Types.VpcEndpoint
import Amazonka.Redshift.Types.VpcSecurityGroupMembership
data EndpointAccess = EndpointAccess'
{
EndpointAccess -> Maybe Text
address :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe Text
clusterIdentifier :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe ISO8601
endpointCreateTime :: Prelude.Maybe Data.ISO8601,
EndpointAccess -> Maybe Text
endpointName :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe Text
endpointStatus :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
EndpointAccess -> Maybe Text
resourceOwner :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe Text
subnetGroupName :: Prelude.Maybe Prelude.Text,
EndpointAccess -> Maybe VpcEndpoint
vpcEndpoint :: Prelude.Maybe VpcEndpoint,
EndpointAccess -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Prelude.Maybe [VpcSecurityGroupMembership]
}
deriving (EndpointAccess -> EndpointAccess -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EndpointAccess -> EndpointAccess -> Bool
$c/= :: EndpointAccess -> EndpointAccess -> Bool
== :: EndpointAccess -> EndpointAccess -> Bool
$c== :: EndpointAccess -> EndpointAccess -> Bool
Prelude.Eq, ReadPrec [EndpointAccess]
ReadPrec EndpointAccess
Int -> ReadS EndpointAccess
ReadS [EndpointAccess]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EndpointAccess]
$creadListPrec :: ReadPrec [EndpointAccess]
readPrec :: ReadPrec EndpointAccess
$creadPrec :: ReadPrec EndpointAccess
readList :: ReadS [EndpointAccess]
$creadList :: ReadS [EndpointAccess]
readsPrec :: Int -> ReadS EndpointAccess
$creadsPrec :: Int -> ReadS EndpointAccess
Prelude.Read, Int -> EndpointAccess -> ShowS
[EndpointAccess] -> ShowS
EndpointAccess -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EndpointAccess] -> ShowS
$cshowList :: [EndpointAccess] -> ShowS
show :: EndpointAccess -> String
$cshow :: EndpointAccess -> String
showsPrec :: Int -> EndpointAccess -> ShowS
$cshowsPrec :: Int -> EndpointAccess -> ShowS
Prelude.Show, forall x. Rep EndpointAccess x -> EndpointAccess
forall x. EndpointAccess -> Rep EndpointAccess x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EndpointAccess x -> EndpointAccess
$cfrom :: forall x. EndpointAccess -> Rep EndpointAccess x
Prelude.Generic)
newEndpointAccess ::
EndpointAccess
newEndpointAccess :: EndpointAccess
newEndpointAccess =
EndpointAccess'
{ $sel:address:EndpointAccess' :: Maybe Text
address = forall a. Maybe a
Prelude.Nothing,
$sel:clusterIdentifier:EndpointAccess' :: Maybe Text
clusterIdentifier = forall a. Maybe a
Prelude.Nothing,
$sel:endpointCreateTime:EndpointAccess' :: Maybe ISO8601
endpointCreateTime = forall a. Maybe a
Prelude.Nothing,
$sel:endpointName:EndpointAccess' :: Maybe Text
endpointName = forall a. Maybe a
Prelude.Nothing,
$sel:endpointStatus:EndpointAccess' :: Maybe Text
endpointStatus = forall a. Maybe a
Prelude.Nothing,
$sel:port:EndpointAccess' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
$sel:resourceOwner:EndpointAccess' :: Maybe Text
resourceOwner = forall a. Maybe a
Prelude.Nothing,
$sel:subnetGroupName:EndpointAccess' :: Maybe Text
subnetGroupName = forall a. Maybe a
Prelude.Nothing,
$sel:vpcEndpoint:EndpointAccess' :: Maybe VpcEndpoint
vpcEndpoint = forall a. Maybe a
Prelude.Nothing,
$sel:vpcSecurityGroups:EndpointAccess' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = forall a. Maybe a
Prelude.Nothing
}
endpointAccess_address :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_address :: Lens' EndpointAccess (Maybe Text)
endpointAccess_address = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
address :: Maybe Text
$sel:address:EndpointAccess' :: EndpointAccess -> Maybe Text
address} -> Maybe Text
address) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:address:EndpointAccess' :: Maybe Text
address = Maybe Text
a} :: EndpointAccess)
endpointAccess_clusterIdentifier :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_clusterIdentifier :: Lens' EndpointAccess (Maybe Text)
endpointAccess_clusterIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
clusterIdentifier :: Maybe Text
$sel:clusterIdentifier:EndpointAccess' :: EndpointAccess -> Maybe Text
clusterIdentifier} -> Maybe Text
clusterIdentifier) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:clusterIdentifier:EndpointAccess' :: Maybe Text
clusterIdentifier = Maybe Text
a} :: EndpointAccess)
endpointAccess_endpointCreateTime :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.UTCTime)
endpointAccess_endpointCreateTime :: Lens' EndpointAccess (Maybe UTCTime)
endpointAccess_endpointCreateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe ISO8601
endpointCreateTime :: Maybe ISO8601
$sel:endpointCreateTime:EndpointAccess' :: EndpointAccess -> Maybe ISO8601
endpointCreateTime} -> Maybe ISO8601
endpointCreateTime) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe ISO8601
a -> EndpointAccess
s {$sel:endpointCreateTime:EndpointAccess' :: Maybe ISO8601
endpointCreateTime = Maybe ISO8601
a} :: EndpointAccess) 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
endpointAccess_endpointName :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_endpointName :: Lens' EndpointAccess (Maybe Text)
endpointAccess_endpointName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
endpointName :: Maybe Text
$sel:endpointName:EndpointAccess' :: EndpointAccess -> Maybe Text
endpointName} -> Maybe Text
endpointName) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:endpointName:EndpointAccess' :: Maybe Text
endpointName = Maybe Text
a} :: EndpointAccess)
endpointAccess_endpointStatus :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_endpointStatus :: Lens' EndpointAccess (Maybe Text)
endpointAccess_endpointStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
endpointStatus :: Maybe Text
$sel:endpointStatus:EndpointAccess' :: EndpointAccess -> Maybe Text
endpointStatus} -> Maybe Text
endpointStatus) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:endpointStatus:EndpointAccess' :: Maybe Text
endpointStatus = Maybe Text
a} :: EndpointAccess)
endpointAccess_port :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Int)
endpointAccess_port :: Lens' EndpointAccess (Maybe Int)
endpointAccess_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Int
port :: Maybe Int
$sel:port:EndpointAccess' :: EndpointAccess -> Maybe Int
port} -> Maybe Int
port) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Int
a -> EndpointAccess
s {$sel:port:EndpointAccess' :: Maybe Int
port = Maybe Int
a} :: EndpointAccess)
endpointAccess_resourceOwner :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_resourceOwner :: Lens' EndpointAccess (Maybe Text)
endpointAccess_resourceOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
resourceOwner :: Maybe Text
$sel:resourceOwner:EndpointAccess' :: EndpointAccess -> Maybe Text
resourceOwner} -> Maybe Text
resourceOwner) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:resourceOwner:EndpointAccess' :: Maybe Text
resourceOwner = Maybe Text
a} :: EndpointAccess)
endpointAccess_subnetGroupName :: Lens.Lens' EndpointAccess (Prelude.Maybe Prelude.Text)
endpointAccess_subnetGroupName :: Lens' EndpointAccess (Maybe Text)
endpointAccess_subnetGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe Text
subnetGroupName :: Maybe Text
$sel:subnetGroupName:EndpointAccess' :: EndpointAccess -> Maybe Text
subnetGroupName} -> Maybe Text
subnetGroupName) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe Text
a -> EndpointAccess
s {$sel:subnetGroupName:EndpointAccess' :: Maybe Text
subnetGroupName = Maybe Text
a} :: EndpointAccess)
endpointAccess_vpcEndpoint :: Lens.Lens' EndpointAccess (Prelude.Maybe VpcEndpoint)
endpointAccess_vpcEndpoint :: Lens' EndpointAccess (Maybe VpcEndpoint)
endpointAccess_vpcEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe VpcEndpoint
vpcEndpoint :: Maybe VpcEndpoint
$sel:vpcEndpoint:EndpointAccess' :: EndpointAccess -> Maybe VpcEndpoint
vpcEndpoint} -> Maybe VpcEndpoint
vpcEndpoint) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe VpcEndpoint
a -> EndpointAccess
s {$sel:vpcEndpoint:EndpointAccess' :: Maybe VpcEndpoint
vpcEndpoint = Maybe VpcEndpoint
a} :: EndpointAccess)
endpointAccess_vpcSecurityGroups :: Lens.Lens' EndpointAccess (Prelude.Maybe [VpcSecurityGroupMembership])
endpointAccess_vpcSecurityGroups :: Lens' EndpointAccess (Maybe [VpcSecurityGroupMembership])
endpointAccess_vpcSecurityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EndpointAccess' {Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Maybe [VpcSecurityGroupMembership]
$sel:vpcSecurityGroups:EndpointAccess' :: EndpointAccess -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups} -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups) (\s :: EndpointAccess
s@EndpointAccess' {} Maybe [VpcSecurityGroupMembership]
a -> EndpointAccess
s {$sel:vpcSecurityGroups:EndpointAccess' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = Maybe [VpcSecurityGroupMembership]
a} :: EndpointAccess) 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
instance Data.FromXML EndpointAccess where
parseXML :: [Node] -> Either String EndpointAccess
parseXML [Node]
x =
Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe VpcEndpoint
-> Maybe [VpcSecurityGroupMembership]
-> EndpointAccess
EndpointAccess'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Address")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ClusterIdentifier")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"EndpointCreateTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"EndpointName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"EndpointStatus")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Port")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ResourceOwner")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"SubnetGroupName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"VpcEndpoint")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"VpcSecurityGroups"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"VpcSecurityGroup")
)
instance Prelude.Hashable EndpointAccess where
hashWithSalt :: Int -> EndpointAccess -> Int
hashWithSalt Int
_salt EndpointAccess' {Maybe Int
Maybe [VpcSecurityGroupMembership]
Maybe Text
Maybe ISO8601
Maybe VpcEndpoint
vpcSecurityGroups :: Maybe [VpcSecurityGroupMembership]
vpcEndpoint :: Maybe VpcEndpoint
subnetGroupName :: Maybe Text
resourceOwner :: Maybe Text
port :: Maybe Int
endpointStatus :: Maybe Text
endpointName :: Maybe Text
endpointCreateTime :: Maybe ISO8601
clusterIdentifier :: Maybe Text
address :: Maybe Text
$sel:vpcSecurityGroups:EndpointAccess' :: EndpointAccess -> Maybe [VpcSecurityGroupMembership]
$sel:vpcEndpoint:EndpointAccess' :: EndpointAccess -> Maybe VpcEndpoint
$sel:subnetGroupName:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:resourceOwner:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:port:EndpointAccess' :: EndpointAccess -> Maybe Int
$sel:endpointStatus:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:endpointName:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:endpointCreateTime:EndpointAccess' :: EndpointAccess -> Maybe ISO8601
$sel:clusterIdentifier:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:address:EndpointAccess' :: EndpointAccess -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
address
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clusterIdentifier
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
endpointCreateTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endpointName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endpointStatus
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
port
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
resourceOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
subnetGroupName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VpcEndpoint
vpcEndpoint
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups
instance Prelude.NFData EndpointAccess where
rnf :: EndpointAccess -> ()
rnf EndpointAccess' {Maybe Int
Maybe [VpcSecurityGroupMembership]
Maybe Text
Maybe ISO8601
Maybe VpcEndpoint
vpcSecurityGroups :: Maybe [VpcSecurityGroupMembership]
vpcEndpoint :: Maybe VpcEndpoint
subnetGroupName :: Maybe Text
resourceOwner :: Maybe Text
port :: Maybe Int
endpointStatus :: Maybe Text
endpointName :: Maybe Text
endpointCreateTime :: Maybe ISO8601
clusterIdentifier :: Maybe Text
address :: Maybe Text
$sel:vpcSecurityGroups:EndpointAccess' :: EndpointAccess -> Maybe [VpcSecurityGroupMembership]
$sel:vpcEndpoint:EndpointAccess' :: EndpointAccess -> Maybe VpcEndpoint
$sel:subnetGroupName:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:resourceOwner:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:port:EndpointAccess' :: EndpointAccess -> Maybe Int
$sel:endpointStatus:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:endpointName:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:endpointCreateTime:EndpointAccess' :: EndpointAccess -> Maybe ISO8601
$sel:clusterIdentifier:EndpointAccess' :: EndpointAccess -> Maybe Text
$sel:address:EndpointAccess' :: EndpointAccess -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
address
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clusterIdentifier
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
endpointCreateTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
port
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceOwner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
subnetGroupName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VpcEndpoint
vpcEndpoint
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups