{-# 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.ListTaskTemplates
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists task templates for the specified Amazon Connect instance.
--
-- This operation returns paginated results.
module Amazonka.Connect.ListTaskTemplates
  ( -- * Creating a Request
    ListTaskTemplates (..),
    newListTaskTemplates,

    -- * Request Lenses
    listTaskTemplates_maxResults,
    listTaskTemplates_name,
    listTaskTemplates_nextToken,
    listTaskTemplates_status,
    listTaskTemplates_instanceId,

    -- * Destructuring the Response
    ListTaskTemplatesResponse (..),
    newListTaskTemplatesResponse,

    -- * Response Lenses
    listTaskTemplatesResponse_nextToken,
    listTaskTemplatesResponse_taskTemplates,
    listTaskTemplatesResponse_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:/ 'newListTaskTemplates' smart constructor.
data ListTaskTemplates = ListTaskTemplates'
  { -- | The maximum number of results to return per page.
    --
    -- It is not expected that you set this.
    ListTaskTemplates -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The name of the task template.
    ListTaskTemplates -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | 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.
    --
    -- It is not expected that you set this because the value returned in the
    -- previous response is always null.
    ListTaskTemplates -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Marks a template as @ACTIVE@ or @INACTIVE@ for a task to refer to it.
    -- Tasks can only be created from @ACTIVE@ templates. If a template is
    -- marked as @INACTIVE@, then a task that refers to this template cannot be
    -- created.
    ListTaskTemplates -> Maybe TaskTemplateStatus
status :: Prelude.Maybe TaskTemplateStatus,
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    ListTaskTemplates -> Text
instanceId :: Prelude.Text
  }
  deriving (ListTaskTemplates -> ListTaskTemplates -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListTaskTemplates -> ListTaskTemplates -> Bool
$c/= :: ListTaskTemplates -> ListTaskTemplates -> Bool
== :: ListTaskTemplates -> ListTaskTemplates -> Bool
$c== :: ListTaskTemplates -> ListTaskTemplates -> Bool
Prelude.Eq, ReadPrec [ListTaskTemplates]
ReadPrec ListTaskTemplates
Int -> ReadS ListTaskTemplates
ReadS [ListTaskTemplates]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListTaskTemplates]
$creadListPrec :: ReadPrec [ListTaskTemplates]
readPrec :: ReadPrec ListTaskTemplates
$creadPrec :: ReadPrec ListTaskTemplates
readList :: ReadS [ListTaskTemplates]
$creadList :: ReadS [ListTaskTemplates]
readsPrec :: Int -> ReadS ListTaskTemplates
$creadsPrec :: Int -> ReadS ListTaskTemplates
Prelude.Read, Int -> ListTaskTemplates -> ShowS
[ListTaskTemplates] -> ShowS
ListTaskTemplates -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListTaskTemplates] -> ShowS
$cshowList :: [ListTaskTemplates] -> ShowS
show :: ListTaskTemplates -> String
$cshow :: ListTaskTemplates -> String
showsPrec :: Int -> ListTaskTemplates -> ShowS
$cshowsPrec :: Int -> ListTaskTemplates -> ShowS
Prelude.Show, forall x. Rep ListTaskTemplates x -> ListTaskTemplates
forall x. ListTaskTemplates -> Rep ListTaskTemplates x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListTaskTemplates x -> ListTaskTemplates
$cfrom :: forall x. ListTaskTemplates -> Rep ListTaskTemplates x
Prelude.Generic)

-- |
-- Create a value of 'ListTaskTemplates' 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:
--
-- 'maxResults', 'listTaskTemplates_maxResults' - The maximum number of results to return per page.
--
-- It is not expected that you set this.
--
-- 'name', 'listTaskTemplates_name' - The name of the task template.
--
-- 'nextToken', 'listTaskTemplates_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.
--
-- It is not expected that you set this because the value returned in the
-- previous response is always null.
--
-- 'status', 'listTaskTemplates_status' - Marks a template as @ACTIVE@ or @INACTIVE@ for a task to refer to it.
-- Tasks can only be created from @ACTIVE@ templates. If a template is
-- marked as @INACTIVE@, then a task that refers to this template cannot be
-- created.
--
-- 'instanceId', 'listTaskTemplates_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
newListTaskTemplates ::
  -- | 'instanceId'
  Prelude.Text ->
  ListTaskTemplates
newListTaskTemplates :: Text -> ListTaskTemplates
newListTaskTemplates Text
pInstanceId_ =
  ListTaskTemplates'
    { $sel:maxResults:ListTaskTemplates' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ListTaskTemplates' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListTaskTemplates' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ListTaskTemplates' :: Maybe TaskTemplateStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:ListTaskTemplates' :: Text
instanceId = Text
pInstanceId_
    }

-- | The maximum number of results to return per page.
--
-- It is not expected that you set this.
listTaskTemplates_maxResults :: Lens.Lens' ListTaskTemplates (Prelude.Maybe Prelude.Natural)
listTaskTemplates_maxResults :: Lens' ListTaskTemplates (Maybe Natural)
listTaskTemplates_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplates' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListTaskTemplates' :: ListTaskTemplates -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListTaskTemplates
s@ListTaskTemplates' {} Maybe Natural
a -> ListTaskTemplates
s {$sel:maxResults:ListTaskTemplates' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListTaskTemplates)

-- | The name of the task template.
listTaskTemplates_name :: Lens.Lens' ListTaskTemplates (Prelude.Maybe Prelude.Text)
listTaskTemplates_name :: Lens' ListTaskTemplates (Maybe Text)
listTaskTemplates_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplates' {Maybe Text
name :: Maybe Text
$sel:name:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
name} -> Maybe Text
name) (\s :: ListTaskTemplates
s@ListTaskTemplates' {} Maybe Text
a -> ListTaskTemplates
s {$sel:name:ListTaskTemplates' :: Maybe Text
name = Maybe Text
a} :: ListTaskTemplates)

-- | 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.
--
-- It is not expected that you set this because the value returned in the
-- previous response is always null.
listTaskTemplates_nextToken :: Lens.Lens' ListTaskTemplates (Prelude.Maybe Prelude.Text)
listTaskTemplates_nextToken :: Lens' ListTaskTemplates (Maybe Text)
listTaskTemplates_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplates' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListTaskTemplates
s@ListTaskTemplates' {} Maybe Text
a -> ListTaskTemplates
s {$sel:nextToken:ListTaskTemplates' :: Maybe Text
nextToken = Maybe Text
a} :: ListTaskTemplates)

-- | Marks a template as @ACTIVE@ or @INACTIVE@ for a task to refer to it.
-- Tasks can only be created from @ACTIVE@ templates. If a template is
-- marked as @INACTIVE@, then a task that refers to this template cannot be
-- created.
listTaskTemplates_status :: Lens.Lens' ListTaskTemplates (Prelude.Maybe TaskTemplateStatus)
listTaskTemplates_status :: Lens' ListTaskTemplates (Maybe TaskTemplateStatus)
listTaskTemplates_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplates' {Maybe TaskTemplateStatus
status :: Maybe TaskTemplateStatus
$sel:status:ListTaskTemplates' :: ListTaskTemplates -> Maybe TaskTemplateStatus
status} -> Maybe TaskTemplateStatus
status) (\s :: ListTaskTemplates
s@ListTaskTemplates' {} Maybe TaskTemplateStatus
a -> ListTaskTemplates
s {$sel:status:ListTaskTemplates' :: Maybe TaskTemplateStatus
status = Maybe TaskTemplateStatus
a} :: ListTaskTemplates)

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

instance Core.AWSPager ListTaskTemplates where
  page :: ListTaskTemplates
-> AWSResponse ListTaskTemplates -> Maybe ListTaskTemplates
page ListTaskTemplates
rq AWSResponse ListTaskTemplates
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListTaskTemplates
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTaskTemplatesResponse (Maybe Text)
listTaskTemplatesResponse_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 ListTaskTemplates
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTaskTemplatesResponse (Maybe [TaskTemplateMetadata])
listTaskTemplatesResponse_taskTemplates
            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.$ ListTaskTemplates
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListTaskTemplates (Maybe Text)
listTaskTemplates_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListTaskTemplates
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTaskTemplatesResponse (Maybe Text)
listTaskTemplatesResponse_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 ListTaskTemplates where
  type
    AWSResponse ListTaskTemplates =
      ListTaskTemplatesResponse
  request :: (Service -> Service)
-> ListTaskTemplates -> Request ListTaskTemplates
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListTaskTemplates
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListTaskTemplates)))
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 [TaskTemplateMetadata] -> Int -> ListTaskTemplatesResponse
ListTaskTemplatesResponse'
            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
"TaskTemplates" 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 ListTaskTemplates where
  hashWithSalt :: Int -> ListTaskTemplates -> Int
hashWithSalt Int
_salt ListTaskTemplates' {Maybe Natural
Maybe Text
Maybe TaskTemplateStatus
Text
instanceId :: Text
status :: Maybe TaskTemplateStatus
nextToken :: Maybe Text
name :: Maybe Text
maxResults :: Maybe Natural
$sel:instanceId:ListTaskTemplates' :: ListTaskTemplates -> Text
$sel:status:ListTaskTemplates' :: ListTaskTemplates -> Maybe TaskTemplateStatus
$sel:nextToken:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:name:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:maxResults:ListTaskTemplates' :: ListTaskTemplates -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TaskTemplateStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceId

instance Prelude.NFData ListTaskTemplates where
  rnf :: ListTaskTemplates -> ()
rnf ListTaskTemplates' {Maybe Natural
Maybe Text
Maybe TaskTemplateStatus
Text
instanceId :: Text
status :: Maybe TaskTemplateStatus
nextToken :: Maybe Text
name :: Maybe Text
maxResults :: Maybe Natural
$sel:instanceId:ListTaskTemplates' :: ListTaskTemplates -> Text
$sel:status:ListTaskTemplates' :: ListTaskTemplates -> Maybe TaskTemplateStatus
$sel:nextToken:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:name:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:maxResults:ListTaskTemplates' :: ListTaskTemplates -> Maybe Natural
..} =
    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
name
      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 TaskTemplateStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId

instance Data.ToHeaders ListTaskTemplates where
  toHeaders :: ListTaskTemplates -> 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.ToPath ListTaskTemplates where
  toPath :: ListTaskTemplates -> ByteString
toPath ListTaskTemplates' {Maybe Natural
Maybe Text
Maybe TaskTemplateStatus
Text
instanceId :: Text
status :: Maybe TaskTemplateStatus
nextToken :: Maybe Text
name :: Maybe Text
maxResults :: Maybe Natural
$sel:instanceId:ListTaskTemplates' :: ListTaskTemplates -> Text
$sel:status:ListTaskTemplates' :: ListTaskTemplates -> Maybe TaskTemplateStatus
$sel:nextToken:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:name:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:maxResults:ListTaskTemplates' :: ListTaskTemplates -> Maybe Natural
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/instance/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
instanceId,
        ByteString
"/task/template"
      ]

instance Data.ToQuery ListTaskTemplates where
  toQuery :: ListTaskTemplates -> QueryString
toQuery ListTaskTemplates' {Maybe Natural
Maybe Text
Maybe TaskTemplateStatus
Text
instanceId :: Text
status :: Maybe TaskTemplateStatus
nextToken :: Maybe Text
name :: Maybe Text
maxResults :: Maybe Natural
$sel:instanceId:ListTaskTemplates' :: ListTaskTemplates -> Text
$sel:status:ListTaskTemplates' :: ListTaskTemplates -> Maybe TaskTemplateStatus
$sel:nextToken:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:name:ListTaskTemplates' :: ListTaskTemplates -> Maybe Text
$sel:maxResults:ListTaskTemplates' :: ListTaskTemplates -> Maybe Natural
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"maxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"name" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
name,
        ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"status" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TaskTemplateStatus
status
      ]

-- | /See:/ 'newListTaskTemplatesResponse' smart constructor.
data ListTaskTemplatesResponse = ListTaskTemplatesResponse'
  { -- | If there are additional results, this is the token for the next set of
    -- results.
    --
    -- This is always returned as a null in the response.
    ListTaskTemplatesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Provides details about a list of task templates belonging to an
    -- instance.
    ListTaskTemplatesResponse -> Maybe [TaskTemplateMetadata]
taskTemplates :: Prelude.Maybe [TaskTemplateMetadata],
    -- | The response's http status code.
    ListTaskTemplatesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListTaskTemplatesResponse -> ListTaskTemplatesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListTaskTemplatesResponse -> ListTaskTemplatesResponse -> Bool
$c/= :: ListTaskTemplatesResponse -> ListTaskTemplatesResponse -> Bool
== :: ListTaskTemplatesResponse -> ListTaskTemplatesResponse -> Bool
$c== :: ListTaskTemplatesResponse -> ListTaskTemplatesResponse -> Bool
Prelude.Eq, ReadPrec [ListTaskTemplatesResponse]
ReadPrec ListTaskTemplatesResponse
Int -> ReadS ListTaskTemplatesResponse
ReadS [ListTaskTemplatesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListTaskTemplatesResponse]
$creadListPrec :: ReadPrec [ListTaskTemplatesResponse]
readPrec :: ReadPrec ListTaskTemplatesResponse
$creadPrec :: ReadPrec ListTaskTemplatesResponse
readList :: ReadS [ListTaskTemplatesResponse]
$creadList :: ReadS [ListTaskTemplatesResponse]
readsPrec :: Int -> ReadS ListTaskTemplatesResponse
$creadsPrec :: Int -> ReadS ListTaskTemplatesResponse
Prelude.Read, Int -> ListTaskTemplatesResponse -> ShowS
[ListTaskTemplatesResponse] -> ShowS
ListTaskTemplatesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListTaskTemplatesResponse] -> ShowS
$cshowList :: [ListTaskTemplatesResponse] -> ShowS
show :: ListTaskTemplatesResponse -> String
$cshow :: ListTaskTemplatesResponse -> String
showsPrec :: Int -> ListTaskTemplatesResponse -> ShowS
$cshowsPrec :: Int -> ListTaskTemplatesResponse -> ShowS
Prelude.Show, forall x.
Rep ListTaskTemplatesResponse x -> ListTaskTemplatesResponse
forall x.
ListTaskTemplatesResponse -> Rep ListTaskTemplatesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListTaskTemplatesResponse x -> ListTaskTemplatesResponse
$cfrom :: forall x.
ListTaskTemplatesResponse -> Rep ListTaskTemplatesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListTaskTemplatesResponse' 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', 'listTaskTemplatesResponse_nextToken' - If there are additional results, this is the token for the next set of
-- results.
--
-- This is always returned as a null in the response.
--
-- 'taskTemplates', 'listTaskTemplatesResponse_taskTemplates' - Provides details about a list of task templates belonging to an
-- instance.
--
-- 'httpStatus', 'listTaskTemplatesResponse_httpStatus' - The response's http status code.
newListTaskTemplatesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListTaskTemplatesResponse
newListTaskTemplatesResponse :: Int -> ListTaskTemplatesResponse
newListTaskTemplatesResponse Int
pHttpStatus_ =
  ListTaskTemplatesResponse'
    { $sel:nextToken:ListTaskTemplatesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:taskTemplates:ListTaskTemplatesResponse' :: Maybe [TaskTemplateMetadata]
taskTemplates = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListTaskTemplatesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | If there are additional results, this is the token for the next set of
-- results.
--
-- This is always returned as a null in the response.
listTaskTemplatesResponse_nextToken :: Lens.Lens' ListTaskTemplatesResponse (Prelude.Maybe Prelude.Text)
listTaskTemplatesResponse_nextToken :: Lens' ListTaskTemplatesResponse (Maybe Text)
listTaskTemplatesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplatesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListTaskTemplatesResponse
s@ListTaskTemplatesResponse' {} Maybe Text
a -> ListTaskTemplatesResponse
s {$sel:nextToken:ListTaskTemplatesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListTaskTemplatesResponse)

-- | Provides details about a list of task templates belonging to an
-- instance.
listTaskTemplatesResponse_taskTemplates :: Lens.Lens' ListTaskTemplatesResponse (Prelude.Maybe [TaskTemplateMetadata])
listTaskTemplatesResponse_taskTemplates :: Lens' ListTaskTemplatesResponse (Maybe [TaskTemplateMetadata])
listTaskTemplatesResponse_taskTemplates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplatesResponse' {Maybe [TaskTemplateMetadata]
taskTemplates :: Maybe [TaskTemplateMetadata]
$sel:taskTemplates:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> Maybe [TaskTemplateMetadata]
taskTemplates} -> Maybe [TaskTemplateMetadata]
taskTemplates) (\s :: ListTaskTemplatesResponse
s@ListTaskTemplatesResponse' {} Maybe [TaskTemplateMetadata]
a -> ListTaskTemplatesResponse
s {$sel:taskTemplates:ListTaskTemplatesResponse' :: Maybe [TaskTemplateMetadata]
taskTemplates = Maybe [TaskTemplateMetadata]
a} :: ListTaskTemplatesResponse) 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.
listTaskTemplatesResponse_httpStatus :: Lens.Lens' ListTaskTemplatesResponse Prelude.Int
listTaskTemplatesResponse_httpStatus :: Lens' ListTaskTemplatesResponse Int
listTaskTemplatesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTaskTemplatesResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListTaskTemplatesResponse
s@ListTaskTemplatesResponse' {} Int
a -> ListTaskTemplatesResponse
s {$sel:httpStatus:ListTaskTemplatesResponse' :: Int
httpStatus = Int
a} :: ListTaskTemplatesResponse)

instance Prelude.NFData ListTaskTemplatesResponse where
  rnf :: ListTaskTemplatesResponse -> ()
rnf ListTaskTemplatesResponse' {Int
Maybe [TaskTemplateMetadata]
Maybe Text
httpStatus :: Int
taskTemplates :: Maybe [TaskTemplateMetadata]
nextToken :: Maybe Text
$sel:httpStatus:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> Int
$sel:taskTemplates:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> Maybe [TaskTemplateMetadata]
$sel:nextToken:ListTaskTemplatesResponse' :: ListTaskTemplatesResponse -> 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 [TaskTemplateMetadata]
taskTemplates
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus