{-# 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.Connect.CreateAgentStatus
-- 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 API is in preview release for Amazon Connect and is subject to
-- change.
--
-- Creates an agent status for the specified Amazon Connect instance.
module Amazonka.Connect.CreateAgentStatus
  ( -- * Creating a Request
    CreateAgentStatus (..),
    newCreateAgentStatus,

    -- * Request Lenses
    createAgentStatus_description,
    createAgentStatus_displayOrder,
    createAgentStatus_tags,
    createAgentStatus_instanceId,
    createAgentStatus_name,
    createAgentStatus_state,

    -- * Destructuring the Response
    CreateAgentStatusResponse (..),
    newCreateAgentStatusResponse,

    -- * Response Lenses
    createAgentStatusResponse_agentStatusARN,
    createAgentStatusResponse_agentStatusId,
    createAgentStatusResponse_httpStatus,
  )
where

import Amazonka.Connect.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

-- | /See:/ 'newCreateAgentStatus' smart constructor.
data CreateAgentStatus = CreateAgentStatus'
  { -- | The description of the status.
    CreateAgentStatus -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The display order of the status.
    CreateAgentStatus -> Maybe Natural
displayOrder :: Prelude.Maybe Prelude.Natural,
    -- | The tags used to organize, track, or control access for this resource.
    -- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
    CreateAgentStatus -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    CreateAgentStatus -> Text
instanceId :: Prelude.Text,
    -- | The name of the status.
    CreateAgentStatus -> Text
name :: Prelude.Text,
    -- | The state of the status.
    CreateAgentStatus -> AgentStatusState
state :: AgentStatusState
  }
  deriving (CreateAgentStatus -> CreateAgentStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAgentStatus -> CreateAgentStatus -> Bool
$c/= :: CreateAgentStatus -> CreateAgentStatus -> Bool
== :: CreateAgentStatus -> CreateAgentStatus -> Bool
$c== :: CreateAgentStatus -> CreateAgentStatus -> Bool
Prelude.Eq, ReadPrec [CreateAgentStatus]
ReadPrec CreateAgentStatus
Int -> ReadS CreateAgentStatus
ReadS [CreateAgentStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAgentStatus]
$creadListPrec :: ReadPrec [CreateAgentStatus]
readPrec :: ReadPrec CreateAgentStatus
$creadPrec :: ReadPrec CreateAgentStatus
readList :: ReadS [CreateAgentStatus]
$creadList :: ReadS [CreateAgentStatus]
readsPrec :: Int -> ReadS CreateAgentStatus
$creadsPrec :: Int -> ReadS CreateAgentStatus
Prelude.Read, Int -> CreateAgentStatus -> ShowS
[CreateAgentStatus] -> ShowS
CreateAgentStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAgentStatus] -> ShowS
$cshowList :: [CreateAgentStatus] -> ShowS
show :: CreateAgentStatus -> String
$cshow :: CreateAgentStatus -> String
showsPrec :: Int -> CreateAgentStatus -> ShowS
$cshowsPrec :: Int -> CreateAgentStatus -> ShowS
Prelude.Show, forall x. Rep CreateAgentStatus x -> CreateAgentStatus
forall x. CreateAgentStatus -> Rep CreateAgentStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAgentStatus x -> CreateAgentStatus
$cfrom :: forall x. CreateAgentStatus -> Rep CreateAgentStatus x
Prelude.Generic)

-- |
-- Create a value of 'CreateAgentStatus' 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:
--
-- 'description', 'createAgentStatus_description' - The description of the status.
--
-- 'displayOrder', 'createAgentStatus_displayOrder' - The display order of the status.
--
-- 'tags', 'createAgentStatus_tags' - The tags used to organize, track, or control access for this resource.
-- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
--
-- 'instanceId', 'createAgentStatus_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
--
-- 'name', 'createAgentStatus_name' - The name of the status.
--
-- 'state', 'createAgentStatus_state' - The state of the status.
newCreateAgentStatus ::
  -- | 'instanceId'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  -- | 'state'
  AgentStatusState ->
  CreateAgentStatus
newCreateAgentStatus :: Text -> Text -> AgentStatusState -> CreateAgentStatus
newCreateAgentStatus Text
pInstanceId_ Text
pName_ AgentStatusState
pState_ =
  CreateAgentStatus'
    { $sel:description:CreateAgentStatus' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:displayOrder:CreateAgentStatus' :: Maybe Natural
displayOrder = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateAgentStatus' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:CreateAgentStatus' :: Text
instanceId = Text
pInstanceId_,
      $sel:name:CreateAgentStatus' :: Text
name = Text
pName_,
      $sel:state:CreateAgentStatus' :: AgentStatusState
state = AgentStatusState
pState_
    }

-- | The description of the status.
createAgentStatus_description :: Lens.Lens' CreateAgentStatus (Prelude.Maybe Prelude.Text)
createAgentStatus_description :: Lens' CreateAgentStatus (Maybe Text)
createAgentStatus_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {Maybe Text
description :: Maybe Text
$sel:description:CreateAgentStatus' :: CreateAgentStatus -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} Maybe Text
a -> CreateAgentStatus
s {$sel:description:CreateAgentStatus' :: Maybe Text
description = Maybe Text
a} :: CreateAgentStatus)

-- | The display order of the status.
createAgentStatus_displayOrder :: Lens.Lens' CreateAgentStatus (Prelude.Maybe Prelude.Natural)
createAgentStatus_displayOrder :: Lens' CreateAgentStatus (Maybe Natural)
createAgentStatus_displayOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {Maybe Natural
displayOrder :: Maybe Natural
$sel:displayOrder:CreateAgentStatus' :: CreateAgentStatus -> Maybe Natural
displayOrder} -> Maybe Natural
displayOrder) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} Maybe Natural
a -> CreateAgentStatus
s {$sel:displayOrder:CreateAgentStatus' :: Maybe Natural
displayOrder = Maybe Natural
a} :: CreateAgentStatus)

-- | The tags used to organize, track, or control access for this resource.
-- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
createAgentStatus_tags :: Lens.Lens' CreateAgentStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createAgentStatus_tags :: Lens' CreateAgentStatus (Maybe (HashMap Text Text))
createAgentStatus_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateAgentStatus' :: CreateAgentStatus -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} Maybe (HashMap Text Text)
a -> CreateAgentStatus
s {$sel:tags:CreateAgentStatus' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateAgentStatus) 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 identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
createAgentStatus_instanceId :: Lens.Lens' CreateAgentStatus Prelude.Text
createAgentStatus_instanceId :: Lens' CreateAgentStatus Text
createAgentStatus_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {Text
instanceId :: Text
$sel:instanceId:CreateAgentStatus' :: CreateAgentStatus -> Text
instanceId} -> Text
instanceId) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} Text
a -> CreateAgentStatus
s {$sel:instanceId:CreateAgentStatus' :: Text
instanceId = Text
a} :: CreateAgentStatus)

-- | The name of the status.
createAgentStatus_name :: Lens.Lens' CreateAgentStatus Prelude.Text
createAgentStatus_name :: Lens' CreateAgentStatus Text
createAgentStatus_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {Text
name :: Text
$sel:name:CreateAgentStatus' :: CreateAgentStatus -> Text
name} -> Text
name) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} Text
a -> CreateAgentStatus
s {$sel:name:CreateAgentStatus' :: Text
name = Text
a} :: CreateAgentStatus)

-- | The state of the status.
createAgentStatus_state :: Lens.Lens' CreateAgentStatus AgentStatusState
createAgentStatus_state :: Lens' CreateAgentStatus AgentStatusState
createAgentStatus_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatus' {AgentStatusState
state :: AgentStatusState
$sel:state:CreateAgentStatus' :: CreateAgentStatus -> AgentStatusState
state} -> AgentStatusState
state) (\s :: CreateAgentStatus
s@CreateAgentStatus' {} AgentStatusState
a -> CreateAgentStatus
s {$sel:state:CreateAgentStatus' :: AgentStatusState
state = AgentStatusState
a} :: CreateAgentStatus)

instance Core.AWSRequest CreateAgentStatus where
  type
    AWSResponse CreateAgentStatus =
      CreateAgentStatusResponse
  request :: (Service -> Service)
-> CreateAgentStatus -> Request CreateAgentStatus
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 CreateAgentStatus
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateAgentStatus)))
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 -> Maybe Text -> Int -> CreateAgentStatusResponse
CreateAgentStatusResponse'
            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
"AgentStatusARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AgentStatusId")
            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 CreateAgentStatus where
  hashWithSalt :: Int -> CreateAgentStatus -> Int
hashWithSalt Int
_salt CreateAgentStatus' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Text
AgentStatusState
state :: AgentStatusState
name :: Text
instanceId :: Text
tags :: Maybe (HashMap Text Text)
displayOrder :: Maybe Natural
description :: Maybe Text
$sel:state:CreateAgentStatus' :: CreateAgentStatus -> AgentStatusState
$sel:name:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:instanceId:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:tags:CreateAgentStatus' :: CreateAgentStatus -> Maybe (HashMap Text Text)
$sel:displayOrder:CreateAgentStatus' :: CreateAgentStatus -> Maybe Natural
$sel:description:CreateAgentStatus' :: CreateAgentStatus -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
displayOrder
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AgentStatusState
state

instance Prelude.NFData CreateAgentStatus where
  rnf :: CreateAgentStatus -> ()
rnf CreateAgentStatus' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Text
AgentStatusState
state :: AgentStatusState
name :: Text
instanceId :: Text
tags :: Maybe (HashMap Text Text)
displayOrder :: Maybe Natural
description :: Maybe Text
$sel:state:CreateAgentStatus' :: CreateAgentStatus -> AgentStatusState
$sel:name:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:instanceId:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:tags:CreateAgentStatus' :: CreateAgentStatus -> Maybe (HashMap Text Text)
$sel:displayOrder:CreateAgentStatus' :: CreateAgentStatus -> Maybe Natural
$sel:description:CreateAgentStatus' :: CreateAgentStatus -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
displayOrder
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AgentStatusState
state

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

instance Data.ToJSON CreateAgentStatus where
  toJSON :: CreateAgentStatus -> Value
toJSON CreateAgentStatus' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Text
AgentStatusState
state :: AgentStatusState
name :: Text
instanceId :: Text
tags :: Maybe (HashMap Text Text)
displayOrder :: Maybe Natural
description :: Maybe Text
$sel:state:CreateAgentStatus' :: CreateAgentStatus -> AgentStatusState
$sel:name:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:instanceId:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:tags:CreateAgentStatus' :: CreateAgentStatus -> Maybe (HashMap Text Text)
$sel:displayOrder:CreateAgentStatus' :: CreateAgentStatus -> Maybe Natural
$sel:description:CreateAgentStatus' :: CreateAgentStatus -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Description" 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
description,
            (Key
"DisplayOrder" 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 Natural
displayOrder,
            (Key
"Tags" 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 (HashMap Text Text)
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
            forall a. a -> Maybe a
Prelude.Just (Key
"State" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AgentStatusState
state)
          ]
      )

instance Data.ToPath CreateAgentStatus where
  toPath :: CreateAgentStatus -> ByteString
toPath CreateAgentStatus' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Text
AgentStatusState
state :: AgentStatusState
name :: Text
instanceId :: Text
tags :: Maybe (HashMap Text Text)
displayOrder :: Maybe Natural
description :: Maybe Text
$sel:state:CreateAgentStatus' :: CreateAgentStatus -> AgentStatusState
$sel:name:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:instanceId:CreateAgentStatus' :: CreateAgentStatus -> Text
$sel:tags:CreateAgentStatus' :: CreateAgentStatus -> Maybe (HashMap Text Text)
$sel:displayOrder:CreateAgentStatus' :: CreateAgentStatus -> Maybe Natural
$sel:description:CreateAgentStatus' :: CreateAgentStatus -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/agent-status/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
instanceId]

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

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

-- |
-- Create a value of 'CreateAgentStatusResponse' 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:
--
-- 'agentStatusARN', 'createAgentStatusResponse_agentStatusARN' - The Amazon Resource Name (ARN) of the agent status.
--
-- 'agentStatusId', 'createAgentStatusResponse_agentStatusId' - The identifier of the agent status.
--
-- 'httpStatus', 'createAgentStatusResponse_httpStatus' - The response's http status code.
newCreateAgentStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateAgentStatusResponse
newCreateAgentStatusResponse :: Int -> CreateAgentStatusResponse
newCreateAgentStatusResponse Int
pHttpStatus_ =
  CreateAgentStatusResponse'
    { $sel:agentStatusARN:CreateAgentStatusResponse' :: Maybe Text
agentStatusARN =
        forall a. Maybe a
Prelude.Nothing,
      $sel:agentStatusId:CreateAgentStatusResponse' :: Maybe Text
agentStatusId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateAgentStatusResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the agent status.
createAgentStatusResponse_agentStatusARN :: Lens.Lens' CreateAgentStatusResponse (Prelude.Maybe Prelude.Text)
createAgentStatusResponse_agentStatusARN :: Lens' CreateAgentStatusResponse (Maybe Text)
createAgentStatusResponse_agentStatusARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatusResponse' {Maybe Text
agentStatusARN :: Maybe Text
$sel:agentStatusARN:CreateAgentStatusResponse' :: CreateAgentStatusResponse -> Maybe Text
agentStatusARN} -> Maybe Text
agentStatusARN) (\s :: CreateAgentStatusResponse
s@CreateAgentStatusResponse' {} Maybe Text
a -> CreateAgentStatusResponse
s {$sel:agentStatusARN:CreateAgentStatusResponse' :: Maybe Text
agentStatusARN = Maybe Text
a} :: CreateAgentStatusResponse)

-- | The identifier of the agent status.
createAgentStatusResponse_agentStatusId :: Lens.Lens' CreateAgentStatusResponse (Prelude.Maybe Prelude.Text)
createAgentStatusResponse_agentStatusId :: Lens' CreateAgentStatusResponse (Maybe Text)
createAgentStatusResponse_agentStatusId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAgentStatusResponse' {Maybe Text
agentStatusId :: Maybe Text
$sel:agentStatusId:CreateAgentStatusResponse' :: CreateAgentStatusResponse -> Maybe Text
agentStatusId} -> Maybe Text
agentStatusId) (\s :: CreateAgentStatusResponse
s@CreateAgentStatusResponse' {} Maybe Text
a -> CreateAgentStatusResponse
s {$sel:agentStatusId:CreateAgentStatusResponse' :: Maybe Text
agentStatusId = Maybe Text
a} :: CreateAgentStatusResponse)

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

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