{-# 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.ListAgentStatuses
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This API is in preview release for Amazon Connect and is subject to
-- change.
--
-- Lists agent statuses.
--
-- This operation returns paginated results.
module Amazonka.Connect.ListAgentStatuses
  ( -- * Creating a Request
    ListAgentStatuses (..),
    newListAgentStatuses,

    -- * Request Lenses
    listAgentStatuses_agentStatusTypes,
    listAgentStatuses_nextToken,
    listAgentStatuses_maxResults,
    listAgentStatuses_instanceId,

    -- * Destructuring the Response
    ListAgentStatusesResponse (..),
    newListAgentStatusesResponse,

    -- * Response Lenses
    listAgentStatusesResponse_nextToken,
    listAgentStatusesResponse_agentStatusSummaryList,
    listAgentStatusesResponse_httpStatus,
  )
where

import Amazonka.Connect.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newListAgentStatuses' smart constructor.
data ListAgentStatuses = ListAgentStatuses'
  { -- | Available agent status types.
    ListAgentStatuses -> Maybe [AgentStatusType]
agentStatusTypes :: Prelude.Maybe [AgentStatusType],
    -- | The token for the next set of results. Use the value returned in the
    -- previous response in the next request to retrieve the next set of
    -- results.
    ListAgentStatuses -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of results to return per page.
    ListAgentStatuses -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    ListAgentStatuses -> Text
instanceId :: Prelude.Text
  }
  deriving (ListAgentStatuses -> ListAgentStatuses -> Bool
(ListAgentStatuses -> ListAgentStatuses -> Bool)
-> (ListAgentStatuses -> ListAgentStatuses -> Bool)
-> Eq ListAgentStatuses
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAgentStatuses -> ListAgentStatuses -> Bool
$c/= :: ListAgentStatuses -> ListAgentStatuses -> Bool
== :: ListAgentStatuses -> ListAgentStatuses -> Bool
$c== :: ListAgentStatuses -> ListAgentStatuses -> Bool
Prelude.Eq, ReadPrec [ListAgentStatuses]
ReadPrec ListAgentStatuses
Int -> ReadS ListAgentStatuses
ReadS [ListAgentStatuses]
(Int -> ReadS ListAgentStatuses)
-> ReadS [ListAgentStatuses]
-> ReadPrec ListAgentStatuses
-> ReadPrec [ListAgentStatuses]
-> Read ListAgentStatuses
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAgentStatuses]
$creadListPrec :: ReadPrec [ListAgentStatuses]
readPrec :: ReadPrec ListAgentStatuses
$creadPrec :: ReadPrec ListAgentStatuses
readList :: ReadS [ListAgentStatuses]
$creadList :: ReadS [ListAgentStatuses]
readsPrec :: Int -> ReadS ListAgentStatuses
$creadsPrec :: Int -> ReadS ListAgentStatuses
Prelude.Read, Int -> ListAgentStatuses -> ShowS
[ListAgentStatuses] -> ShowS
ListAgentStatuses -> String
(Int -> ListAgentStatuses -> ShowS)
-> (ListAgentStatuses -> String)
-> ([ListAgentStatuses] -> ShowS)
-> Show ListAgentStatuses
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAgentStatuses] -> ShowS
$cshowList :: [ListAgentStatuses] -> ShowS
show :: ListAgentStatuses -> String
$cshow :: ListAgentStatuses -> String
showsPrec :: Int -> ListAgentStatuses -> ShowS
$cshowsPrec :: Int -> ListAgentStatuses -> ShowS
Prelude.Show, (forall x. ListAgentStatuses -> Rep ListAgentStatuses x)
-> (forall x. Rep ListAgentStatuses x -> ListAgentStatuses)
-> Generic ListAgentStatuses
forall x. Rep ListAgentStatuses x -> ListAgentStatuses
forall x. ListAgentStatuses -> Rep ListAgentStatuses x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListAgentStatuses x -> ListAgentStatuses
$cfrom :: forall x. ListAgentStatuses -> Rep ListAgentStatuses x
Prelude.Generic)

-- |
-- Create a value of 'ListAgentStatuses' 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:
--
-- 'agentStatusTypes', 'listAgentStatuses_agentStatusTypes' - Available agent status types.
--
-- 'nextToken', 'listAgentStatuses_nextToken' - The token for the next set of results. Use the value returned in the
-- previous response in the next request to retrieve the next set of
-- results.
--
-- 'maxResults', 'listAgentStatuses_maxResults' - The maximum number of results to return per page.
--
-- 'instanceId', 'listAgentStatuses_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
newListAgentStatuses ::
  -- | 'instanceId'
  Prelude.Text ->
  ListAgentStatuses
newListAgentStatuses :: Text -> ListAgentStatuses
newListAgentStatuses Text
pInstanceId_ =
  ListAgentStatuses' :: Maybe [AgentStatusType]
-> Maybe Text -> Maybe Natural -> Text -> ListAgentStatuses
ListAgentStatuses'
    { $sel:agentStatusTypes:ListAgentStatuses' :: Maybe [AgentStatusType]
agentStatusTypes =
        Maybe [AgentStatusType]
forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListAgentStatuses' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListAgentStatuses' :: Maybe Natural
maxResults = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:ListAgentStatuses' :: Text
instanceId = Text
pInstanceId_
    }

-- | Available agent status types.
listAgentStatuses_agentStatusTypes :: Lens.Lens' ListAgentStatuses (Prelude.Maybe [AgentStatusType])
listAgentStatuses_agentStatusTypes :: (Maybe [AgentStatusType] -> f (Maybe [AgentStatusType]))
-> ListAgentStatuses -> f ListAgentStatuses
listAgentStatuses_agentStatusTypes = (ListAgentStatuses -> Maybe [AgentStatusType])
-> (ListAgentStatuses
    -> Maybe [AgentStatusType] -> ListAgentStatuses)
-> Lens
     ListAgentStatuses
     ListAgentStatuses
     (Maybe [AgentStatusType])
     (Maybe [AgentStatusType])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatuses' {Maybe [AgentStatusType]
agentStatusTypes :: Maybe [AgentStatusType]
$sel:agentStatusTypes:ListAgentStatuses' :: ListAgentStatuses -> Maybe [AgentStatusType]
agentStatusTypes} -> Maybe [AgentStatusType]
agentStatusTypes) (\s :: ListAgentStatuses
s@ListAgentStatuses' {} Maybe [AgentStatusType]
a -> ListAgentStatuses
s {$sel:agentStatusTypes:ListAgentStatuses' :: Maybe [AgentStatusType]
agentStatusTypes = Maybe [AgentStatusType]
a} :: ListAgentStatuses) ((Maybe [AgentStatusType] -> f (Maybe [AgentStatusType]))
 -> ListAgentStatuses -> f ListAgentStatuses)
-> ((Maybe [AgentStatusType] -> f (Maybe [AgentStatusType]))
    -> Maybe [AgentStatusType] -> f (Maybe [AgentStatusType]))
-> (Maybe [AgentStatusType] -> f (Maybe [AgentStatusType]))
-> ListAgentStatuses
-> f ListAgentStatuses
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AgentStatusType]
  [AgentStatusType]
  [AgentStatusType]
  [AgentStatusType]
-> Iso
     (Maybe [AgentStatusType])
     (Maybe [AgentStatusType])
     (Maybe [AgentStatusType])
     (Maybe [AgentStatusType])
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 AnIso
  [AgentStatusType]
  [AgentStatusType]
  [AgentStatusType]
  [AgentStatusType]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The token for the next set of results. Use the value returned in the
-- previous response in the next request to retrieve the next set of
-- results.
listAgentStatuses_nextToken :: Lens.Lens' ListAgentStatuses (Prelude.Maybe Prelude.Text)
listAgentStatuses_nextToken :: (Maybe Text -> f (Maybe Text))
-> ListAgentStatuses -> f ListAgentStatuses
listAgentStatuses_nextToken = (ListAgentStatuses -> Maybe Text)
-> (ListAgentStatuses -> Maybe Text -> ListAgentStatuses)
-> Lens
     ListAgentStatuses ListAgentStatuses (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatuses' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAgentStatuses' :: ListAgentStatuses -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAgentStatuses
s@ListAgentStatuses' {} Maybe Text
a -> ListAgentStatuses
s {$sel:nextToken:ListAgentStatuses' :: Maybe Text
nextToken = Maybe Text
a} :: ListAgentStatuses)

-- | The maximum number of results to return per page.
listAgentStatuses_maxResults :: Lens.Lens' ListAgentStatuses (Prelude.Maybe Prelude.Natural)
listAgentStatuses_maxResults :: (Maybe Natural -> f (Maybe Natural))
-> ListAgentStatuses -> f ListAgentStatuses
listAgentStatuses_maxResults = (ListAgentStatuses -> Maybe Natural)
-> (ListAgentStatuses -> Maybe Natural -> ListAgentStatuses)
-> Lens
     ListAgentStatuses ListAgentStatuses (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatuses' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListAgentStatuses' :: ListAgentStatuses -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListAgentStatuses
s@ListAgentStatuses' {} Maybe Natural
a -> ListAgentStatuses
s {$sel:maxResults:ListAgentStatuses' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListAgentStatuses)

-- | The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
listAgentStatuses_instanceId :: Lens.Lens' ListAgentStatuses Prelude.Text
listAgentStatuses_instanceId :: (Text -> f Text) -> ListAgentStatuses -> f ListAgentStatuses
listAgentStatuses_instanceId = (ListAgentStatuses -> Text)
-> (ListAgentStatuses -> Text -> ListAgentStatuses)
-> Lens ListAgentStatuses ListAgentStatuses Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatuses' {Text
instanceId :: Text
$sel:instanceId:ListAgentStatuses' :: ListAgentStatuses -> Text
instanceId} -> Text
instanceId) (\s :: ListAgentStatuses
s@ListAgentStatuses' {} Text
a -> ListAgentStatuses
s {$sel:instanceId:ListAgentStatuses' :: Text
instanceId = Text
a} :: ListAgentStatuses)

instance Core.AWSPager ListAgentStatuses where
  page :: ListAgentStatuses
-> AWSResponse ListAgentStatuses -> Maybe ListAgentStatuses
page ListAgentStatuses
rq AWSResponse ListAgentStatuses
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListAgentStatuses
ListAgentStatusesResponse
rs
            ListAgentStatusesResponse
-> Getting (First Text) ListAgentStatusesResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListAgentStatusesResponse
-> Const (First Text) ListAgentStatusesResponse
Lens' ListAgentStatusesResponse (Maybe Text)
listAgentStatusesResponse_nextToken
              ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListAgentStatusesResponse
 -> Const (First Text) ListAgentStatusesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListAgentStatusesResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe ListAgentStatuses
forall a. Maybe a
Prelude.Nothing
    | Maybe [AgentStatusSummary] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListAgentStatuses
ListAgentStatusesResponse
rs
            ListAgentStatusesResponse
-> Getting
     (First [AgentStatusSummary])
     ListAgentStatusesResponse
     [AgentStatusSummary]
-> Maybe [AgentStatusSummary]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [AgentStatusSummary]
 -> Const (First [AgentStatusSummary]) (Maybe [AgentStatusSummary]))
-> ListAgentStatusesResponse
-> Const (First [AgentStatusSummary]) ListAgentStatusesResponse
Lens' ListAgentStatusesResponse (Maybe [AgentStatusSummary])
listAgentStatusesResponse_agentStatusSummaryList
              ((Maybe [AgentStatusSummary]
  -> Const (First [AgentStatusSummary]) (Maybe [AgentStatusSummary]))
 -> ListAgentStatusesResponse
 -> Const (First [AgentStatusSummary]) ListAgentStatusesResponse)
-> (([AgentStatusSummary]
     -> Const (First [AgentStatusSummary]) [AgentStatusSummary])
    -> Maybe [AgentStatusSummary]
    -> Const (First [AgentStatusSummary]) (Maybe [AgentStatusSummary]))
-> Getting
     (First [AgentStatusSummary])
     ListAgentStatusesResponse
     [AgentStatusSummary]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([AgentStatusSummary]
 -> Const (First [AgentStatusSummary]) [AgentStatusSummary])
-> Maybe [AgentStatusSummary]
-> Const (First [AgentStatusSummary]) (Maybe [AgentStatusSummary])
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
      Maybe ListAgentStatuses
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
      ListAgentStatuses -> Maybe ListAgentStatuses
forall a. a -> Maybe a
Prelude.Just (ListAgentStatuses -> Maybe ListAgentStatuses)
-> ListAgentStatuses -> Maybe ListAgentStatuses
forall a b. (a -> b) -> a -> b
Prelude.$
        ListAgentStatuses
rq
          ListAgentStatuses
-> (ListAgentStatuses -> ListAgentStatuses) -> ListAgentStatuses
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> ListAgentStatuses -> Identity ListAgentStatuses
Lens ListAgentStatuses ListAgentStatuses (Maybe Text) (Maybe Text)
listAgentStatuses_nextToken
          ((Maybe Text -> Identity (Maybe Text))
 -> ListAgentStatuses -> Identity ListAgentStatuses)
-> Maybe Text -> ListAgentStatuses -> ListAgentStatuses
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListAgentStatuses
ListAgentStatusesResponse
rs
          ListAgentStatusesResponse
-> Getting (First Text) ListAgentStatusesResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListAgentStatusesResponse
-> Const (First Text) ListAgentStatusesResponse
Lens' ListAgentStatusesResponse (Maybe Text)
listAgentStatusesResponse_nextToken
            ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListAgentStatusesResponse
 -> Const (First Text) ListAgentStatusesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListAgentStatusesResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest ListAgentStatuses where
  type
    AWSResponse ListAgentStatuses =
      ListAgentStatusesResponse
  request :: ListAgentStatuses -> Request ListAgentStatuses
request = Service -> ListAgentStatuses -> Request ListAgentStatuses
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy ListAgentStatuses
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListAgentStatuses)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse ListAgentStatuses))
-> Logger
-> Service
-> Proxy ListAgentStatuses
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListAgentStatuses)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe [AgentStatusSummary] -> Int -> ListAgentStatusesResponse
ListAgentStatusesResponse'
            (Maybe Text
 -> Maybe [AgentStatusSummary] -> Int -> ListAgentStatusesResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [AgentStatusSummary] -> Int -> ListAgentStatusesResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"NextToken")
            Either
  String
  (Maybe [AgentStatusSummary] -> Int -> ListAgentStatusesResponse)
-> Either String (Maybe [AgentStatusSummary])
-> Either String (Int -> ListAgentStatusesResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text -> Either String (Maybe (Maybe [AgentStatusSummary]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AgentStatusSummaryList"
                            Either String (Maybe (Maybe [AgentStatusSummary]))
-> Maybe [AgentStatusSummary]
-> Either String (Maybe [AgentStatusSummary])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [AgentStatusSummary]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either String (Int -> ListAgentStatusesResponse)
-> Either String Int -> Either String ListAgentStatusesResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ListAgentStatuses

instance Prelude.NFData ListAgentStatuses

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

instance Core.ToPath ListAgentStatuses where
  toPath :: ListAgentStatuses -> ByteString
toPath ListAgentStatuses' {Maybe Natural
Maybe [AgentStatusType]
Maybe Text
Text
instanceId :: Text
maxResults :: Maybe Natural
nextToken :: Maybe Text
agentStatusTypes :: Maybe [AgentStatusType]
$sel:instanceId:ListAgentStatuses' :: ListAgentStatuses -> Text
$sel:maxResults:ListAgentStatuses' :: ListAgentStatuses -> Maybe Natural
$sel:nextToken:ListAgentStatuses' :: ListAgentStatuses -> Maybe Text
$sel:agentStatusTypes:ListAgentStatuses' :: ListAgentStatuses -> Maybe [AgentStatusType]
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/agent-status/", Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
instanceId]

instance Core.ToQuery ListAgentStatuses where
  toQuery :: ListAgentStatuses -> QueryString
toQuery ListAgentStatuses' {Maybe Natural
Maybe [AgentStatusType]
Maybe Text
Text
instanceId :: Text
maxResults :: Maybe Natural
nextToken :: Maybe Text
agentStatusTypes :: Maybe [AgentStatusType]
$sel:instanceId:ListAgentStatuses' :: ListAgentStatuses -> Text
$sel:maxResults:ListAgentStatuses' :: ListAgentStatuses -> Maybe Natural
$sel:nextToken:ListAgentStatuses' :: ListAgentStatuses -> Maybe Text
$sel:agentStatusTypes:ListAgentStatuses' :: ListAgentStatuses -> Maybe [AgentStatusType]
..} =
    [QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"AgentStatusTypes"
          ByteString -> QueryString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe QueryString -> QueryString
forall a. ToQuery a => a -> QueryString
Core.toQuery
            ( ByteString -> [AgentStatusType] -> QueryString
forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Core.toQueryList ByteString
"member"
                ([AgentStatusType] -> QueryString)
-> Maybe [AgentStatusType] -> Maybe QueryString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AgentStatusType]
agentStatusTypes
            ),
        ByteString
"nextToken" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Text
nextToken,
        ByteString
"maxResults" ByteString -> Maybe Natural -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Natural
maxResults
      ]

-- | /See:/ 'newListAgentStatusesResponse' smart constructor.
data ListAgentStatusesResponse = ListAgentStatusesResponse'
  { -- | If there are additional results, this is the token for the next set of
    -- results.
    ListAgentStatusesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A summary of agent statuses.
    ListAgentStatusesResponse -> Maybe [AgentStatusSummary]
agentStatusSummaryList :: Prelude.Maybe [AgentStatusSummary],
    -- | The response's http status code.
    ListAgentStatusesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool
(ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool)
-> (ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool)
-> Eq ListAgentStatusesResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool
$c/= :: ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool
== :: ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool
$c== :: ListAgentStatusesResponse -> ListAgentStatusesResponse -> Bool
Prelude.Eq, ReadPrec [ListAgentStatusesResponse]
ReadPrec ListAgentStatusesResponse
Int -> ReadS ListAgentStatusesResponse
ReadS [ListAgentStatusesResponse]
(Int -> ReadS ListAgentStatusesResponse)
-> ReadS [ListAgentStatusesResponse]
-> ReadPrec ListAgentStatusesResponse
-> ReadPrec [ListAgentStatusesResponse]
-> Read ListAgentStatusesResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAgentStatusesResponse]
$creadListPrec :: ReadPrec [ListAgentStatusesResponse]
readPrec :: ReadPrec ListAgentStatusesResponse
$creadPrec :: ReadPrec ListAgentStatusesResponse
readList :: ReadS [ListAgentStatusesResponse]
$creadList :: ReadS [ListAgentStatusesResponse]
readsPrec :: Int -> ReadS ListAgentStatusesResponse
$creadsPrec :: Int -> ReadS ListAgentStatusesResponse
Prelude.Read, Int -> ListAgentStatusesResponse -> ShowS
[ListAgentStatusesResponse] -> ShowS
ListAgentStatusesResponse -> String
(Int -> ListAgentStatusesResponse -> ShowS)
-> (ListAgentStatusesResponse -> String)
-> ([ListAgentStatusesResponse] -> ShowS)
-> Show ListAgentStatusesResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAgentStatusesResponse] -> ShowS
$cshowList :: [ListAgentStatusesResponse] -> ShowS
show :: ListAgentStatusesResponse -> String
$cshow :: ListAgentStatusesResponse -> String
showsPrec :: Int -> ListAgentStatusesResponse -> ShowS
$cshowsPrec :: Int -> ListAgentStatusesResponse -> ShowS
Prelude.Show, (forall x.
 ListAgentStatusesResponse -> Rep ListAgentStatusesResponse x)
-> (forall x.
    Rep ListAgentStatusesResponse x -> ListAgentStatusesResponse)
-> Generic ListAgentStatusesResponse
forall x.
Rep ListAgentStatusesResponse x -> ListAgentStatusesResponse
forall x.
ListAgentStatusesResponse -> Rep ListAgentStatusesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAgentStatusesResponse x -> ListAgentStatusesResponse
$cfrom :: forall x.
ListAgentStatusesResponse -> Rep ListAgentStatusesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAgentStatusesResponse' 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:
--
-- 'nextToken', 'listAgentStatusesResponse_nextToken' - If there are additional results, this is the token for the next set of
-- results.
--
-- 'agentStatusSummaryList', 'listAgentStatusesResponse_agentStatusSummaryList' - A summary of agent statuses.
--
-- 'httpStatus', 'listAgentStatusesResponse_httpStatus' - The response's http status code.
newListAgentStatusesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAgentStatusesResponse
newListAgentStatusesResponse :: Int -> ListAgentStatusesResponse
newListAgentStatusesResponse Int
pHttpStatus_ =
  ListAgentStatusesResponse' :: Maybe Text
-> Maybe [AgentStatusSummary] -> Int -> ListAgentStatusesResponse
ListAgentStatusesResponse'
    { $sel:nextToken:ListAgentStatusesResponse' :: Maybe Text
nextToken =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:agentStatusSummaryList:ListAgentStatusesResponse' :: Maybe [AgentStatusSummary]
agentStatusSummaryList = Maybe [AgentStatusSummary]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAgentStatusesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | If there are additional results, this is the token for the next set of
-- results.
listAgentStatusesResponse_nextToken :: Lens.Lens' ListAgentStatusesResponse (Prelude.Maybe Prelude.Text)
listAgentStatusesResponse_nextToken :: (Maybe Text -> f (Maybe Text))
-> ListAgentStatusesResponse -> f ListAgentStatusesResponse
listAgentStatusesResponse_nextToken = (ListAgentStatusesResponse -> Maybe Text)
-> (ListAgentStatusesResponse
    -> Maybe Text -> ListAgentStatusesResponse)
-> Lens' ListAgentStatusesResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatusesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAgentStatusesResponse' :: ListAgentStatusesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAgentStatusesResponse
s@ListAgentStatusesResponse' {} Maybe Text
a -> ListAgentStatusesResponse
s {$sel:nextToken:ListAgentStatusesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAgentStatusesResponse)

-- | A summary of agent statuses.
listAgentStatusesResponse_agentStatusSummaryList :: Lens.Lens' ListAgentStatusesResponse (Prelude.Maybe [AgentStatusSummary])
listAgentStatusesResponse_agentStatusSummaryList :: (Maybe [AgentStatusSummary] -> f (Maybe [AgentStatusSummary]))
-> ListAgentStatusesResponse -> f ListAgentStatusesResponse
listAgentStatusesResponse_agentStatusSummaryList = (ListAgentStatusesResponse -> Maybe [AgentStatusSummary])
-> (ListAgentStatusesResponse
    -> Maybe [AgentStatusSummary] -> ListAgentStatusesResponse)
-> Lens' ListAgentStatusesResponse (Maybe [AgentStatusSummary])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAgentStatusesResponse' {Maybe [AgentStatusSummary]
agentStatusSummaryList :: Maybe [AgentStatusSummary]
$sel:agentStatusSummaryList:ListAgentStatusesResponse' :: ListAgentStatusesResponse -> Maybe [AgentStatusSummary]
agentStatusSummaryList} -> Maybe [AgentStatusSummary]
agentStatusSummaryList) (\s :: ListAgentStatusesResponse
s@ListAgentStatusesResponse' {} Maybe [AgentStatusSummary]
a -> ListAgentStatusesResponse
s {$sel:agentStatusSummaryList:ListAgentStatusesResponse' :: Maybe [AgentStatusSummary]
agentStatusSummaryList = Maybe [AgentStatusSummary]
a} :: ListAgentStatusesResponse) ((Maybe [AgentStatusSummary] -> f (Maybe [AgentStatusSummary]))
 -> ListAgentStatusesResponse -> f ListAgentStatusesResponse)
-> ((Maybe [AgentStatusSummary] -> f (Maybe [AgentStatusSummary]))
    -> Maybe [AgentStatusSummary] -> f (Maybe [AgentStatusSummary]))
-> (Maybe [AgentStatusSummary] -> f (Maybe [AgentStatusSummary]))
-> ListAgentStatusesResponse
-> f ListAgentStatusesResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AgentStatusSummary]
  [AgentStatusSummary]
  [AgentStatusSummary]
  [AgentStatusSummary]
-> Iso
     (Maybe [AgentStatusSummary])
     (Maybe [AgentStatusSummary])
     (Maybe [AgentStatusSummary])
     (Maybe [AgentStatusSummary])
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 AnIso
  [AgentStatusSummary]
  [AgentStatusSummary]
  [AgentStatusSummary]
  [AgentStatusSummary]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.NFData ListAgentStatusesResponse