{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ECS.SubmitContainerStateChange
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This action is only used by the Amazon ECS agent, and it is not intended
-- for use outside of the agent.
--
-- Sent to acknowledge that a container changed states.
module Amazonka.ECS.SubmitContainerStateChange
  ( -- * Creating a Request
    SubmitContainerStateChange (..),
    newSubmitContainerStateChange,

    -- * Request Lenses
    submitContainerStateChange_cluster,
    submitContainerStateChange_containerName,
    submitContainerStateChange_exitCode,
    submitContainerStateChange_networkBindings,
    submitContainerStateChange_reason,
    submitContainerStateChange_runtimeId,
    submitContainerStateChange_status,
    submitContainerStateChange_task,

    -- * Destructuring the Response
    SubmitContainerStateChangeResponse (..),
    newSubmitContainerStateChangeResponse,

    -- * Response Lenses
    submitContainerStateChangeResponse_acknowledgment,
    submitContainerStateChangeResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ECS.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newSubmitContainerStateChange' smart constructor.
data SubmitContainerStateChange = SubmitContainerStateChange'
  { -- | The short name or full ARN of the cluster that hosts the container.
    SubmitContainerStateChange -> Maybe Text
cluster :: Prelude.Maybe Prelude.Text,
    -- | The name of the container.
    SubmitContainerStateChange -> Maybe Text
containerName :: Prelude.Maybe Prelude.Text,
    -- | The exit code that\'s returned for the state change request.
    SubmitContainerStateChange -> Maybe Int
exitCode :: Prelude.Maybe Prelude.Int,
    -- | The network bindings of the container.
    SubmitContainerStateChange -> Maybe [NetworkBinding]
networkBindings :: Prelude.Maybe [NetworkBinding],
    -- | The reason for the state change request.
    SubmitContainerStateChange -> Maybe Text
reason :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Docker container.
    SubmitContainerStateChange -> Maybe Text
runtimeId :: Prelude.Maybe Prelude.Text,
    -- | The status of the state change request.
    SubmitContainerStateChange -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The task ID or full Amazon Resource Name (ARN) of the task that hosts
    -- the container.
    SubmitContainerStateChange -> Maybe Text
task :: Prelude.Maybe Prelude.Text
  }
  deriving (SubmitContainerStateChange -> SubmitContainerStateChange -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubmitContainerStateChange -> SubmitContainerStateChange -> Bool
$c/= :: SubmitContainerStateChange -> SubmitContainerStateChange -> Bool
== :: SubmitContainerStateChange -> SubmitContainerStateChange -> Bool
$c== :: SubmitContainerStateChange -> SubmitContainerStateChange -> Bool
Prelude.Eq, ReadPrec [SubmitContainerStateChange]
ReadPrec SubmitContainerStateChange
Int -> ReadS SubmitContainerStateChange
ReadS [SubmitContainerStateChange]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SubmitContainerStateChange]
$creadListPrec :: ReadPrec [SubmitContainerStateChange]
readPrec :: ReadPrec SubmitContainerStateChange
$creadPrec :: ReadPrec SubmitContainerStateChange
readList :: ReadS [SubmitContainerStateChange]
$creadList :: ReadS [SubmitContainerStateChange]
readsPrec :: Int -> ReadS SubmitContainerStateChange
$creadsPrec :: Int -> ReadS SubmitContainerStateChange
Prelude.Read, Int -> SubmitContainerStateChange -> ShowS
[SubmitContainerStateChange] -> ShowS
SubmitContainerStateChange -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SubmitContainerStateChange] -> ShowS
$cshowList :: [SubmitContainerStateChange] -> ShowS
show :: SubmitContainerStateChange -> String
$cshow :: SubmitContainerStateChange -> String
showsPrec :: Int -> SubmitContainerStateChange -> ShowS
$cshowsPrec :: Int -> SubmitContainerStateChange -> ShowS
Prelude.Show, forall x.
Rep SubmitContainerStateChange x -> SubmitContainerStateChange
forall x.
SubmitContainerStateChange -> Rep SubmitContainerStateChange x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SubmitContainerStateChange x -> SubmitContainerStateChange
$cfrom :: forall x.
SubmitContainerStateChange -> Rep SubmitContainerStateChange x
Prelude.Generic)

-- |
-- Create a value of 'SubmitContainerStateChange' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'cluster', 'submitContainerStateChange_cluster' - The short name or full ARN of the cluster that hosts the container.
--
-- 'containerName', 'submitContainerStateChange_containerName' - The name of the container.
--
-- 'exitCode', 'submitContainerStateChange_exitCode' - The exit code that\'s returned for the state change request.
--
-- 'networkBindings', 'submitContainerStateChange_networkBindings' - The network bindings of the container.
--
-- 'reason', 'submitContainerStateChange_reason' - The reason for the state change request.
--
-- 'runtimeId', 'submitContainerStateChange_runtimeId' - The ID of the Docker container.
--
-- 'status', 'submitContainerStateChange_status' - The status of the state change request.
--
-- 'task', 'submitContainerStateChange_task' - The task ID or full Amazon Resource Name (ARN) of the task that hosts
-- the container.
newSubmitContainerStateChange ::
  SubmitContainerStateChange
newSubmitContainerStateChange :: SubmitContainerStateChange
newSubmitContainerStateChange =
  SubmitContainerStateChange'
    { $sel:cluster:SubmitContainerStateChange' :: Maybe Text
cluster =
        forall a. Maybe a
Prelude.Nothing,
      $sel:containerName:SubmitContainerStateChange' :: Maybe Text
containerName = forall a. Maybe a
Prelude.Nothing,
      $sel:exitCode:SubmitContainerStateChange' :: Maybe Int
exitCode = forall a. Maybe a
Prelude.Nothing,
      $sel:networkBindings:SubmitContainerStateChange' :: Maybe [NetworkBinding]
networkBindings = forall a. Maybe a
Prelude.Nothing,
      $sel:reason:SubmitContainerStateChange' :: Maybe Text
reason = forall a. Maybe a
Prelude.Nothing,
      $sel:runtimeId:SubmitContainerStateChange' :: Maybe Text
runtimeId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:SubmitContainerStateChange' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:task:SubmitContainerStateChange' :: Maybe Text
task = forall a. Maybe a
Prelude.Nothing
    }

-- | The short name or full ARN of the cluster that hosts the container.
submitContainerStateChange_cluster :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_cluster :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_cluster = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
cluster :: Maybe Text
$sel:cluster:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
cluster} -> Maybe Text
cluster) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:cluster:SubmitContainerStateChange' :: Maybe Text
cluster = Maybe Text
a} :: SubmitContainerStateChange)

-- | The name of the container.
submitContainerStateChange_containerName :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_containerName :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_containerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
containerName :: Maybe Text
$sel:containerName:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
containerName} -> Maybe Text
containerName) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:containerName:SubmitContainerStateChange' :: Maybe Text
containerName = Maybe Text
a} :: SubmitContainerStateChange)

-- | The exit code that\'s returned for the state change request.
submitContainerStateChange_exitCode :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Int)
submitContainerStateChange_exitCode :: Lens' SubmitContainerStateChange (Maybe Int)
submitContainerStateChange_exitCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Int
exitCode :: Maybe Int
$sel:exitCode:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Int
exitCode} -> Maybe Int
exitCode) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Int
a -> SubmitContainerStateChange
s {$sel:exitCode:SubmitContainerStateChange' :: Maybe Int
exitCode = Maybe Int
a} :: SubmitContainerStateChange)

-- | The network bindings of the container.
submitContainerStateChange_networkBindings :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe [NetworkBinding])
submitContainerStateChange_networkBindings :: Lens' SubmitContainerStateChange (Maybe [NetworkBinding])
submitContainerStateChange_networkBindings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe [NetworkBinding]
networkBindings :: Maybe [NetworkBinding]
$sel:networkBindings:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe [NetworkBinding]
networkBindings} -> Maybe [NetworkBinding]
networkBindings) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe [NetworkBinding]
a -> SubmitContainerStateChange
s {$sel:networkBindings:SubmitContainerStateChange' :: Maybe [NetworkBinding]
networkBindings = Maybe [NetworkBinding]
a} :: SubmitContainerStateChange) 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

-- | The reason for the state change request.
submitContainerStateChange_reason :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_reason :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_reason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
reason :: Maybe Text
$sel:reason:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
reason} -> Maybe Text
reason) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:reason:SubmitContainerStateChange' :: Maybe Text
reason = Maybe Text
a} :: SubmitContainerStateChange)

-- | The ID of the Docker container.
submitContainerStateChange_runtimeId :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_runtimeId :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_runtimeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
runtimeId :: Maybe Text
$sel:runtimeId:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
runtimeId} -> Maybe Text
runtimeId) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:runtimeId:SubmitContainerStateChange' :: Maybe Text
runtimeId = Maybe Text
a} :: SubmitContainerStateChange)

-- | The status of the state change request.
submitContainerStateChange_status :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_status :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
status :: Maybe Text
$sel:status:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
status} -> Maybe Text
status) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:status:SubmitContainerStateChange' :: Maybe Text
status = Maybe Text
a} :: SubmitContainerStateChange)

-- | The task ID or full Amazon Resource Name (ARN) of the task that hosts
-- the container.
submitContainerStateChange_task :: Lens.Lens' SubmitContainerStateChange (Prelude.Maybe Prelude.Text)
submitContainerStateChange_task :: Lens' SubmitContainerStateChange (Maybe Text)
submitContainerStateChange_task = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChange' {Maybe Text
task :: Maybe Text
$sel:task:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
task} -> Maybe Text
task) (\s :: SubmitContainerStateChange
s@SubmitContainerStateChange' {} Maybe Text
a -> SubmitContainerStateChange
s {$sel:task:SubmitContainerStateChange' :: Maybe Text
task = Maybe Text
a} :: SubmitContainerStateChange)

instance Core.AWSRequest SubmitContainerStateChange where
  type
    AWSResponse SubmitContainerStateChange =
      SubmitContainerStateChangeResponse
  request :: (Service -> Service)
-> SubmitContainerStateChange -> Request SubmitContainerStateChange
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 SubmitContainerStateChange
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse SubmitContainerStateChange)))
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 Text -> Int -> SubmitContainerStateChangeResponse
SubmitContainerStateChangeResponse'
            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
"acknowledgment")
            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 SubmitContainerStateChange where
  hashWithSalt :: Int -> SubmitContainerStateChange -> Int
hashWithSalt Int
_salt SubmitContainerStateChange' {Maybe Int
Maybe [NetworkBinding]
Maybe Text
task :: Maybe Text
status :: Maybe Text
runtimeId :: Maybe Text
reason :: Maybe Text
networkBindings :: Maybe [NetworkBinding]
exitCode :: Maybe Int
containerName :: Maybe Text
cluster :: Maybe Text
$sel:task:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:status:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:runtimeId:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:reason:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:networkBindings:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe [NetworkBinding]
$sel:exitCode:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Int
$sel:containerName:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:cluster:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cluster
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
containerName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
exitCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [NetworkBinding]
networkBindings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
reason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
runtimeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
task

instance Prelude.NFData SubmitContainerStateChange where
  rnf :: SubmitContainerStateChange -> ()
rnf SubmitContainerStateChange' {Maybe Int
Maybe [NetworkBinding]
Maybe Text
task :: Maybe Text
status :: Maybe Text
runtimeId :: Maybe Text
reason :: Maybe Text
networkBindings :: Maybe [NetworkBinding]
exitCode :: Maybe Int
containerName :: Maybe Text
cluster :: Maybe Text
$sel:task:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:status:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:runtimeId:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:reason:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:networkBindings:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe [NetworkBinding]
$sel:exitCode:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Int
$sel:containerName:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:cluster:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cluster
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
containerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
exitCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [NetworkBinding]
networkBindings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
reason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
runtimeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
task

instance Data.ToHeaders SubmitContainerStateChange where
  toHeaders :: SubmitContainerStateChange -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AmazonEC2ContainerServiceV20141113.SubmitContainerStateChange" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON SubmitContainerStateChange where
  toJSON :: SubmitContainerStateChange -> Value
toJSON SubmitContainerStateChange' {Maybe Int
Maybe [NetworkBinding]
Maybe Text
task :: Maybe Text
status :: Maybe Text
runtimeId :: Maybe Text
reason :: Maybe Text
networkBindings :: Maybe [NetworkBinding]
exitCode :: Maybe Int
containerName :: Maybe Text
cluster :: Maybe Text
$sel:task:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:status:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:runtimeId:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:reason:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:networkBindings:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe [NetworkBinding]
$sel:exitCode:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Int
$sel:containerName:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
$sel:cluster:SubmitContainerStateChange' :: SubmitContainerStateChange -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"cluster" 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
cluster,
            (Key
"containerName" 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
containerName,
            (Key
"exitCode" 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 Int
exitCode,
            (Key
"networkBindings" 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 [NetworkBinding]
networkBindings,
            (Key
"reason" 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
reason,
            (Key
"runtimeId" 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
runtimeId,
            (Key
"status" 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
status,
            (Key
"task" 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
task
          ]
      )

instance Data.ToPath SubmitContainerStateChange where
  toPath :: SubmitContainerStateChange -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery SubmitContainerStateChange where
  toQuery :: SubmitContainerStateChange -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newSubmitContainerStateChangeResponse' smart constructor.
data SubmitContainerStateChangeResponse = SubmitContainerStateChangeResponse'
  { -- | Acknowledgement of the state change.
    SubmitContainerStateChangeResponse -> Maybe Text
acknowledgment :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    SubmitContainerStateChangeResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (SubmitContainerStateChangeResponse
-> SubmitContainerStateChangeResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubmitContainerStateChangeResponse
-> SubmitContainerStateChangeResponse -> Bool
$c/= :: SubmitContainerStateChangeResponse
-> SubmitContainerStateChangeResponse -> Bool
== :: SubmitContainerStateChangeResponse
-> SubmitContainerStateChangeResponse -> Bool
$c== :: SubmitContainerStateChangeResponse
-> SubmitContainerStateChangeResponse -> Bool
Prelude.Eq, ReadPrec [SubmitContainerStateChangeResponse]
ReadPrec SubmitContainerStateChangeResponse
Int -> ReadS SubmitContainerStateChangeResponse
ReadS [SubmitContainerStateChangeResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SubmitContainerStateChangeResponse]
$creadListPrec :: ReadPrec [SubmitContainerStateChangeResponse]
readPrec :: ReadPrec SubmitContainerStateChangeResponse
$creadPrec :: ReadPrec SubmitContainerStateChangeResponse
readList :: ReadS [SubmitContainerStateChangeResponse]
$creadList :: ReadS [SubmitContainerStateChangeResponse]
readsPrec :: Int -> ReadS SubmitContainerStateChangeResponse
$creadsPrec :: Int -> ReadS SubmitContainerStateChangeResponse
Prelude.Read, Int -> SubmitContainerStateChangeResponse -> ShowS
[SubmitContainerStateChangeResponse] -> ShowS
SubmitContainerStateChangeResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SubmitContainerStateChangeResponse] -> ShowS
$cshowList :: [SubmitContainerStateChangeResponse] -> ShowS
show :: SubmitContainerStateChangeResponse -> String
$cshow :: SubmitContainerStateChangeResponse -> String
showsPrec :: Int -> SubmitContainerStateChangeResponse -> ShowS
$cshowsPrec :: Int -> SubmitContainerStateChangeResponse -> ShowS
Prelude.Show, forall x.
Rep SubmitContainerStateChangeResponse x
-> SubmitContainerStateChangeResponse
forall x.
SubmitContainerStateChangeResponse
-> Rep SubmitContainerStateChangeResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SubmitContainerStateChangeResponse x
-> SubmitContainerStateChangeResponse
$cfrom :: forall x.
SubmitContainerStateChangeResponse
-> Rep SubmitContainerStateChangeResponse x
Prelude.Generic)

-- |
-- Create a value of 'SubmitContainerStateChangeResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'acknowledgment', 'submitContainerStateChangeResponse_acknowledgment' - Acknowledgement of the state change.
--
-- 'httpStatus', 'submitContainerStateChangeResponse_httpStatus' - The response's http status code.
newSubmitContainerStateChangeResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  SubmitContainerStateChangeResponse
newSubmitContainerStateChangeResponse :: Int -> SubmitContainerStateChangeResponse
newSubmitContainerStateChangeResponse Int
pHttpStatus_ =
  SubmitContainerStateChangeResponse'
    { $sel:acknowledgment:SubmitContainerStateChangeResponse' :: Maybe Text
acknowledgment =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:SubmitContainerStateChangeResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Acknowledgement of the state change.
submitContainerStateChangeResponse_acknowledgment :: Lens.Lens' SubmitContainerStateChangeResponse (Prelude.Maybe Prelude.Text)
submitContainerStateChangeResponse_acknowledgment :: Lens' SubmitContainerStateChangeResponse (Maybe Text)
submitContainerStateChangeResponse_acknowledgment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChangeResponse' {Maybe Text
acknowledgment :: Maybe Text
$sel:acknowledgment:SubmitContainerStateChangeResponse' :: SubmitContainerStateChangeResponse -> Maybe Text
acknowledgment} -> Maybe Text
acknowledgment) (\s :: SubmitContainerStateChangeResponse
s@SubmitContainerStateChangeResponse' {} Maybe Text
a -> SubmitContainerStateChangeResponse
s {$sel:acknowledgment:SubmitContainerStateChangeResponse' :: Maybe Text
acknowledgment = Maybe Text
a} :: SubmitContainerStateChangeResponse)

-- | The response's http status code.
submitContainerStateChangeResponse_httpStatus :: Lens.Lens' SubmitContainerStateChangeResponse Prelude.Int
submitContainerStateChangeResponse_httpStatus :: Lens' SubmitContainerStateChangeResponse Int
submitContainerStateChangeResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SubmitContainerStateChangeResponse' {Int
httpStatus :: Int
$sel:httpStatus:SubmitContainerStateChangeResponse' :: SubmitContainerStateChangeResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SubmitContainerStateChangeResponse
s@SubmitContainerStateChangeResponse' {} Int
a -> SubmitContainerStateChangeResponse
s {$sel:httpStatus:SubmitContainerStateChangeResponse' :: Int
httpStatus = Int
a} :: SubmitContainerStateChangeResponse)

instance
  Prelude.NFData
    SubmitContainerStateChangeResponse
  where
  rnf :: SubmitContainerStateChangeResponse -> ()
rnf SubmitContainerStateChangeResponse' {Int
Maybe Text
httpStatus :: Int
acknowledgment :: Maybe Text
$sel:httpStatus:SubmitContainerStateChangeResponse' :: SubmitContainerStateChangeResponse -> Int
$sel:acknowledgment:SubmitContainerStateChangeResponse' :: SubmitContainerStateChangeResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
acknowledgment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus