{-# 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.SSM.DescribeAssociationExecutionTargets
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Views information about a specific execution of a specific association.
--
-- This operation returns paginated results.
module Amazonka.SSM.DescribeAssociationExecutionTargets
  ( -- * Creating a Request
    DescribeAssociationExecutionTargets (..),
    newDescribeAssociationExecutionTargets,

    -- * Request Lenses
    describeAssociationExecutionTargets_filters,
    describeAssociationExecutionTargets_maxResults,
    describeAssociationExecutionTargets_nextToken,
    describeAssociationExecutionTargets_associationId,
    describeAssociationExecutionTargets_executionId,

    -- * Destructuring the Response
    DescribeAssociationExecutionTargetsResponse (..),
    newDescribeAssociationExecutionTargetsResponse,

    -- * Response Lenses
    describeAssociationExecutionTargetsResponse_associationExecutionTargets,
    describeAssociationExecutionTargetsResponse_nextToken,
    describeAssociationExecutionTargetsResponse_httpStatus,
  )
where

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
import Amazonka.SSM.Types

-- | /See:/ 'newDescribeAssociationExecutionTargets' smart constructor.
data DescribeAssociationExecutionTargets = DescribeAssociationExecutionTargets'
  { -- | Filters for the request. You can specify the following filters and
    -- values.
    --
    -- Status (EQUAL)
    --
    -- ResourceId (EQUAL)
    --
    -- ResourceType (EQUAL)
    DescribeAssociationExecutionTargets
-> Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters :: Prelude.Maybe (Prelude.NonEmpty AssociationExecutionTargetsFilter),
    -- | The maximum number of items to return for this call. The call also
    -- returns a token that you can specify in a subsequent call to get the
    -- next set of results.
    DescribeAssociationExecutionTargets -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A token to start the list. Use this token to get the next set of
    -- results.
    DescribeAssociationExecutionTargets -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The association ID that includes the execution for which you want to
    -- view details.
    DescribeAssociationExecutionTargets -> Text
associationId :: Prelude.Text,
    -- | The execution ID for which you want to view details.
    DescribeAssociationExecutionTargets -> Text
executionId :: Prelude.Text
  }
  deriving (DescribeAssociationExecutionTargets
-> DescribeAssociationExecutionTargets -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAssociationExecutionTargets
-> DescribeAssociationExecutionTargets -> Bool
$c/= :: DescribeAssociationExecutionTargets
-> DescribeAssociationExecutionTargets -> Bool
== :: DescribeAssociationExecutionTargets
-> DescribeAssociationExecutionTargets -> Bool
$c== :: DescribeAssociationExecutionTargets
-> DescribeAssociationExecutionTargets -> Bool
Prelude.Eq, ReadPrec [DescribeAssociationExecutionTargets]
ReadPrec DescribeAssociationExecutionTargets
Int -> ReadS DescribeAssociationExecutionTargets
ReadS [DescribeAssociationExecutionTargets]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAssociationExecutionTargets]
$creadListPrec :: ReadPrec [DescribeAssociationExecutionTargets]
readPrec :: ReadPrec DescribeAssociationExecutionTargets
$creadPrec :: ReadPrec DescribeAssociationExecutionTargets
readList :: ReadS [DescribeAssociationExecutionTargets]
$creadList :: ReadS [DescribeAssociationExecutionTargets]
readsPrec :: Int -> ReadS DescribeAssociationExecutionTargets
$creadsPrec :: Int -> ReadS DescribeAssociationExecutionTargets
Prelude.Read, Int -> DescribeAssociationExecutionTargets -> ShowS
[DescribeAssociationExecutionTargets] -> ShowS
DescribeAssociationExecutionTargets -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAssociationExecutionTargets] -> ShowS
$cshowList :: [DescribeAssociationExecutionTargets] -> ShowS
show :: DescribeAssociationExecutionTargets -> String
$cshow :: DescribeAssociationExecutionTargets -> String
showsPrec :: Int -> DescribeAssociationExecutionTargets -> ShowS
$cshowsPrec :: Int -> DescribeAssociationExecutionTargets -> ShowS
Prelude.Show, forall x.
Rep DescribeAssociationExecutionTargets x
-> DescribeAssociationExecutionTargets
forall x.
DescribeAssociationExecutionTargets
-> Rep DescribeAssociationExecutionTargets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAssociationExecutionTargets x
-> DescribeAssociationExecutionTargets
$cfrom :: forall x.
DescribeAssociationExecutionTargets
-> Rep DescribeAssociationExecutionTargets x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAssociationExecutionTargets' 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:
--
-- 'filters', 'describeAssociationExecutionTargets_filters' - Filters for the request. You can specify the following filters and
-- values.
--
-- Status (EQUAL)
--
-- ResourceId (EQUAL)
--
-- ResourceType (EQUAL)
--
-- 'maxResults', 'describeAssociationExecutionTargets_maxResults' - The maximum number of items to return for this call. The call also
-- returns a token that you can specify in a subsequent call to get the
-- next set of results.
--
-- 'nextToken', 'describeAssociationExecutionTargets_nextToken' - A token to start the list. Use this token to get the next set of
-- results.
--
-- 'associationId', 'describeAssociationExecutionTargets_associationId' - The association ID that includes the execution for which you want to
-- view details.
--
-- 'executionId', 'describeAssociationExecutionTargets_executionId' - The execution ID for which you want to view details.
newDescribeAssociationExecutionTargets ::
  -- | 'associationId'
  Prelude.Text ->
  -- | 'executionId'
  Prelude.Text ->
  DescribeAssociationExecutionTargets
newDescribeAssociationExecutionTargets :: Text -> Text -> DescribeAssociationExecutionTargets
newDescribeAssociationExecutionTargets
  Text
pAssociationId_
  Text
pExecutionId_ =
    DescribeAssociationExecutionTargets'
      { $sel:filters:DescribeAssociationExecutionTargets' :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters =
          forall a. Maybe a
Prelude.Nothing,
        $sel:maxResults:DescribeAssociationExecutionTargets' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:DescribeAssociationExecutionTargets' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:associationId:DescribeAssociationExecutionTargets' :: Text
associationId = Text
pAssociationId_,
        $sel:executionId:DescribeAssociationExecutionTargets' :: Text
executionId = Text
pExecutionId_
      }

-- | Filters for the request. You can specify the following filters and
-- values.
--
-- Status (EQUAL)
--
-- ResourceId (EQUAL)
--
-- ResourceType (EQUAL)
describeAssociationExecutionTargets_filters :: Lens.Lens' DescribeAssociationExecutionTargets (Prelude.Maybe (Prelude.NonEmpty AssociationExecutionTargetsFilter))
describeAssociationExecutionTargets_filters :: Lens'
  DescribeAssociationExecutionTargets
  (Maybe (NonEmpty AssociationExecutionTargetsFilter))
describeAssociationExecutionTargets_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargets' {Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
$sel:filters:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets
-> Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters} -> Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters) (\s :: DescribeAssociationExecutionTargets
s@DescribeAssociationExecutionTargets' {} Maybe (NonEmpty AssociationExecutionTargetsFilter)
a -> DescribeAssociationExecutionTargets
s {$sel:filters:DescribeAssociationExecutionTargets' :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters = Maybe (NonEmpty AssociationExecutionTargetsFilter)
a} :: DescribeAssociationExecutionTargets) 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 maximum number of items to return for this call. The call also
-- returns a token that you can specify in a subsequent call to get the
-- next set of results.
describeAssociationExecutionTargets_maxResults :: Lens.Lens' DescribeAssociationExecutionTargets (Prelude.Maybe Prelude.Natural)
describeAssociationExecutionTargets_maxResults :: Lens' DescribeAssociationExecutionTargets (Maybe Natural)
describeAssociationExecutionTargets_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargets' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: DescribeAssociationExecutionTargets
s@DescribeAssociationExecutionTargets' {} Maybe Natural
a -> DescribeAssociationExecutionTargets
s {$sel:maxResults:DescribeAssociationExecutionTargets' :: Maybe Natural
maxResults = Maybe Natural
a} :: DescribeAssociationExecutionTargets)

-- | A token to start the list. Use this token to get the next set of
-- results.
describeAssociationExecutionTargets_nextToken :: Lens.Lens' DescribeAssociationExecutionTargets (Prelude.Maybe Prelude.Text)
describeAssociationExecutionTargets_nextToken :: Lens' DescribeAssociationExecutionTargets (Maybe Text)
describeAssociationExecutionTargets_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargets' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeAssociationExecutionTargets
s@DescribeAssociationExecutionTargets' {} Maybe Text
a -> DescribeAssociationExecutionTargets
s {$sel:nextToken:DescribeAssociationExecutionTargets' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeAssociationExecutionTargets)

-- | The association ID that includes the execution for which you want to
-- view details.
describeAssociationExecutionTargets_associationId :: Lens.Lens' DescribeAssociationExecutionTargets Prelude.Text
describeAssociationExecutionTargets_associationId :: Lens' DescribeAssociationExecutionTargets Text
describeAssociationExecutionTargets_associationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargets' {Text
associationId :: Text
$sel:associationId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
associationId} -> Text
associationId) (\s :: DescribeAssociationExecutionTargets
s@DescribeAssociationExecutionTargets' {} Text
a -> DescribeAssociationExecutionTargets
s {$sel:associationId:DescribeAssociationExecutionTargets' :: Text
associationId = Text
a} :: DescribeAssociationExecutionTargets)

-- | The execution ID for which you want to view details.
describeAssociationExecutionTargets_executionId :: Lens.Lens' DescribeAssociationExecutionTargets Prelude.Text
describeAssociationExecutionTargets_executionId :: Lens' DescribeAssociationExecutionTargets Text
describeAssociationExecutionTargets_executionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargets' {Text
executionId :: Text
$sel:executionId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
executionId} -> Text
executionId) (\s :: DescribeAssociationExecutionTargets
s@DescribeAssociationExecutionTargets' {} Text
a -> DescribeAssociationExecutionTargets
s {$sel:executionId:DescribeAssociationExecutionTargets' :: Text
executionId = Text
a} :: DescribeAssociationExecutionTargets)

instance
  Core.AWSPager
    DescribeAssociationExecutionTargets
  where
  page :: DescribeAssociationExecutionTargets
-> AWSResponse DescribeAssociationExecutionTargets
-> Maybe DescribeAssociationExecutionTargets
page DescribeAssociationExecutionTargets
rq AWSResponse DescribeAssociationExecutionTargets
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeAssociationExecutionTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeAssociationExecutionTargetsResponse (Maybe Text)
describeAssociationExecutionTargetsResponse_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 DescribeAssociationExecutionTargets
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeAssociationExecutionTargetsResponse
  (Maybe [AssociationExecutionTarget])
describeAssociationExecutionTargetsResponse_associationExecutionTargets
            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.$ DescribeAssociationExecutionTargets
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeAssociationExecutionTargets (Maybe Text)
describeAssociationExecutionTargets_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeAssociationExecutionTargets
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeAssociationExecutionTargetsResponse (Maybe Text)
describeAssociationExecutionTargetsResponse_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
    DescribeAssociationExecutionTargets
  where
  type
    AWSResponse DescribeAssociationExecutionTargets =
      DescribeAssociationExecutionTargetsResponse
  request :: (Service -> Service)
-> DescribeAssociationExecutionTargets
-> Request DescribeAssociationExecutionTargets
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 DescribeAssociationExecutionTargets
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeAssociationExecutionTargets)))
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 [AssociationExecutionTarget]
-> Maybe Text -> Int -> DescribeAssociationExecutionTargetsResponse
DescribeAssociationExecutionTargetsResponse'
            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
"AssociationExecutionTargets"
                            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.<*> (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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DescribeAssociationExecutionTargets
  where
  hashWithSalt :: Int -> DescribeAssociationExecutionTargets -> Int
hashWithSalt
    Int
_salt
    DescribeAssociationExecutionTargets' {Maybe Natural
Maybe (NonEmpty AssociationExecutionTargetsFilter)
Maybe Text
Text
executionId :: Text
associationId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
$sel:executionId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:associationId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:nextToken:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Text
$sel:maxResults:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Natural
$sel:filters:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets
-> Maybe (NonEmpty AssociationExecutionTargetsFilter)
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
associationId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
executionId

instance
  Prelude.NFData
    DescribeAssociationExecutionTargets
  where
  rnf :: DescribeAssociationExecutionTargets -> ()
rnf DescribeAssociationExecutionTargets' {Maybe Natural
Maybe (NonEmpty AssociationExecutionTargetsFilter)
Maybe Text
Text
executionId :: Text
associationId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
$sel:executionId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:associationId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:nextToken:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Text
$sel:maxResults:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Natural
$sel:filters:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets
-> Maybe (NonEmpty AssociationExecutionTargetsFilter)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AssociationExecutionTargetsFilter)
filters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      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 Text
associationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
executionId

instance
  Data.ToHeaders
    DescribeAssociationExecutionTargets
  where
  toHeaders :: DescribeAssociationExecutionTargets -> 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
"AmazonSSM.DescribeAssociationExecutionTargets" ::
                          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
    DescribeAssociationExecutionTargets
  where
  toJSON :: DescribeAssociationExecutionTargets -> Value
toJSON DescribeAssociationExecutionTargets' {Maybe Natural
Maybe (NonEmpty AssociationExecutionTargetsFilter)
Maybe Text
Text
executionId :: Text
associationId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe (NonEmpty AssociationExecutionTargetsFilter)
$sel:executionId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:associationId:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Text
$sel:nextToken:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Text
$sel:maxResults:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets -> Maybe Natural
$sel:filters:DescribeAssociationExecutionTargets' :: DescribeAssociationExecutionTargets
-> Maybe (NonEmpty AssociationExecutionTargetsFilter)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Filters" 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 (NonEmpty AssociationExecutionTargetsFilter)
filters,
            (Key
"MaxResults" 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
maxResults,
            (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,
            forall a. a -> Maybe a
Prelude.Just (Key
"AssociationId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
associationId),
            forall a. a -> Maybe a
Prelude.Just (Key
"ExecutionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
executionId)
          ]
      )

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

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

-- | /See:/ 'newDescribeAssociationExecutionTargetsResponse' smart constructor.
data DescribeAssociationExecutionTargetsResponse = DescribeAssociationExecutionTargetsResponse'
  { -- | Information about the execution.
    DescribeAssociationExecutionTargetsResponse
-> Maybe [AssociationExecutionTarget]
associationExecutionTargets :: Prelude.Maybe [AssociationExecutionTarget],
    -- | The token for the next set of items to return. Use this token to get the
    -- next set of results.
    DescribeAssociationExecutionTargetsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeAssociationExecutionTargetsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeAssociationExecutionTargetsResponse
-> DescribeAssociationExecutionTargetsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAssociationExecutionTargetsResponse
-> DescribeAssociationExecutionTargetsResponse -> Bool
$c/= :: DescribeAssociationExecutionTargetsResponse
-> DescribeAssociationExecutionTargetsResponse -> Bool
== :: DescribeAssociationExecutionTargetsResponse
-> DescribeAssociationExecutionTargetsResponse -> Bool
$c== :: DescribeAssociationExecutionTargetsResponse
-> DescribeAssociationExecutionTargetsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeAssociationExecutionTargetsResponse]
ReadPrec DescribeAssociationExecutionTargetsResponse
Int -> ReadS DescribeAssociationExecutionTargetsResponse
ReadS [DescribeAssociationExecutionTargetsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAssociationExecutionTargetsResponse]
$creadListPrec :: ReadPrec [DescribeAssociationExecutionTargetsResponse]
readPrec :: ReadPrec DescribeAssociationExecutionTargetsResponse
$creadPrec :: ReadPrec DescribeAssociationExecutionTargetsResponse
readList :: ReadS [DescribeAssociationExecutionTargetsResponse]
$creadList :: ReadS [DescribeAssociationExecutionTargetsResponse]
readsPrec :: Int -> ReadS DescribeAssociationExecutionTargetsResponse
$creadsPrec :: Int -> ReadS DescribeAssociationExecutionTargetsResponse
Prelude.Read, Int -> DescribeAssociationExecutionTargetsResponse -> ShowS
[DescribeAssociationExecutionTargetsResponse] -> ShowS
DescribeAssociationExecutionTargetsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAssociationExecutionTargetsResponse] -> ShowS
$cshowList :: [DescribeAssociationExecutionTargetsResponse] -> ShowS
show :: DescribeAssociationExecutionTargetsResponse -> String
$cshow :: DescribeAssociationExecutionTargetsResponse -> String
showsPrec :: Int -> DescribeAssociationExecutionTargetsResponse -> ShowS
$cshowsPrec :: Int -> DescribeAssociationExecutionTargetsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeAssociationExecutionTargetsResponse x
-> DescribeAssociationExecutionTargetsResponse
forall x.
DescribeAssociationExecutionTargetsResponse
-> Rep DescribeAssociationExecutionTargetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAssociationExecutionTargetsResponse x
-> DescribeAssociationExecutionTargetsResponse
$cfrom :: forall x.
DescribeAssociationExecutionTargetsResponse
-> Rep DescribeAssociationExecutionTargetsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAssociationExecutionTargetsResponse' 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:
--
-- 'associationExecutionTargets', 'describeAssociationExecutionTargetsResponse_associationExecutionTargets' - Information about the execution.
--
-- 'nextToken', 'describeAssociationExecutionTargetsResponse_nextToken' - The token for the next set of items to return. Use this token to get the
-- next set of results.
--
-- 'httpStatus', 'describeAssociationExecutionTargetsResponse_httpStatus' - The response's http status code.
newDescribeAssociationExecutionTargetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeAssociationExecutionTargetsResponse
newDescribeAssociationExecutionTargetsResponse :: Int -> DescribeAssociationExecutionTargetsResponse
newDescribeAssociationExecutionTargetsResponse
  Int
pHttpStatus_ =
    DescribeAssociationExecutionTargetsResponse'
      { $sel:associationExecutionTargets:DescribeAssociationExecutionTargetsResponse' :: Maybe [AssociationExecutionTarget]
associationExecutionTargets =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:DescribeAssociationExecutionTargetsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeAssociationExecutionTargetsResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Information about the execution.
describeAssociationExecutionTargetsResponse_associationExecutionTargets :: Lens.Lens' DescribeAssociationExecutionTargetsResponse (Prelude.Maybe [AssociationExecutionTarget])
describeAssociationExecutionTargetsResponse_associationExecutionTargets :: Lens'
  DescribeAssociationExecutionTargetsResponse
  (Maybe [AssociationExecutionTarget])
describeAssociationExecutionTargetsResponse_associationExecutionTargets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargetsResponse' {Maybe [AssociationExecutionTarget]
associationExecutionTargets :: Maybe [AssociationExecutionTarget]
$sel:associationExecutionTargets:DescribeAssociationExecutionTargetsResponse' :: DescribeAssociationExecutionTargetsResponse
-> Maybe [AssociationExecutionTarget]
associationExecutionTargets} -> Maybe [AssociationExecutionTarget]
associationExecutionTargets) (\s :: DescribeAssociationExecutionTargetsResponse
s@DescribeAssociationExecutionTargetsResponse' {} Maybe [AssociationExecutionTarget]
a -> DescribeAssociationExecutionTargetsResponse
s {$sel:associationExecutionTargets:DescribeAssociationExecutionTargetsResponse' :: Maybe [AssociationExecutionTarget]
associationExecutionTargets = Maybe [AssociationExecutionTarget]
a} :: DescribeAssociationExecutionTargetsResponse) 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 token for the next set of items to return. Use this token to get the
-- next set of results.
describeAssociationExecutionTargetsResponse_nextToken :: Lens.Lens' DescribeAssociationExecutionTargetsResponse (Prelude.Maybe Prelude.Text)
describeAssociationExecutionTargetsResponse_nextToken :: Lens' DescribeAssociationExecutionTargetsResponse (Maybe Text)
describeAssociationExecutionTargetsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssociationExecutionTargetsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeAssociationExecutionTargetsResponse' :: DescribeAssociationExecutionTargetsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeAssociationExecutionTargetsResponse
s@DescribeAssociationExecutionTargetsResponse' {} Maybe Text
a -> DescribeAssociationExecutionTargetsResponse
s {$sel:nextToken:DescribeAssociationExecutionTargetsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeAssociationExecutionTargetsResponse)

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

instance
  Prelude.NFData
    DescribeAssociationExecutionTargetsResponse
  where
  rnf :: DescribeAssociationExecutionTargetsResponse -> ()
rnf DescribeAssociationExecutionTargetsResponse' {Int
Maybe [AssociationExecutionTarget]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
associationExecutionTargets :: Maybe [AssociationExecutionTarget]
$sel:httpStatus:DescribeAssociationExecutionTargetsResponse' :: DescribeAssociationExecutionTargetsResponse -> Int
$sel:nextToken:DescribeAssociationExecutionTargetsResponse' :: DescribeAssociationExecutionTargetsResponse -> Maybe Text
$sel:associationExecutionTargets:DescribeAssociationExecutionTargetsResponse' :: DescribeAssociationExecutionTargetsResponse
-> Maybe [AssociationExecutionTarget]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [AssociationExecutionTarget]
associationExecutionTargets
      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 Int
httpStatus