{-# 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.CodeDeploy.ListDeploymentTargets
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns an array of target IDs that are associated a deployment.
--
-- This operation returns paginated results.
module Amazonka.CodeDeploy.ListDeploymentTargets
  ( -- * Creating a Request
    ListDeploymentTargets (..),
    newListDeploymentTargets,

    -- * Request Lenses
    listDeploymentTargets_deploymentId,
    listDeploymentTargets_nextToken,
    listDeploymentTargets_targetFilters,

    -- * Destructuring the Response
    ListDeploymentTargetsResponse (..),
    newListDeploymentTargetsResponse,

    -- * Response Lenses
    listDeploymentTargetsResponse_nextToken,
    listDeploymentTargetsResponse_targetIds,
    listDeploymentTargetsResponse_httpStatus,
  )
where

import Amazonka.CodeDeploy.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:/ 'newListDeploymentTargets' smart constructor.
data ListDeploymentTargets = ListDeploymentTargets'
  { -- | The unique ID of a deployment.
    ListDeploymentTargets -> Maybe Text
deploymentId :: Prelude.Maybe Prelude.Text,
    -- | A token identifier returned from the previous @ListDeploymentTargets@
    -- call. It can be used to return the next set of deployment targets in the
    -- list.
    ListDeploymentTargets -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A key used to filter the returned targets. The two valid values are:
    --
    -- -   @TargetStatus@ - A @TargetStatus@ filter string can be @Failed@,
    --     @InProgress@, @Pending@, @Ready@, @Skipped@, @Succeeded@, or
    --     @Unknown@.
    --
    -- -   @ServerInstanceLabel@ - A @ServerInstanceLabel@ filter string can be
    --     @Blue@ or @Green@.
    ListDeploymentTargets -> Maybe (HashMap TargetFilterName [Text])
targetFilters :: Prelude.Maybe (Prelude.HashMap TargetFilterName [Prelude.Text])
  }
  deriving (ListDeploymentTargets -> ListDeploymentTargets -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListDeploymentTargets -> ListDeploymentTargets -> Bool
$c/= :: ListDeploymentTargets -> ListDeploymentTargets -> Bool
== :: ListDeploymentTargets -> ListDeploymentTargets -> Bool
$c== :: ListDeploymentTargets -> ListDeploymentTargets -> Bool
Prelude.Eq, ReadPrec [ListDeploymentTargets]
ReadPrec ListDeploymentTargets
Int -> ReadS ListDeploymentTargets
ReadS [ListDeploymentTargets]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListDeploymentTargets]
$creadListPrec :: ReadPrec [ListDeploymentTargets]
readPrec :: ReadPrec ListDeploymentTargets
$creadPrec :: ReadPrec ListDeploymentTargets
readList :: ReadS [ListDeploymentTargets]
$creadList :: ReadS [ListDeploymentTargets]
readsPrec :: Int -> ReadS ListDeploymentTargets
$creadsPrec :: Int -> ReadS ListDeploymentTargets
Prelude.Read, Int -> ListDeploymentTargets -> ShowS
[ListDeploymentTargets] -> ShowS
ListDeploymentTargets -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListDeploymentTargets] -> ShowS
$cshowList :: [ListDeploymentTargets] -> ShowS
show :: ListDeploymentTargets -> String
$cshow :: ListDeploymentTargets -> String
showsPrec :: Int -> ListDeploymentTargets -> ShowS
$cshowsPrec :: Int -> ListDeploymentTargets -> ShowS
Prelude.Show, forall x. Rep ListDeploymentTargets x -> ListDeploymentTargets
forall x. ListDeploymentTargets -> Rep ListDeploymentTargets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListDeploymentTargets x -> ListDeploymentTargets
$cfrom :: forall x. ListDeploymentTargets -> Rep ListDeploymentTargets x
Prelude.Generic)

-- |
-- Create a value of 'ListDeploymentTargets' 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:
--
-- 'deploymentId', 'listDeploymentTargets_deploymentId' - The unique ID of a deployment.
--
-- 'nextToken', 'listDeploymentTargets_nextToken' - A token identifier returned from the previous @ListDeploymentTargets@
-- call. It can be used to return the next set of deployment targets in the
-- list.
--
-- 'targetFilters', 'listDeploymentTargets_targetFilters' - A key used to filter the returned targets. The two valid values are:
--
-- -   @TargetStatus@ - A @TargetStatus@ filter string can be @Failed@,
--     @InProgress@, @Pending@, @Ready@, @Skipped@, @Succeeded@, or
--     @Unknown@.
--
-- -   @ServerInstanceLabel@ - A @ServerInstanceLabel@ filter string can be
--     @Blue@ or @Green@.
newListDeploymentTargets ::
  ListDeploymentTargets
newListDeploymentTargets :: ListDeploymentTargets
newListDeploymentTargets =
  ListDeploymentTargets'
    { $sel:deploymentId:ListDeploymentTargets' :: Maybe Text
deploymentId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListDeploymentTargets' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:targetFilters:ListDeploymentTargets' :: Maybe (HashMap TargetFilterName [Text])
targetFilters = forall a. Maybe a
Prelude.Nothing
    }

-- | The unique ID of a deployment.
listDeploymentTargets_deploymentId :: Lens.Lens' ListDeploymentTargets (Prelude.Maybe Prelude.Text)
listDeploymentTargets_deploymentId :: Lens' ListDeploymentTargets (Maybe Text)
listDeploymentTargets_deploymentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargets' {Maybe Text
deploymentId :: Maybe Text
$sel:deploymentId:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
deploymentId} -> Maybe Text
deploymentId) (\s :: ListDeploymentTargets
s@ListDeploymentTargets' {} Maybe Text
a -> ListDeploymentTargets
s {$sel:deploymentId:ListDeploymentTargets' :: Maybe Text
deploymentId = Maybe Text
a} :: ListDeploymentTargets)

-- | A token identifier returned from the previous @ListDeploymentTargets@
-- call. It can be used to return the next set of deployment targets in the
-- list.
listDeploymentTargets_nextToken :: Lens.Lens' ListDeploymentTargets (Prelude.Maybe Prelude.Text)
listDeploymentTargets_nextToken :: Lens' ListDeploymentTargets (Maybe Text)
listDeploymentTargets_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargets' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListDeploymentTargets
s@ListDeploymentTargets' {} Maybe Text
a -> ListDeploymentTargets
s {$sel:nextToken:ListDeploymentTargets' :: Maybe Text
nextToken = Maybe Text
a} :: ListDeploymentTargets)

-- | A key used to filter the returned targets. The two valid values are:
--
-- -   @TargetStatus@ - A @TargetStatus@ filter string can be @Failed@,
--     @InProgress@, @Pending@, @Ready@, @Skipped@, @Succeeded@, or
--     @Unknown@.
--
-- -   @ServerInstanceLabel@ - A @ServerInstanceLabel@ filter string can be
--     @Blue@ or @Green@.
listDeploymentTargets_targetFilters :: Lens.Lens' ListDeploymentTargets (Prelude.Maybe (Prelude.HashMap TargetFilterName [Prelude.Text]))
listDeploymentTargets_targetFilters :: Lens'
  ListDeploymentTargets (Maybe (HashMap TargetFilterName [Text]))
listDeploymentTargets_targetFilters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargets' {Maybe (HashMap TargetFilterName [Text])
targetFilters :: Maybe (HashMap TargetFilterName [Text])
$sel:targetFilters:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe (HashMap TargetFilterName [Text])
targetFilters} -> Maybe (HashMap TargetFilterName [Text])
targetFilters) (\s :: ListDeploymentTargets
s@ListDeploymentTargets' {} Maybe (HashMap TargetFilterName [Text])
a -> ListDeploymentTargets
s {$sel:targetFilters:ListDeploymentTargets' :: Maybe (HashMap TargetFilterName [Text])
targetFilters = Maybe (HashMap TargetFilterName [Text])
a} :: ListDeploymentTargets) 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

instance Core.AWSPager ListDeploymentTargets where
  page :: ListDeploymentTargets
-> AWSResponse ListDeploymentTargets -> Maybe ListDeploymentTargets
page ListDeploymentTargets
rq AWSResponse ListDeploymentTargets
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListDeploymentTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDeploymentTargetsResponse (Maybe Text)
listDeploymentTargetsResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListDeploymentTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDeploymentTargetsResponse (Maybe [Text])
listDeploymentTargetsResponse_targetIds
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListDeploymentTargets
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListDeploymentTargets (Maybe Text)
listDeploymentTargets_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListDeploymentTargets
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListDeploymentTargetsResponse (Maybe Text)
listDeploymentTargetsResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest ListDeploymentTargets where
  type
    AWSResponse ListDeploymentTargets =
      ListDeploymentTargetsResponse
  request :: (Service -> Service)
-> ListDeploymentTargets -> Request ListDeploymentTargets
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 ListDeploymentTargets
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListDeploymentTargets)))
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 -> ListDeploymentTargetsResponse
ListDeploymentTargetsResponse'
            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
"nextToken")
            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
"targetIds" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ListDeploymentTargets where
  hashWithSalt :: Int -> ListDeploymentTargets -> Int
hashWithSalt Int
_salt ListDeploymentTargets' {Maybe Text
Maybe (HashMap TargetFilterName [Text])
targetFilters :: Maybe (HashMap TargetFilterName [Text])
nextToken :: Maybe Text
deploymentId :: Maybe Text
$sel:targetFilters:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe (HashMap TargetFilterName [Text])
$sel:nextToken:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
$sel:deploymentId:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
deploymentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap TargetFilterName [Text])
targetFilters

instance Prelude.NFData ListDeploymentTargets where
  rnf :: ListDeploymentTargets -> ()
rnf ListDeploymentTargets' {Maybe Text
Maybe (HashMap TargetFilterName [Text])
targetFilters :: Maybe (HashMap TargetFilterName [Text])
nextToken :: Maybe Text
deploymentId :: Maybe Text
$sel:targetFilters:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe (HashMap TargetFilterName [Text])
$sel:nextToken:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
$sel:deploymentId:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deploymentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap TargetFilterName [Text])
targetFilters

instance Data.ToHeaders ListDeploymentTargets where
  toHeaders :: ListDeploymentTargets -> 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
"CodeDeploy_20141006.ListDeploymentTargets" ::
                          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 ListDeploymentTargets where
  toJSON :: ListDeploymentTargets -> Value
toJSON ListDeploymentTargets' {Maybe Text
Maybe (HashMap TargetFilterName [Text])
targetFilters :: Maybe (HashMap TargetFilterName [Text])
nextToken :: Maybe Text
deploymentId :: Maybe Text
$sel:targetFilters:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe (HashMap TargetFilterName [Text])
$sel:nextToken:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
$sel:deploymentId:ListDeploymentTargets' :: ListDeploymentTargets -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"deploymentId" 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
deploymentId,
            (Key
"nextToken" 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
nextToken,
            (Key
"targetFilters" 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 TargetFilterName [Text])
targetFilters
          ]
      )

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

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

-- | /See:/ 'newListDeploymentTargetsResponse' smart constructor.
data ListDeploymentTargetsResponse = ListDeploymentTargetsResponse'
  { -- | If a large amount of information is returned, a token identifier is also
    -- returned. It can be used in a subsequent @ListDeploymentTargets@ call to
    -- return the next set of deployment targets in the list.
    ListDeploymentTargetsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The unique IDs of deployment targets.
    ListDeploymentTargetsResponse -> Maybe [Text]
targetIds :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListDeploymentTargetsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListDeploymentTargetsResponse
-> ListDeploymentTargetsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListDeploymentTargetsResponse
-> ListDeploymentTargetsResponse -> Bool
$c/= :: ListDeploymentTargetsResponse
-> ListDeploymentTargetsResponse -> Bool
== :: ListDeploymentTargetsResponse
-> ListDeploymentTargetsResponse -> Bool
$c== :: ListDeploymentTargetsResponse
-> ListDeploymentTargetsResponse -> Bool
Prelude.Eq, ReadPrec [ListDeploymentTargetsResponse]
ReadPrec ListDeploymentTargetsResponse
Int -> ReadS ListDeploymentTargetsResponse
ReadS [ListDeploymentTargetsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListDeploymentTargetsResponse]
$creadListPrec :: ReadPrec [ListDeploymentTargetsResponse]
readPrec :: ReadPrec ListDeploymentTargetsResponse
$creadPrec :: ReadPrec ListDeploymentTargetsResponse
readList :: ReadS [ListDeploymentTargetsResponse]
$creadList :: ReadS [ListDeploymentTargetsResponse]
readsPrec :: Int -> ReadS ListDeploymentTargetsResponse
$creadsPrec :: Int -> ReadS ListDeploymentTargetsResponse
Prelude.Read, Int -> ListDeploymentTargetsResponse -> ShowS
[ListDeploymentTargetsResponse] -> ShowS
ListDeploymentTargetsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListDeploymentTargetsResponse] -> ShowS
$cshowList :: [ListDeploymentTargetsResponse] -> ShowS
show :: ListDeploymentTargetsResponse -> String
$cshow :: ListDeploymentTargetsResponse -> String
showsPrec :: Int -> ListDeploymentTargetsResponse -> ShowS
$cshowsPrec :: Int -> ListDeploymentTargetsResponse -> ShowS
Prelude.Show, forall x.
Rep ListDeploymentTargetsResponse x
-> ListDeploymentTargetsResponse
forall x.
ListDeploymentTargetsResponse
-> Rep ListDeploymentTargetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListDeploymentTargetsResponse x
-> ListDeploymentTargetsResponse
$cfrom :: forall x.
ListDeploymentTargetsResponse
-> Rep ListDeploymentTargetsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListDeploymentTargetsResponse' 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', 'listDeploymentTargetsResponse_nextToken' - If a large amount of information is returned, a token identifier is also
-- returned. It can be used in a subsequent @ListDeploymentTargets@ call to
-- return the next set of deployment targets in the list.
--
-- 'targetIds', 'listDeploymentTargetsResponse_targetIds' - The unique IDs of deployment targets.
--
-- 'httpStatus', 'listDeploymentTargetsResponse_httpStatus' - The response's http status code.
newListDeploymentTargetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListDeploymentTargetsResponse
newListDeploymentTargetsResponse :: Int -> ListDeploymentTargetsResponse
newListDeploymentTargetsResponse Int
pHttpStatus_ =
  ListDeploymentTargetsResponse'
    { $sel:nextToken:ListDeploymentTargetsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:targetIds:ListDeploymentTargetsResponse' :: Maybe [Text]
targetIds = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListDeploymentTargetsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | If a large amount of information is returned, a token identifier is also
-- returned. It can be used in a subsequent @ListDeploymentTargets@ call to
-- return the next set of deployment targets in the list.
listDeploymentTargetsResponse_nextToken :: Lens.Lens' ListDeploymentTargetsResponse (Prelude.Maybe Prelude.Text)
listDeploymentTargetsResponse_nextToken :: Lens' ListDeploymentTargetsResponse (Maybe Text)
listDeploymentTargetsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargetsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListDeploymentTargetsResponse
s@ListDeploymentTargetsResponse' {} Maybe Text
a -> ListDeploymentTargetsResponse
s {$sel:nextToken:ListDeploymentTargetsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListDeploymentTargetsResponse)

-- | The unique IDs of deployment targets.
listDeploymentTargetsResponse_targetIds :: Lens.Lens' ListDeploymentTargetsResponse (Prelude.Maybe [Prelude.Text])
listDeploymentTargetsResponse_targetIds :: Lens' ListDeploymentTargetsResponse (Maybe [Text])
listDeploymentTargetsResponse_targetIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargetsResponse' {Maybe [Text]
targetIds :: Maybe [Text]
$sel:targetIds:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Maybe [Text]
targetIds} -> Maybe [Text]
targetIds) (\s :: ListDeploymentTargetsResponse
s@ListDeploymentTargetsResponse' {} Maybe [Text]
a -> ListDeploymentTargetsResponse
s {$sel:targetIds:ListDeploymentTargetsResponse' :: Maybe [Text]
targetIds = Maybe [Text]
a} :: ListDeploymentTargetsResponse) 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 response's http status code.
listDeploymentTargetsResponse_httpStatus :: Lens.Lens' ListDeploymentTargetsResponse Prelude.Int
listDeploymentTargetsResponse_httpStatus :: Lens' ListDeploymentTargetsResponse Int
listDeploymentTargetsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListDeploymentTargetsResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListDeploymentTargetsResponse
s@ListDeploymentTargetsResponse' {} Int
a -> ListDeploymentTargetsResponse
s {$sel:httpStatus:ListDeploymentTargetsResponse' :: Int
httpStatus = Int
a} :: ListDeploymentTargetsResponse)

instance Prelude.NFData ListDeploymentTargetsResponse where
  rnf :: ListDeploymentTargetsResponse -> ()
rnf ListDeploymentTargetsResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
targetIds :: Maybe [Text]
nextToken :: Maybe Text
$sel:httpStatus:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Int
$sel:targetIds:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Maybe [Text]
$sel:nextToken:ListDeploymentTargetsResponse' :: ListDeploymentTargetsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
targetIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus