{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.KinesisVideoSignaling.GetIceServerConfig
(
GetIceServerConfig (..),
newGetIceServerConfig,
getIceServerConfig_clientId,
getIceServerConfig_service,
getIceServerConfig_username,
getIceServerConfig_channelARN,
GetIceServerConfigResponse (..),
newGetIceServerConfigResponse,
getIceServerConfigResponse_iceServerList,
getIceServerConfigResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.KinesisVideoSignaling.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetIceServerConfig = GetIceServerConfig'
{
GetIceServerConfig -> Maybe Text
clientId :: Prelude.Maybe Prelude.Text,
GetIceServerConfig -> Maybe Service
service :: Prelude.Maybe Service,
GetIceServerConfig -> Maybe Text
username :: Prelude.Maybe Prelude.Text,
GetIceServerConfig -> Text
channelARN :: Prelude.Text
}
deriving (GetIceServerConfig -> GetIceServerConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetIceServerConfig -> GetIceServerConfig -> Bool
$c/= :: GetIceServerConfig -> GetIceServerConfig -> Bool
== :: GetIceServerConfig -> GetIceServerConfig -> Bool
$c== :: GetIceServerConfig -> GetIceServerConfig -> Bool
Prelude.Eq, ReadPrec [GetIceServerConfig]
ReadPrec GetIceServerConfig
Int -> ReadS GetIceServerConfig
ReadS [GetIceServerConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetIceServerConfig]
$creadListPrec :: ReadPrec [GetIceServerConfig]
readPrec :: ReadPrec GetIceServerConfig
$creadPrec :: ReadPrec GetIceServerConfig
readList :: ReadS [GetIceServerConfig]
$creadList :: ReadS [GetIceServerConfig]
readsPrec :: Int -> ReadS GetIceServerConfig
$creadsPrec :: Int -> ReadS GetIceServerConfig
Prelude.Read, Int -> GetIceServerConfig -> ShowS
[GetIceServerConfig] -> ShowS
GetIceServerConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetIceServerConfig] -> ShowS
$cshowList :: [GetIceServerConfig] -> ShowS
show :: GetIceServerConfig -> String
$cshow :: GetIceServerConfig -> String
showsPrec :: Int -> GetIceServerConfig -> ShowS
$cshowsPrec :: Int -> GetIceServerConfig -> ShowS
Prelude.Show, forall x. Rep GetIceServerConfig x -> GetIceServerConfig
forall x. GetIceServerConfig -> Rep GetIceServerConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetIceServerConfig x -> GetIceServerConfig
$cfrom :: forall x. GetIceServerConfig -> Rep GetIceServerConfig x
Prelude.Generic)
newGetIceServerConfig ::
Prelude.Text ->
GetIceServerConfig
newGetIceServerConfig :: Text -> GetIceServerConfig
newGetIceServerConfig Text
pChannelARN_ =
GetIceServerConfig'
{ $sel:clientId:GetIceServerConfig' :: Maybe Text
clientId = forall a. Maybe a
Prelude.Nothing,
$sel:service:GetIceServerConfig' :: Maybe Service
service = forall a. Maybe a
Prelude.Nothing,
$sel:username:GetIceServerConfig' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing,
$sel:channelARN:GetIceServerConfig' :: Text
channelARN = Text
pChannelARN_
}
getIceServerConfig_clientId :: Lens.Lens' GetIceServerConfig (Prelude.Maybe Prelude.Text)
getIceServerConfig_clientId :: Lens' GetIceServerConfig (Maybe Text)
getIceServerConfig_clientId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfig' {Maybe Text
clientId :: Maybe Text
$sel:clientId:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
clientId} -> Maybe Text
clientId) (\s :: GetIceServerConfig
s@GetIceServerConfig' {} Maybe Text
a -> GetIceServerConfig
s {$sel:clientId:GetIceServerConfig' :: Maybe Text
clientId = Maybe Text
a} :: GetIceServerConfig)
getIceServerConfig_service :: Lens.Lens' GetIceServerConfig (Prelude.Maybe Service)
getIceServerConfig_service :: Lens' GetIceServerConfig (Maybe Service)
getIceServerConfig_service = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfig' {Maybe Service
service :: Maybe Service
$sel:service:GetIceServerConfig' :: GetIceServerConfig -> Maybe Service
service} -> Maybe Service
service) (\s :: GetIceServerConfig
s@GetIceServerConfig' {} Maybe Service
a -> GetIceServerConfig
s {$sel:service:GetIceServerConfig' :: Maybe Service
service = Maybe Service
a} :: GetIceServerConfig)
getIceServerConfig_username :: Lens.Lens' GetIceServerConfig (Prelude.Maybe Prelude.Text)
getIceServerConfig_username :: Lens' GetIceServerConfig (Maybe Text)
getIceServerConfig_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfig' {Maybe Text
username :: Maybe Text
$sel:username:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
username} -> Maybe Text
username) (\s :: GetIceServerConfig
s@GetIceServerConfig' {} Maybe Text
a -> GetIceServerConfig
s {$sel:username:GetIceServerConfig' :: Maybe Text
username = Maybe Text
a} :: GetIceServerConfig)
getIceServerConfig_channelARN :: Lens.Lens' GetIceServerConfig Prelude.Text
getIceServerConfig_channelARN :: Lens' GetIceServerConfig Text
getIceServerConfig_channelARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfig' {Text
channelARN :: Text
$sel:channelARN:GetIceServerConfig' :: GetIceServerConfig -> Text
channelARN} -> Text
channelARN) (\s :: GetIceServerConfig
s@GetIceServerConfig' {} Text
a -> GetIceServerConfig
s {$sel:channelARN:GetIceServerConfig' :: Text
channelARN = Text
a} :: GetIceServerConfig)
instance Core.AWSRequest GetIceServerConfig where
type
AWSResponse GetIceServerConfig =
GetIceServerConfigResponse
request :: (Service -> Service)
-> GetIceServerConfig -> Request GetIceServerConfig
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetIceServerConfig
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetIceServerConfig)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe [IceServer] -> Int -> GetIceServerConfigResponse
GetIceServerConfigResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"IceServerList" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GetIceServerConfig where
hashWithSalt :: Int -> GetIceServerConfig -> Int
hashWithSalt Int
_salt GetIceServerConfig' {Maybe Text
Maybe Service
Text
channelARN :: Text
username :: Maybe Text
service :: Maybe Service
clientId :: Maybe Text
$sel:channelARN:GetIceServerConfig' :: GetIceServerConfig -> Text
$sel:username:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
$sel:service:GetIceServerConfig' :: GetIceServerConfig -> Maybe Service
$sel:clientId:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Service
service
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
channelARN
instance Prelude.NFData GetIceServerConfig where
rnf :: GetIceServerConfig -> ()
rnf GetIceServerConfig' {Maybe Text
Maybe Service
Text
channelARN :: Text
username :: Maybe Text
service :: Maybe Service
clientId :: Maybe Text
$sel:channelARN:GetIceServerConfig' :: GetIceServerConfig -> Text
$sel:username:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
$sel:service:GetIceServerConfig' :: GetIceServerConfig -> Maybe Service
$sel:clientId:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Service
service
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
username
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
channelARN
instance Data.ToHeaders GetIceServerConfig where
toHeaders :: GetIceServerConfig -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON GetIceServerConfig where
toJSON :: GetIceServerConfig -> Value
toJSON GetIceServerConfig' {Maybe Text
Maybe Service
Text
channelARN :: Text
username :: Maybe Text
service :: Maybe Service
clientId :: Maybe Text
$sel:channelARN:GetIceServerConfig' :: GetIceServerConfig -> Text
$sel:username:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
$sel:service:GetIceServerConfig' :: GetIceServerConfig -> Maybe Service
$sel:clientId:GetIceServerConfig' :: GetIceServerConfig -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clientId,
(Key
"Service" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Service
service,
(Key
"Username" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
username,
forall a. a -> Maybe a
Prelude.Just (Key
"ChannelARN" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
channelARN)
]
)
instance Data.ToPath GetIceServerConfig where
toPath :: GetIceServerConfig -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/v1/get-ice-server-config"
instance Data.ToQuery GetIceServerConfig where
toQuery :: GetIceServerConfig -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetIceServerConfigResponse = GetIceServerConfigResponse'
{
GetIceServerConfigResponse -> Maybe [IceServer]
iceServerList :: Prelude.Maybe [IceServer],
GetIceServerConfigResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetIceServerConfigResponse -> GetIceServerConfigResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetIceServerConfigResponse -> GetIceServerConfigResponse -> Bool
$c/= :: GetIceServerConfigResponse -> GetIceServerConfigResponse -> Bool
== :: GetIceServerConfigResponse -> GetIceServerConfigResponse -> Bool
$c== :: GetIceServerConfigResponse -> GetIceServerConfigResponse -> Bool
Prelude.Eq, ReadPrec [GetIceServerConfigResponse]
ReadPrec GetIceServerConfigResponse
Int -> ReadS GetIceServerConfigResponse
ReadS [GetIceServerConfigResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetIceServerConfigResponse]
$creadListPrec :: ReadPrec [GetIceServerConfigResponse]
readPrec :: ReadPrec GetIceServerConfigResponse
$creadPrec :: ReadPrec GetIceServerConfigResponse
readList :: ReadS [GetIceServerConfigResponse]
$creadList :: ReadS [GetIceServerConfigResponse]
readsPrec :: Int -> ReadS GetIceServerConfigResponse
$creadsPrec :: Int -> ReadS GetIceServerConfigResponse
Prelude.Read, Int -> GetIceServerConfigResponse -> ShowS
[GetIceServerConfigResponse] -> ShowS
GetIceServerConfigResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetIceServerConfigResponse] -> ShowS
$cshowList :: [GetIceServerConfigResponse] -> ShowS
show :: GetIceServerConfigResponse -> String
$cshow :: GetIceServerConfigResponse -> String
showsPrec :: Int -> GetIceServerConfigResponse -> ShowS
$cshowsPrec :: Int -> GetIceServerConfigResponse -> ShowS
Prelude.Show, forall x.
Rep GetIceServerConfigResponse x -> GetIceServerConfigResponse
forall x.
GetIceServerConfigResponse -> Rep GetIceServerConfigResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetIceServerConfigResponse x -> GetIceServerConfigResponse
$cfrom :: forall x.
GetIceServerConfigResponse -> Rep GetIceServerConfigResponse x
Prelude.Generic)
newGetIceServerConfigResponse ::
Prelude.Int ->
GetIceServerConfigResponse
newGetIceServerConfigResponse :: Int -> GetIceServerConfigResponse
newGetIceServerConfigResponse Int
pHttpStatus_ =
GetIceServerConfigResponse'
{ $sel:iceServerList:GetIceServerConfigResponse' :: Maybe [IceServer]
iceServerList =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetIceServerConfigResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getIceServerConfigResponse_iceServerList :: Lens.Lens' GetIceServerConfigResponse (Prelude.Maybe [IceServer])
getIceServerConfigResponse_iceServerList :: Lens' GetIceServerConfigResponse (Maybe [IceServer])
getIceServerConfigResponse_iceServerList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfigResponse' {Maybe [IceServer]
iceServerList :: Maybe [IceServer]
$sel:iceServerList:GetIceServerConfigResponse' :: GetIceServerConfigResponse -> Maybe [IceServer]
iceServerList} -> Maybe [IceServer]
iceServerList) (\s :: GetIceServerConfigResponse
s@GetIceServerConfigResponse' {} Maybe [IceServer]
a -> GetIceServerConfigResponse
s {$sel:iceServerList:GetIceServerConfigResponse' :: Maybe [IceServer]
iceServerList = Maybe [IceServer]
a} :: GetIceServerConfigResponse) 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
getIceServerConfigResponse_httpStatus :: Lens.Lens' GetIceServerConfigResponse Prelude.Int
getIceServerConfigResponse_httpStatus :: Lens' GetIceServerConfigResponse Int
getIceServerConfigResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetIceServerConfigResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetIceServerConfigResponse' :: GetIceServerConfigResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetIceServerConfigResponse
s@GetIceServerConfigResponse' {} Int
a -> GetIceServerConfigResponse
s {$sel:httpStatus:GetIceServerConfigResponse' :: Int
httpStatus = Int
a} :: GetIceServerConfigResponse)
instance Prelude.NFData GetIceServerConfigResponse where
rnf :: GetIceServerConfigResponse -> ()
rnf GetIceServerConfigResponse' {Int
Maybe [IceServer]
httpStatus :: Int
iceServerList :: Maybe [IceServer]
$sel:httpStatus:GetIceServerConfigResponse' :: GetIceServerConfigResponse -> Int
$sel:iceServerList:GetIceServerConfigResponse' :: GetIceServerConfigResponse -> Maybe [IceServer]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [IceServer]
iceServerList
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus