{-# 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.Chime.PutAppInstanceStreamingConfigurations
  ( 
    PutAppInstanceStreamingConfigurations (..),
    newPutAppInstanceStreamingConfigurations,
    
    putAppInstanceStreamingConfigurations_appInstanceArn,
    putAppInstanceStreamingConfigurations_appInstanceStreamingConfigurations,
    
    PutAppInstanceStreamingConfigurationsResponse (..),
    newPutAppInstanceStreamingConfigurationsResponse,
    
    putAppInstanceStreamingConfigurationsResponse_appInstanceStreamingConfigurations,
    putAppInstanceStreamingConfigurationsResponse_httpStatus,
  )
where
import Amazonka.Chime.Types
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data PutAppInstanceStreamingConfigurations = PutAppInstanceStreamingConfigurations'
  { 
    PutAppInstanceStreamingConfigurations -> Text
appInstanceArn :: Prelude.Text,
    
    PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations :: Prelude.NonEmpty AppInstanceStreamingConfiguration
  }
  deriving (PutAppInstanceStreamingConfigurations
-> PutAppInstanceStreamingConfigurations -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutAppInstanceStreamingConfigurations
-> PutAppInstanceStreamingConfigurations -> Bool
$c/= :: PutAppInstanceStreamingConfigurations
-> PutAppInstanceStreamingConfigurations -> Bool
== :: PutAppInstanceStreamingConfigurations
-> PutAppInstanceStreamingConfigurations -> Bool
$c== :: PutAppInstanceStreamingConfigurations
-> PutAppInstanceStreamingConfigurations -> Bool
Prelude.Eq, Int -> PutAppInstanceStreamingConfigurations -> ShowS
[PutAppInstanceStreamingConfigurations] -> ShowS
PutAppInstanceStreamingConfigurations -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutAppInstanceStreamingConfigurations] -> ShowS
$cshowList :: [PutAppInstanceStreamingConfigurations] -> ShowS
show :: PutAppInstanceStreamingConfigurations -> String
$cshow :: PutAppInstanceStreamingConfigurations -> String
showsPrec :: Int -> PutAppInstanceStreamingConfigurations -> ShowS
$cshowsPrec :: Int -> PutAppInstanceStreamingConfigurations -> ShowS
Prelude.Show, forall x.
Rep PutAppInstanceStreamingConfigurations x
-> PutAppInstanceStreamingConfigurations
forall x.
PutAppInstanceStreamingConfigurations
-> Rep PutAppInstanceStreamingConfigurations x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutAppInstanceStreamingConfigurations x
-> PutAppInstanceStreamingConfigurations
$cfrom :: forall x.
PutAppInstanceStreamingConfigurations
-> Rep PutAppInstanceStreamingConfigurations x
Prelude.Generic)
newPutAppInstanceStreamingConfigurations ::
  
  Prelude.Text ->
  
  Prelude.NonEmpty AppInstanceStreamingConfiguration ->
  PutAppInstanceStreamingConfigurations
newPutAppInstanceStreamingConfigurations :: Text
-> NonEmpty AppInstanceStreamingConfiguration
-> PutAppInstanceStreamingConfigurations
newPutAppInstanceStreamingConfigurations
  Text
pAppInstanceArn_
  NonEmpty AppInstanceStreamingConfiguration
pAppInstanceStreamingConfigurations_ =
    PutAppInstanceStreamingConfigurations'
      { $sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: Text
appInstanceArn =
          Text
pAppInstanceArn_,
        $sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations =
          forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
            forall t b. AReview t b -> b -> t
Lens.# NonEmpty AppInstanceStreamingConfiguration
pAppInstanceStreamingConfigurations_
      }
putAppInstanceStreamingConfigurations_appInstanceArn :: Lens.Lens' PutAppInstanceStreamingConfigurations Prelude.Text
putAppInstanceStreamingConfigurations_appInstanceArn :: Lens' PutAppInstanceStreamingConfigurations Text
putAppInstanceStreamingConfigurations_appInstanceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutAppInstanceStreamingConfigurations' {Text
appInstanceArn :: Text
$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations -> Text
appInstanceArn} -> Text
appInstanceArn) (\s :: PutAppInstanceStreamingConfigurations
s@PutAppInstanceStreamingConfigurations' {} Text
a -> PutAppInstanceStreamingConfigurations
s {$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: Text
appInstanceArn = Text
a} :: PutAppInstanceStreamingConfigurations)
putAppInstanceStreamingConfigurations_appInstanceStreamingConfigurations :: Lens.Lens' PutAppInstanceStreamingConfigurations (Prelude.NonEmpty AppInstanceStreamingConfiguration)
putAppInstanceStreamingConfigurations_appInstanceStreamingConfigurations :: Lens'
  PutAppInstanceStreamingConfigurations
  (NonEmpty AppInstanceStreamingConfiguration)
putAppInstanceStreamingConfigurations_appInstanceStreamingConfigurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutAppInstanceStreamingConfigurations' {NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations :: NonEmpty AppInstanceStreamingConfiguration
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations} -> NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations) (\s :: PutAppInstanceStreamingConfigurations
s@PutAppInstanceStreamingConfigurations' {} NonEmpty AppInstanceStreamingConfiguration
a -> PutAppInstanceStreamingConfigurations
s {$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations = NonEmpty AppInstanceStreamingConfiguration
a} :: PutAppInstanceStreamingConfigurations) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance
  Core.AWSRequest
    PutAppInstanceStreamingConfigurations
  where
  type
    AWSResponse
      PutAppInstanceStreamingConfigurations =
      PutAppInstanceStreamingConfigurationsResponse
  request :: (Service -> Service)
-> PutAppInstanceStreamingConfigurations
-> Request PutAppInstanceStreamingConfigurations
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutAppInstanceStreamingConfigurations
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse PutAppInstanceStreamingConfigurations)))
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 (NonEmpty AppInstanceStreamingConfiguration)
-> Int -> PutAppInstanceStreamingConfigurationsResponse
PutAppInstanceStreamingConfigurationsResponse'
            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
"AppInstanceStreamingConfigurations")
            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
    PutAppInstanceStreamingConfigurations
  where
  hashWithSalt :: Int -> PutAppInstanceStreamingConfigurations -> Int
hashWithSalt
    Int
_salt
    PutAppInstanceStreamingConfigurations' {NonEmpty AppInstanceStreamingConfiguration
Text
appInstanceStreamingConfigurations :: NonEmpty AppInstanceStreamingConfiguration
appInstanceArn :: Text
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appInstanceArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations
instance
  Prelude.NFData
    PutAppInstanceStreamingConfigurations
  where
  rnf :: PutAppInstanceStreamingConfigurations -> ()
rnf PutAppInstanceStreamingConfigurations' {NonEmpty AppInstanceStreamingConfiguration
Text
appInstanceStreamingConfigurations :: NonEmpty AppInstanceStreamingConfiguration
appInstanceArn :: Text
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
appInstanceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations
instance
  Data.ToHeaders
    PutAppInstanceStreamingConfigurations
  where
  toHeaders :: PutAppInstanceStreamingConfigurations -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance
  Data.ToJSON
    PutAppInstanceStreamingConfigurations
  where
  toJSON :: PutAppInstanceStreamingConfigurations -> Value
toJSON PutAppInstanceStreamingConfigurations' {NonEmpty AppInstanceStreamingConfiguration
Text
appInstanceStreamingConfigurations :: NonEmpty AppInstanceStreamingConfiguration
appInstanceArn :: Text
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"AppInstanceStreamingConfigurations"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty AppInstanceStreamingConfiguration
appInstanceStreamingConfigurations
              )
          ]
      )
instance
  Data.ToPath
    PutAppInstanceStreamingConfigurations
  where
  toPath :: PutAppInstanceStreamingConfigurations -> ByteString
toPath PutAppInstanceStreamingConfigurations' {NonEmpty AppInstanceStreamingConfiguration
Text
appInstanceStreamingConfigurations :: NonEmpty AppInstanceStreamingConfiguration
appInstanceArn :: Text
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations
-> NonEmpty AppInstanceStreamingConfiguration
$sel:appInstanceArn:PutAppInstanceStreamingConfigurations' :: PutAppInstanceStreamingConfigurations -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/app-instances/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
appInstanceArn,
        ByteString
"/streaming-configurations"
      ]
instance
  Data.ToQuery
    PutAppInstanceStreamingConfigurations
  where
  toQuery :: PutAppInstanceStreamingConfigurations -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data PutAppInstanceStreamingConfigurationsResponse = PutAppInstanceStreamingConfigurationsResponse'
  { 
    PutAppInstanceStreamingConfigurationsResponse
-> Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations :: Prelude.Maybe (Prelude.NonEmpty AppInstanceStreamingConfiguration),
    
    PutAppInstanceStreamingConfigurationsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (PutAppInstanceStreamingConfigurationsResponse
-> PutAppInstanceStreamingConfigurationsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutAppInstanceStreamingConfigurationsResponse
-> PutAppInstanceStreamingConfigurationsResponse -> Bool
$c/= :: PutAppInstanceStreamingConfigurationsResponse
-> PutAppInstanceStreamingConfigurationsResponse -> Bool
== :: PutAppInstanceStreamingConfigurationsResponse
-> PutAppInstanceStreamingConfigurationsResponse -> Bool
$c== :: PutAppInstanceStreamingConfigurationsResponse
-> PutAppInstanceStreamingConfigurationsResponse -> Bool
Prelude.Eq, Int -> PutAppInstanceStreamingConfigurationsResponse -> ShowS
[PutAppInstanceStreamingConfigurationsResponse] -> ShowS
PutAppInstanceStreamingConfigurationsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutAppInstanceStreamingConfigurationsResponse] -> ShowS
$cshowList :: [PutAppInstanceStreamingConfigurationsResponse] -> ShowS
show :: PutAppInstanceStreamingConfigurationsResponse -> String
$cshow :: PutAppInstanceStreamingConfigurationsResponse -> String
showsPrec :: Int -> PutAppInstanceStreamingConfigurationsResponse -> ShowS
$cshowsPrec :: Int -> PutAppInstanceStreamingConfigurationsResponse -> ShowS
Prelude.Show, forall x.
Rep PutAppInstanceStreamingConfigurationsResponse x
-> PutAppInstanceStreamingConfigurationsResponse
forall x.
PutAppInstanceStreamingConfigurationsResponse
-> Rep PutAppInstanceStreamingConfigurationsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutAppInstanceStreamingConfigurationsResponse x
-> PutAppInstanceStreamingConfigurationsResponse
$cfrom :: forall x.
PutAppInstanceStreamingConfigurationsResponse
-> Rep PutAppInstanceStreamingConfigurationsResponse x
Prelude.Generic)
newPutAppInstanceStreamingConfigurationsResponse ::
  
  Prelude.Int ->
  PutAppInstanceStreamingConfigurationsResponse
newPutAppInstanceStreamingConfigurationsResponse :: Int -> PutAppInstanceStreamingConfigurationsResponse
newPutAppInstanceStreamingConfigurationsResponse
  Int
pHttpStatus_ =
    PutAppInstanceStreamingConfigurationsResponse'
      { $sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurationsResponse' :: Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:PutAppInstanceStreamingConfigurationsResponse' :: Int
httpStatus = Int
pHttpStatus_
      }
putAppInstanceStreamingConfigurationsResponse_appInstanceStreamingConfigurations :: Lens.Lens' PutAppInstanceStreamingConfigurationsResponse (Prelude.Maybe (Prelude.NonEmpty AppInstanceStreamingConfiguration))
putAppInstanceStreamingConfigurationsResponse_appInstanceStreamingConfigurations :: Lens'
  PutAppInstanceStreamingConfigurationsResponse
  (Maybe (NonEmpty AppInstanceStreamingConfiguration))
putAppInstanceStreamingConfigurationsResponse_appInstanceStreamingConfigurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutAppInstanceStreamingConfigurationsResponse' {Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations :: Maybe (NonEmpty AppInstanceStreamingConfiguration)
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurationsResponse' :: PutAppInstanceStreamingConfigurationsResponse
-> Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations} -> Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations) (\s :: PutAppInstanceStreamingConfigurationsResponse
s@PutAppInstanceStreamingConfigurationsResponse' {} Maybe (NonEmpty AppInstanceStreamingConfiguration)
a -> PutAppInstanceStreamingConfigurationsResponse
s {$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurationsResponse' :: Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations = Maybe (NonEmpty AppInstanceStreamingConfiguration)
a} :: PutAppInstanceStreamingConfigurationsResponse) 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
putAppInstanceStreamingConfigurationsResponse_httpStatus :: Lens.Lens' PutAppInstanceStreamingConfigurationsResponse Prelude.Int
putAppInstanceStreamingConfigurationsResponse_httpStatus :: Lens' PutAppInstanceStreamingConfigurationsResponse Int
putAppInstanceStreamingConfigurationsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutAppInstanceStreamingConfigurationsResponse' {Int
httpStatus :: Int
$sel:httpStatus:PutAppInstanceStreamingConfigurationsResponse' :: PutAppInstanceStreamingConfigurationsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: PutAppInstanceStreamingConfigurationsResponse
s@PutAppInstanceStreamingConfigurationsResponse' {} Int
a -> PutAppInstanceStreamingConfigurationsResponse
s {$sel:httpStatus:PutAppInstanceStreamingConfigurationsResponse' :: Int
httpStatus = Int
a} :: PutAppInstanceStreamingConfigurationsResponse)
instance
  Prelude.NFData
    PutAppInstanceStreamingConfigurationsResponse
  where
  rnf :: PutAppInstanceStreamingConfigurationsResponse -> ()
rnf
    PutAppInstanceStreamingConfigurationsResponse' {Int
Maybe (NonEmpty AppInstanceStreamingConfiguration)
httpStatus :: Int
appInstanceStreamingConfigurations :: Maybe (NonEmpty AppInstanceStreamingConfiguration)
$sel:httpStatus:PutAppInstanceStreamingConfigurationsResponse' :: PutAppInstanceStreamingConfigurationsResponse -> Int
$sel:appInstanceStreamingConfigurations:PutAppInstanceStreamingConfigurationsResponse' :: PutAppInstanceStreamingConfigurationsResponse
-> Maybe (NonEmpty AppInstanceStreamingConfiguration)
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AppInstanceStreamingConfiguration)
appInstanceStreamingConfigurations
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus