{-# 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.GetTaskTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets details about a specific task template in the specified Amazon
-- Connect instance.
module Amazonka.Connect.GetTaskTemplate
  ( -- * Creating a Request
    GetTaskTemplate (..),
    newGetTaskTemplate,

    -- * Request Lenses
    getTaskTemplate_snapshotVersion,
    getTaskTemplate_instanceId,
    getTaskTemplate_taskTemplateId,

    -- * Destructuring the Response
    GetTaskTemplateResponse (..),
    newGetTaskTemplateResponse,

    -- * Response Lenses
    getTaskTemplateResponse_constraints,
    getTaskTemplateResponse_contactFlowId,
    getTaskTemplateResponse_createdTime,
    getTaskTemplateResponse_defaults,
    getTaskTemplateResponse_description,
    getTaskTemplateResponse_fields,
    getTaskTemplateResponse_instanceId,
    getTaskTemplateResponse_lastModifiedTime,
    getTaskTemplateResponse_status,
    getTaskTemplateResponse_tags,
    getTaskTemplateResponse_httpStatus,
    getTaskTemplateResponse_id,
    getTaskTemplateResponse_arn,
    getTaskTemplateResponse_name,
  )
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:/ 'newGetTaskTemplate' smart constructor.
data GetTaskTemplate = GetTaskTemplate'
  { -- | The system generated version of a task template that is associated with
    -- a task, when the task is created.
    GetTaskTemplate -> Maybe Text
snapshotVersion :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    GetTaskTemplate -> Text
instanceId :: Prelude.Text,
    -- | A unique identifier for the task template.
    GetTaskTemplate -> Text
taskTemplateId :: Prelude.Text
  }
  deriving (GetTaskTemplate -> GetTaskTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTaskTemplate -> GetTaskTemplate -> Bool
$c/= :: GetTaskTemplate -> GetTaskTemplate -> Bool
== :: GetTaskTemplate -> GetTaskTemplate -> Bool
$c== :: GetTaskTemplate -> GetTaskTemplate -> Bool
Prelude.Eq, ReadPrec [GetTaskTemplate]
ReadPrec GetTaskTemplate
Int -> ReadS GetTaskTemplate
ReadS [GetTaskTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTaskTemplate]
$creadListPrec :: ReadPrec [GetTaskTemplate]
readPrec :: ReadPrec GetTaskTemplate
$creadPrec :: ReadPrec GetTaskTemplate
readList :: ReadS [GetTaskTemplate]
$creadList :: ReadS [GetTaskTemplate]
readsPrec :: Int -> ReadS GetTaskTemplate
$creadsPrec :: Int -> ReadS GetTaskTemplate
Prelude.Read, Int -> GetTaskTemplate -> ShowS
[GetTaskTemplate] -> ShowS
GetTaskTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTaskTemplate] -> ShowS
$cshowList :: [GetTaskTemplate] -> ShowS
show :: GetTaskTemplate -> String
$cshow :: GetTaskTemplate -> String
showsPrec :: Int -> GetTaskTemplate -> ShowS
$cshowsPrec :: Int -> GetTaskTemplate -> ShowS
Prelude.Show, forall x. Rep GetTaskTemplate x -> GetTaskTemplate
forall x. GetTaskTemplate -> Rep GetTaskTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTaskTemplate x -> GetTaskTemplate
$cfrom :: forall x. GetTaskTemplate -> Rep GetTaskTemplate x
Prelude.Generic)

-- |
-- Create a value of 'GetTaskTemplate' 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:
--
-- 'snapshotVersion', 'getTaskTemplate_snapshotVersion' - The system generated version of a task template that is associated with
-- a task, when the task is created.
--
-- 'instanceId', 'getTaskTemplate_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
--
-- 'taskTemplateId', 'getTaskTemplate_taskTemplateId' - A unique identifier for the task template.
newGetTaskTemplate ::
  -- | 'instanceId'
  Prelude.Text ->
  -- | 'taskTemplateId'
  Prelude.Text ->
  GetTaskTemplate
newGetTaskTemplate :: Text -> Text -> GetTaskTemplate
newGetTaskTemplate Text
pInstanceId_ Text
pTaskTemplateId_ =
  GetTaskTemplate'
    { $sel:snapshotVersion:GetTaskTemplate' :: Maybe Text
snapshotVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:GetTaskTemplate' :: Text
instanceId = Text
pInstanceId_,
      $sel:taskTemplateId:GetTaskTemplate' :: Text
taskTemplateId = Text
pTaskTemplateId_
    }

-- | The system generated version of a task template that is associated with
-- a task, when the task is created.
getTaskTemplate_snapshotVersion :: Lens.Lens' GetTaskTemplate (Prelude.Maybe Prelude.Text)
getTaskTemplate_snapshotVersion :: Lens' GetTaskTemplate (Maybe Text)
getTaskTemplate_snapshotVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplate' {Maybe Text
snapshotVersion :: Maybe Text
$sel:snapshotVersion:GetTaskTemplate' :: GetTaskTemplate -> Maybe Text
snapshotVersion} -> Maybe Text
snapshotVersion) (\s :: GetTaskTemplate
s@GetTaskTemplate' {} Maybe Text
a -> GetTaskTemplate
s {$sel:snapshotVersion:GetTaskTemplate' :: Maybe Text
snapshotVersion = Maybe Text
a} :: GetTaskTemplate)

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

-- | A unique identifier for the task template.
getTaskTemplate_taskTemplateId :: Lens.Lens' GetTaskTemplate Prelude.Text
getTaskTemplate_taskTemplateId :: Lens' GetTaskTemplate Text
getTaskTemplate_taskTemplateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplate' {Text
taskTemplateId :: Text
$sel:taskTemplateId:GetTaskTemplate' :: GetTaskTemplate -> Text
taskTemplateId} -> Text
taskTemplateId) (\s :: GetTaskTemplate
s@GetTaskTemplate' {} Text
a -> GetTaskTemplate
s {$sel:taskTemplateId:GetTaskTemplate' :: Text
taskTemplateId = Text
a} :: GetTaskTemplate)

instance Core.AWSRequest GetTaskTemplate where
  type
    AWSResponse GetTaskTemplate =
      GetTaskTemplateResponse
  request :: (Service -> Service) -> GetTaskTemplate -> Request GetTaskTemplate
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 GetTaskTemplate
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetTaskTemplate)))
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 TaskTemplateConstraints
-> Maybe Text
-> Maybe POSIX
-> Maybe TaskTemplateDefaults
-> Maybe Text
-> Maybe [TaskTemplateField]
-> Maybe Text
-> Maybe POSIX
-> Maybe TaskTemplateStatus
-> Maybe (HashMap Text Text)
-> Int
-> Text
-> Text
-> Text
-> GetTaskTemplateResponse
GetTaskTemplateResponse'
            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
"Constraints")
            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
"ContactFlowId")
            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
"CreatedTime")
            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
"Defaults")
            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
"Description")
            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
"Fields" 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
"InstanceId")
            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
"LastModifiedTime")
            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
"Status")
            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
"Tags" 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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Name")
      )

instance Prelude.Hashable GetTaskTemplate where
  hashWithSalt :: Int -> GetTaskTemplate -> Int
hashWithSalt Int
_salt GetTaskTemplate' {Maybe Text
Text
taskTemplateId :: Text
instanceId :: Text
snapshotVersion :: Maybe Text
$sel:taskTemplateId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:instanceId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:snapshotVersion:GetTaskTemplate' :: GetTaskTemplate -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
snapshotVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
taskTemplateId

instance Prelude.NFData GetTaskTemplate where
  rnf :: GetTaskTemplate -> ()
rnf GetTaskTemplate' {Maybe Text
Text
taskTemplateId :: Text
instanceId :: Text
snapshotVersion :: Maybe Text
$sel:taskTemplateId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:instanceId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:snapshotVersion:GetTaskTemplate' :: GetTaskTemplate -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
snapshotVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
taskTemplateId

instance Data.ToHeaders GetTaskTemplate where
  toHeaders :: GetTaskTemplate -> 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 GetTaskTemplate where
  toPath :: GetTaskTemplate -> ByteString
toPath GetTaskTemplate' {Maybe Text
Text
taskTemplateId :: Text
instanceId :: Text
snapshotVersion :: Maybe Text
$sel:taskTemplateId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:instanceId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:snapshotVersion:GetTaskTemplate' :: GetTaskTemplate -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/instance/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
instanceId,
        ByteString
"/task/template/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
taskTemplateId
      ]

instance Data.ToQuery GetTaskTemplate where
  toQuery :: GetTaskTemplate -> QueryString
toQuery GetTaskTemplate' {Maybe Text
Text
taskTemplateId :: Text
instanceId :: Text
snapshotVersion :: Maybe Text
$sel:taskTemplateId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:instanceId:GetTaskTemplate' :: GetTaskTemplate -> Text
$sel:snapshotVersion:GetTaskTemplate' :: GetTaskTemplate -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"snapshotVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
snapshotVersion]

-- | /See:/ 'newGetTaskTemplateResponse' smart constructor.
data GetTaskTemplateResponse = GetTaskTemplateResponse'
  { -- | Constraints that are applicable to the fields listed.
    GetTaskTemplateResponse -> Maybe TaskTemplateConstraints
constraints :: Prelude.Maybe TaskTemplateConstraints,
    -- | The identifier of the flow that runs by default when a task is created
    -- by referencing this template.
    GetTaskTemplateResponse -> Maybe Text
contactFlowId :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the task template was created.
    GetTaskTemplateResponse -> Maybe POSIX
createdTime :: Prelude.Maybe Data.POSIX,
    -- | The default values for fields when a task is created by referencing this
    -- template.
    GetTaskTemplateResponse -> Maybe TaskTemplateDefaults
defaults :: Prelude.Maybe TaskTemplateDefaults,
    -- | The description of the task template.
    GetTaskTemplateResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Fields that are part of the template.
    GetTaskTemplateResponse -> Maybe [TaskTemplateField]
fields :: Prelude.Maybe [TaskTemplateField],
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    GetTaskTemplateResponse -> Maybe Text
instanceId :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the task template was last modified.
    GetTaskTemplateResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | 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.
    GetTaskTemplateResponse -> Maybe TaskTemplateStatus
status :: Prelude.Maybe TaskTemplateStatus,
    -- | The tags used to organize, track, or control access for this resource.
    -- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
    GetTaskTemplateResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    GetTaskTemplateResponse -> Int
httpStatus :: Prelude.Int,
    -- | A unique identifier for the task template.
    GetTaskTemplateResponse -> Text
id :: Prelude.Text,
    -- | The Amazon Resource Name (ARN).
    GetTaskTemplateResponse -> Text
arn :: Prelude.Text,
    -- | The name of the task template.
    GetTaskTemplateResponse -> Text
name :: Prelude.Text
  }
  deriving (GetTaskTemplateResponse -> GetTaskTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTaskTemplateResponse -> GetTaskTemplateResponse -> Bool
$c/= :: GetTaskTemplateResponse -> GetTaskTemplateResponse -> Bool
== :: GetTaskTemplateResponse -> GetTaskTemplateResponse -> Bool
$c== :: GetTaskTemplateResponse -> GetTaskTemplateResponse -> Bool
Prelude.Eq, ReadPrec [GetTaskTemplateResponse]
ReadPrec GetTaskTemplateResponse
Int -> ReadS GetTaskTemplateResponse
ReadS [GetTaskTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTaskTemplateResponse]
$creadListPrec :: ReadPrec [GetTaskTemplateResponse]
readPrec :: ReadPrec GetTaskTemplateResponse
$creadPrec :: ReadPrec GetTaskTemplateResponse
readList :: ReadS [GetTaskTemplateResponse]
$creadList :: ReadS [GetTaskTemplateResponse]
readsPrec :: Int -> ReadS GetTaskTemplateResponse
$creadsPrec :: Int -> ReadS GetTaskTemplateResponse
Prelude.Read, Int -> GetTaskTemplateResponse -> ShowS
[GetTaskTemplateResponse] -> ShowS
GetTaskTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTaskTemplateResponse] -> ShowS
$cshowList :: [GetTaskTemplateResponse] -> ShowS
show :: GetTaskTemplateResponse -> String
$cshow :: GetTaskTemplateResponse -> String
showsPrec :: Int -> GetTaskTemplateResponse -> ShowS
$cshowsPrec :: Int -> GetTaskTemplateResponse -> ShowS
Prelude.Show, forall x. Rep GetTaskTemplateResponse x -> GetTaskTemplateResponse
forall x. GetTaskTemplateResponse -> Rep GetTaskTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTaskTemplateResponse x -> GetTaskTemplateResponse
$cfrom :: forall x. GetTaskTemplateResponse -> Rep GetTaskTemplateResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetTaskTemplateResponse' 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:
--
-- 'constraints', 'getTaskTemplateResponse_constraints' - Constraints that are applicable to the fields listed.
--
-- 'contactFlowId', 'getTaskTemplateResponse_contactFlowId' - The identifier of the flow that runs by default when a task is created
-- by referencing this template.
--
-- 'createdTime', 'getTaskTemplateResponse_createdTime' - The timestamp when the task template was created.
--
-- 'defaults', 'getTaskTemplateResponse_defaults' - The default values for fields when a task is created by referencing this
-- template.
--
-- 'description', 'getTaskTemplateResponse_description' - The description of the task template.
--
-- 'fields', 'getTaskTemplateResponse_fields' - Fields that are part of the template.
--
-- 'instanceId', 'getTaskTemplateResponse_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
--
-- 'lastModifiedTime', 'getTaskTemplateResponse_lastModifiedTime' - The timestamp when the task template was last modified.
--
-- 'status', 'getTaskTemplateResponse_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.
--
-- 'tags', 'getTaskTemplateResponse_tags' - The tags used to organize, track, or control access for this resource.
-- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
--
-- 'httpStatus', 'getTaskTemplateResponse_httpStatus' - The response's http status code.
--
-- 'id', 'getTaskTemplateResponse_id' - A unique identifier for the task template.
--
-- 'arn', 'getTaskTemplateResponse_arn' - The Amazon Resource Name (ARN).
--
-- 'name', 'getTaskTemplateResponse_name' - The name of the task template.
newGetTaskTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'id'
  Prelude.Text ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  GetTaskTemplateResponse
newGetTaskTemplateResponse :: Int -> Text -> Text -> Text -> GetTaskTemplateResponse
newGetTaskTemplateResponse
  Int
pHttpStatus_
  Text
pId_
  Text
pArn_
  Text
pName_ =
    GetTaskTemplateResponse'
      { $sel:constraints:GetTaskTemplateResponse' :: Maybe TaskTemplateConstraints
constraints =
          forall a. Maybe a
Prelude.Nothing,
        $sel:contactFlowId:GetTaskTemplateResponse' :: Maybe Text
contactFlowId = forall a. Maybe a
Prelude.Nothing,
        $sel:createdTime:GetTaskTemplateResponse' :: Maybe POSIX
createdTime = forall a. Maybe a
Prelude.Nothing,
        $sel:defaults:GetTaskTemplateResponse' :: Maybe TaskTemplateDefaults
defaults = forall a. Maybe a
Prelude.Nothing,
        $sel:description:GetTaskTemplateResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
        $sel:fields:GetTaskTemplateResponse' :: Maybe [TaskTemplateField]
fields = forall a. Maybe a
Prelude.Nothing,
        $sel:instanceId:GetTaskTemplateResponse' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedTime:GetTaskTemplateResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
        $sel:status:GetTaskTemplateResponse' :: Maybe TaskTemplateStatus
status = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:GetTaskTemplateResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetTaskTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:id:GetTaskTemplateResponse' :: Text
id = Text
pId_,
        $sel:arn:GetTaskTemplateResponse' :: Text
arn = Text
pArn_,
        $sel:name:GetTaskTemplateResponse' :: Text
name = Text
pName_
      }

-- | Constraints that are applicable to the fields listed.
getTaskTemplateResponse_constraints :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe TaskTemplateConstraints)
getTaskTemplateResponse_constraints :: Lens' GetTaskTemplateResponse (Maybe TaskTemplateConstraints)
getTaskTemplateResponse_constraints = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe TaskTemplateConstraints
constraints :: Maybe TaskTemplateConstraints
$sel:constraints:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateConstraints
constraints} -> Maybe TaskTemplateConstraints
constraints) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe TaskTemplateConstraints
a -> GetTaskTemplateResponse
s {$sel:constraints:GetTaskTemplateResponse' :: Maybe TaskTemplateConstraints
constraints = Maybe TaskTemplateConstraints
a} :: GetTaskTemplateResponse)

-- | The identifier of the flow that runs by default when a task is created
-- by referencing this template.
getTaskTemplateResponse_contactFlowId :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe Prelude.Text)
getTaskTemplateResponse_contactFlowId :: Lens' GetTaskTemplateResponse (Maybe Text)
getTaskTemplateResponse_contactFlowId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe Text
contactFlowId :: Maybe Text
$sel:contactFlowId:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe Text
contactFlowId} -> Maybe Text
contactFlowId) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe Text
a -> GetTaskTemplateResponse
s {$sel:contactFlowId:GetTaskTemplateResponse' :: Maybe Text
contactFlowId = Maybe Text
a} :: GetTaskTemplateResponse)

-- | The timestamp when the task template was created.
getTaskTemplateResponse_createdTime :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe Prelude.UTCTime)
getTaskTemplateResponse_createdTime :: Lens' GetTaskTemplateResponse (Maybe UTCTime)
getTaskTemplateResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe POSIX
createdTime :: Maybe POSIX
$sel:createdTime:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe POSIX
createdTime} -> Maybe POSIX
createdTime) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe POSIX
a -> GetTaskTemplateResponse
s {$sel:createdTime:GetTaskTemplateResponse' :: Maybe POSIX
createdTime = Maybe POSIX
a} :: GetTaskTemplateResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The default values for fields when a task is created by referencing this
-- template.
getTaskTemplateResponse_defaults :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe TaskTemplateDefaults)
getTaskTemplateResponse_defaults :: Lens' GetTaskTemplateResponse (Maybe TaskTemplateDefaults)
getTaskTemplateResponse_defaults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe TaskTemplateDefaults
defaults :: Maybe TaskTemplateDefaults
$sel:defaults:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateDefaults
defaults} -> Maybe TaskTemplateDefaults
defaults) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe TaskTemplateDefaults
a -> GetTaskTemplateResponse
s {$sel:defaults:GetTaskTemplateResponse' :: Maybe TaskTemplateDefaults
defaults = Maybe TaskTemplateDefaults
a} :: GetTaskTemplateResponse)

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

-- | Fields that are part of the template.
getTaskTemplateResponse_fields :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe [TaskTemplateField])
getTaskTemplateResponse_fields :: Lens' GetTaskTemplateResponse (Maybe [TaskTemplateField])
getTaskTemplateResponse_fields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe [TaskTemplateField]
fields :: Maybe [TaskTemplateField]
$sel:fields:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe [TaskTemplateField]
fields} -> Maybe [TaskTemplateField]
fields) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe [TaskTemplateField]
a -> GetTaskTemplateResponse
s {$sel:fields:GetTaskTemplateResponse' :: Maybe [TaskTemplateField]
fields = Maybe [TaskTemplateField]
a} :: GetTaskTemplateResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | The timestamp when the task template was last modified.
getTaskTemplateResponse_lastModifiedTime :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe Prelude.UTCTime)
getTaskTemplateResponse_lastModifiedTime :: Lens' GetTaskTemplateResponse (Maybe UTCTime)
getTaskTemplateResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe POSIX
a -> GetTaskTemplateResponse
s {$sel:lastModifiedTime:GetTaskTemplateResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: GetTaskTemplateResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | 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.
getTaskTemplateResponse_status :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe TaskTemplateStatus)
getTaskTemplateResponse_status :: Lens' GetTaskTemplateResponse (Maybe TaskTemplateStatus)
getTaskTemplateResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe TaskTemplateStatus
status :: Maybe TaskTemplateStatus
$sel:status:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateStatus
status} -> Maybe TaskTemplateStatus
status) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe TaskTemplateStatus
a -> GetTaskTemplateResponse
s {$sel:status:GetTaskTemplateResponse' :: Maybe TaskTemplateStatus
status = Maybe TaskTemplateStatus
a} :: GetTaskTemplateResponse)

-- | The tags used to organize, track, or control access for this resource.
-- For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.
getTaskTemplateResponse_tags :: Lens.Lens' GetTaskTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getTaskTemplateResponse_tags :: Lens' GetTaskTemplateResponse (Maybe (HashMap Text Text))
getTaskTemplateResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Maybe (HashMap Text Text)
a -> GetTaskTemplateResponse
s {$sel:tags:GetTaskTemplateResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetTaskTemplateResponse) 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.
getTaskTemplateResponse_httpStatus :: Lens.Lens' GetTaskTemplateResponse Prelude.Int
getTaskTemplateResponse_httpStatus :: Lens' GetTaskTemplateResponse Int
getTaskTemplateResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Int
a -> GetTaskTemplateResponse
s {$sel:httpStatus:GetTaskTemplateResponse' :: Int
httpStatus = Int
a} :: GetTaskTemplateResponse)

-- | A unique identifier for the task template.
getTaskTemplateResponse_id :: Lens.Lens' GetTaskTemplateResponse Prelude.Text
getTaskTemplateResponse_id :: Lens' GetTaskTemplateResponse Text
getTaskTemplateResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Text
id :: Text
$sel:id:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Text
id} -> Text
id) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Text
a -> GetTaskTemplateResponse
s {$sel:id:GetTaskTemplateResponse' :: Text
id = Text
a} :: GetTaskTemplateResponse)

-- | The Amazon Resource Name (ARN).
getTaskTemplateResponse_arn :: Lens.Lens' GetTaskTemplateResponse Prelude.Text
getTaskTemplateResponse_arn :: Lens' GetTaskTemplateResponse Text
getTaskTemplateResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTaskTemplateResponse' {Text
arn :: Text
$sel:arn:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Text
arn} -> Text
arn) (\s :: GetTaskTemplateResponse
s@GetTaskTemplateResponse' {} Text
a -> GetTaskTemplateResponse
s {$sel:arn:GetTaskTemplateResponse' :: Text
arn = Text
a} :: GetTaskTemplateResponse)

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

instance Prelude.NFData GetTaskTemplateResponse where
  rnf :: GetTaskTemplateResponse -> ()
rnf GetTaskTemplateResponse' {Int
Maybe [TaskTemplateField]
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe TaskTemplateDefaults
Maybe TaskTemplateConstraints
Maybe TaskTemplateStatus
Text
name :: Text
arn :: Text
id :: Text
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
status :: Maybe TaskTemplateStatus
lastModifiedTime :: Maybe POSIX
instanceId :: Maybe Text
fields :: Maybe [TaskTemplateField]
description :: Maybe Text
defaults :: Maybe TaskTemplateDefaults
createdTime :: Maybe POSIX
contactFlowId :: Maybe Text
constraints :: Maybe TaskTemplateConstraints
$sel:name:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Text
$sel:arn:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Text
$sel:id:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Text
$sel:httpStatus:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Int
$sel:tags:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe (HashMap Text Text)
$sel:status:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateStatus
$sel:lastModifiedTime:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe POSIX
$sel:instanceId:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe Text
$sel:fields:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe [TaskTemplateField]
$sel:description:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe Text
$sel:defaults:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateDefaults
$sel:createdTime:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe POSIX
$sel:contactFlowId:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe Text
$sel:constraints:GetTaskTemplateResponse' :: GetTaskTemplateResponse -> Maybe TaskTemplateConstraints
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe TaskTemplateConstraints
constraints
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
contactFlowId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TaskTemplateDefaults
defaults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TaskTemplateField]
fields
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTime
      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 Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name