{-# 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.GlobalAccelerator.Types.Listener where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GlobalAccelerator.Types.ClientAffinity
import Amazonka.GlobalAccelerator.Types.PortRange
import Amazonka.GlobalAccelerator.Types.Protocol
import qualified Amazonka.Prelude as Prelude
data Listener = Listener'
{
Listener -> Maybe ClientAffinity
clientAffinity :: Prelude.Maybe ClientAffinity,
Listener -> Maybe Text
listenerArn :: Prelude.Maybe Prelude.Text,
Listener -> Maybe (NonEmpty PortRange)
portRanges :: Prelude.Maybe (Prelude.NonEmpty PortRange),
Listener -> Maybe Protocol
protocol :: Prelude.Maybe Protocol
}
deriving (Listener -> Listener -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Listener -> Listener -> Bool
$c/= :: Listener -> Listener -> Bool
== :: Listener -> Listener -> Bool
$c== :: Listener -> Listener -> Bool
Prelude.Eq, ReadPrec [Listener]
ReadPrec Listener
Int -> ReadS Listener
ReadS [Listener]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Listener]
$creadListPrec :: ReadPrec [Listener]
readPrec :: ReadPrec Listener
$creadPrec :: ReadPrec Listener
readList :: ReadS [Listener]
$creadList :: ReadS [Listener]
readsPrec :: Int -> ReadS Listener
$creadsPrec :: Int -> ReadS Listener
Prelude.Read, Int -> Listener -> ShowS
[Listener] -> ShowS
Listener -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Listener] -> ShowS
$cshowList :: [Listener] -> ShowS
show :: Listener -> String
$cshow :: Listener -> String
showsPrec :: Int -> Listener -> ShowS
$cshowsPrec :: Int -> Listener -> ShowS
Prelude.Show, forall x. Rep Listener x -> Listener
forall x. Listener -> Rep Listener x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Listener x -> Listener
$cfrom :: forall x. Listener -> Rep Listener x
Prelude.Generic)
newListener ::
Listener
newListener :: Listener
newListener =
Listener'
{ $sel:clientAffinity:Listener' :: Maybe ClientAffinity
clientAffinity = forall a. Maybe a
Prelude.Nothing,
$sel:listenerArn:Listener' :: Maybe Text
listenerArn = forall a. Maybe a
Prelude.Nothing,
$sel:portRanges:Listener' :: Maybe (NonEmpty PortRange)
portRanges = forall a. Maybe a
Prelude.Nothing,
$sel:protocol:Listener' :: Maybe Protocol
protocol = forall a. Maybe a
Prelude.Nothing
}
listener_clientAffinity :: Lens.Lens' Listener (Prelude.Maybe ClientAffinity)
listener_clientAffinity :: Lens' Listener (Maybe ClientAffinity)
listener_clientAffinity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Listener' {Maybe ClientAffinity
clientAffinity :: Maybe ClientAffinity
$sel:clientAffinity:Listener' :: Listener -> Maybe ClientAffinity
clientAffinity} -> Maybe ClientAffinity
clientAffinity) (\s :: Listener
s@Listener' {} Maybe ClientAffinity
a -> Listener
s {$sel:clientAffinity:Listener' :: Maybe ClientAffinity
clientAffinity = Maybe ClientAffinity
a} :: Listener)
listener_listenerArn :: Lens.Lens' Listener (Prelude.Maybe Prelude.Text)
listener_listenerArn :: Lens' Listener (Maybe Text)
listener_listenerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Listener' {Maybe Text
listenerArn :: Maybe Text
$sel:listenerArn:Listener' :: Listener -> Maybe Text
listenerArn} -> Maybe Text
listenerArn) (\s :: Listener
s@Listener' {} Maybe Text
a -> Listener
s {$sel:listenerArn:Listener' :: Maybe Text
listenerArn = Maybe Text
a} :: Listener)
listener_portRanges :: Lens.Lens' Listener (Prelude.Maybe (Prelude.NonEmpty PortRange))
listener_portRanges :: Lens' Listener (Maybe (NonEmpty PortRange))
listener_portRanges = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Listener' {Maybe (NonEmpty PortRange)
portRanges :: Maybe (NonEmpty PortRange)
$sel:portRanges:Listener' :: Listener -> Maybe (NonEmpty PortRange)
portRanges} -> Maybe (NonEmpty PortRange)
portRanges) (\s :: Listener
s@Listener' {} Maybe (NonEmpty PortRange)
a -> Listener
s {$sel:portRanges:Listener' :: Maybe (NonEmpty PortRange)
portRanges = Maybe (NonEmpty PortRange)
a} :: Listener) 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
listener_protocol :: Lens.Lens' Listener (Prelude.Maybe Protocol)
listener_protocol :: Lens' Listener (Maybe Protocol)
listener_protocol = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Listener' {Maybe Protocol
protocol :: Maybe Protocol
$sel:protocol:Listener' :: Listener -> Maybe Protocol
protocol} -> Maybe Protocol
protocol) (\s :: Listener
s@Listener' {} Maybe Protocol
a -> Listener
s {$sel:protocol:Listener' :: Maybe Protocol
protocol = Maybe Protocol
a} :: Listener)
instance Data.FromJSON Listener where
parseJSON :: Value -> Parser Listener
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Listener"
( \Object
x ->
Maybe ClientAffinity
-> Maybe Text
-> Maybe (NonEmpty PortRange)
-> Maybe Protocol
-> Listener
Listener'
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
"ClientAffinity")
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
"ListenerArn")
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
"PortRanges")
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")
)
instance Prelude.Hashable Listener where
hashWithSalt :: Int -> Listener -> Int
hashWithSalt Int
_salt Listener' {Maybe (NonEmpty PortRange)
Maybe Text
Maybe ClientAffinity
Maybe Protocol
protocol :: Maybe Protocol
portRanges :: Maybe (NonEmpty PortRange)
listenerArn :: Maybe Text
clientAffinity :: Maybe ClientAffinity
$sel:protocol:Listener' :: Listener -> Maybe Protocol
$sel:portRanges:Listener' :: Listener -> Maybe (NonEmpty PortRange)
$sel:listenerArn:Listener' :: Listener -> Maybe Text
$sel:clientAffinity:Listener' :: Listener -> Maybe ClientAffinity
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ClientAffinity
clientAffinity
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
listenerArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty PortRange)
portRanges
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Protocol
protocol
instance Prelude.NFData Listener where
rnf :: Listener -> ()
rnf Listener' {Maybe (NonEmpty PortRange)
Maybe Text
Maybe ClientAffinity
Maybe Protocol
protocol :: Maybe Protocol
portRanges :: Maybe (NonEmpty PortRange)
listenerArn :: Maybe Text
clientAffinity :: Maybe ClientAffinity
$sel:protocol:Listener' :: Listener -> Maybe Protocol
$sel:portRanges:Listener' :: Listener -> Maybe (NonEmpty PortRange)
$sel:listenerArn:Listener' :: Listener -> Maybe Text
$sel:clientAffinity:Listener' :: Listener -> Maybe ClientAffinity
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ClientAffinity
clientAffinity
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
listenerArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty PortRange)
portRanges
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Protocol
protocol