{-# 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.UpdateTaskTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates details about a specific task template in the specified Amazon
-- Connect instance. This operation does not support partial updates.
-- Instead it does a full update of template content.
module Amazonka.Connect.UpdateTaskTemplate
  ( -- * Creating a Request
    UpdateTaskTemplate (..),
    newUpdateTaskTemplate,

    -- * Request Lenses
    updateTaskTemplate_constraints,
    updateTaskTemplate_contactFlowId,
    updateTaskTemplate_defaults,
    updateTaskTemplate_description,
    updateTaskTemplate_fields,
    updateTaskTemplate_name,
    updateTaskTemplate_status,
    updateTaskTemplate_taskTemplateId,
    updateTaskTemplate_instanceId,

    -- * Destructuring the Response
    UpdateTaskTemplateResponse (..),
    newUpdateTaskTemplateResponse,

    -- * Response Lenses
    updateTaskTemplateResponse_arn,
    updateTaskTemplateResponse_constraints,
    updateTaskTemplateResponse_contactFlowId,
    updateTaskTemplateResponse_createdTime,
    updateTaskTemplateResponse_defaults,
    updateTaskTemplateResponse_description,
    updateTaskTemplateResponse_fields,
    updateTaskTemplateResponse_id,
    updateTaskTemplateResponse_instanceId,
    updateTaskTemplateResponse_lastModifiedTime,
    updateTaskTemplateResponse_name,
    updateTaskTemplateResponse_status,
    updateTaskTemplateResponse_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:/ 'newUpdateTaskTemplate' smart constructor.
data UpdateTaskTemplate = UpdateTaskTemplate'
  { -- | Constraints that are applicable to the fields listed.
    UpdateTaskTemplate -> Maybe TaskTemplateConstraints
constraints :: Prelude.Maybe TaskTemplateConstraints,
    -- | The identifier of the flow that runs by default when a task is created
    -- by referencing this template.
    UpdateTaskTemplate -> Maybe Text
contactFlowId :: Prelude.Maybe Prelude.Text,
    -- | The default values for fields when a task is created by referencing this
    -- template.
    UpdateTaskTemplate -> Maybe TaskTemplateDefaults
defaults :: Prelude.Maybe TaskTemplateDefaults,
    -- | The description of the task template.
    UpdateTaskTemplate -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Fields that are part of the template.
    UpdateTaskTemplate -> Maybe [TaskTemplateField]
fields :: Prelude.Maybe [TaskTemplateField],
    -- | The name of the task template.
    UpdateTaskTemplate -> Maybe Text
name :: 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.
    UpdateTaskTemplate -> Maybe TaskTemplateStatus
status :: Prelude.Maybe TaskTemplateStatus,
    -- | A unique identifier for the task template.
    UpdateTaskTemplate -> Text
taskTemplateId :: Prelude.Text,
    -- | The identifier of the Amazon Connect instance. You can find the
    -- instanceId in the ARN of the instance.
    UpdateTaskTemplate -> Text
instanceId :: Prelude.Text
  }
  deriving (UpdateTaskTemplate -> UpdateTaskTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateTaskTemplate -> UpdateTaskTemplate -> Bool
$c/= :: UpdateTaskTemplate -> UpdateTaskTemplate -> Bool
== :: UpdateTaskTemplate -> UpdateTaskTemplate -> Bool
$c== :: UpdateTaskTemplate -> UpdateTaskTemplate -> Bool
Prelude.Eq, ReadPrec [UpdateTaskTemplate]
ReadPrec UpdateTaskTemplate
Int -> ReadS UpdateTaskTemplate
ReadS [UpdateTaskTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateTaskTemplate]
$creadListPrec :: ReadPrec [UpdateTaskTemplate]
readPrec :: ReadPrec UpdateTaskTemplate
$creadPrec :: ReadPrec UpdateTaskTemplate
readList :: ReadS [UpdateTaskTemplate]
$creadList :: ReadS [UpdateTaskTemplate]
readsPrec :: Int -> ReadS UpdateTaskTemplate
$creadsPrec :: Int -> ReadS UpdateTaskTemplate
Prelude.Read, Int -> UpdateTaskTemplate -> ShowS
[UpdateTaskTemplate] -> ShowS
UpdateTaskTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateTaskTemplate] -> ShowS
$cshowList :: [UpdateTaskTemplate] -> ShowS
show :: UpdateTaskTemplate -> String
$cshow :: UpdateTaskTemplate -> String
showsPrec :: Int -> UpdateTaskTemplate -> ShowS
$cshowsPrec :: Int -> UpdateTaskTemplate -> ShowS
Prelude.Show, forall x. Rep UpdateTaskTemplate x -> UpdateTaskTemplate
forall x. UpdateTaskTemplate -> Rep UpdateTaskTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateTaskTemplate x -> UpdateTaskTemplate
$cfrom :: forall x. UpdateTaskTemplate -> Rep UpdateTaskTemplate x
Prelude.Generic)

-- |
-- Create a value of 'UpdateTaskTemplate' 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', 'updateTaskTemplate_constraints' - Constraints that are applicable to the fields listed.
--
-- 'contactFlowId', 'updateTaskTemplate_contactFlowId' - The identifier of the flow that runs by default when a task is created
-- by referencing this template.
--
-- 'defaults', 'updateTaskTemplate_defaults' - The default values for fields when a task is created by referencing this
-- template.
--
-- 'description', 'updateTaskTemplate_description' - The description of the task template.
--
-- 'fields', 'updateTaskTemplate_fields' - Fields that are part of the template.
--
-- 'name', 'updateTaskTemplate_name' - The name of the task template.
--
-- 'status', 'updateTaskTemplate_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.
--
-- 'taskTemplateId', 'updateTaskTemplate_taskTemplateId' - A unique identifier for the task template.
--
-- 'instanceId', 'updateTaskTemplate_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
newUpdateTaskTemplate ::
  -- | 'taskTemplateId'
  Prelude.Text ->
  -- | 'instanceId'
  Prelude.Text ->
  UpdateTaskTemplate
newUpdateTaskTemplate :: Text -> Text -> UpdateTaskTemplate
newUpdateTaskTemplate Text
pTaskTemplateId_ Text
pInstanceId_ =
  UpdateTaskTemplate'
    { $sel:constraints:UpdateTaskTemplate' :: Maybe TaskTemplateConstraints
constraints = forall a. Maybe a
Prelude.Nothing,
      $sel:contactFlowId:UpdateTaskTemplate' :: Maybe Text
contactFlowId = forall a. Maybe a
Prelude.Nothing,
      $sel:defaults:UpdateTaskTemplate' :: Maybe TaskTemplateDefaults
defaults = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdateTaskTemplate' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:fields:UpdateTaskTemplate' :: Maybe [TaskTemplateField]
fields = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateTaskTemplate' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UpdateTaskTemplate' :: Maybe TaskTemplateStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:taskTemplateId:UpdateTaskTemplate' :: Text
taskTemplateId = Text
pTaskTemplateId_,
      $sel:instanceId:UpdateTaskTemplate' :: Text
instanceId = Text
pInstanceId_
    }

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

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

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

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

-- | Fields that are part of the template.
updateTaskTemplate_fields :: Lens.Lens' UpdateTaskTemplate (Prelude.Maybe [TaskTemplateField])
updateTaskTemplate_fields :: Lens' UpdateTaskTemplate (Maybe [TaskTemplateField])
updateTaskTemplate_fields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplate' {Maybe [TaskTemplateField]
fields :: Maybe [TaskTemplateField]
$sel:fields:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe [TaskTemplateField]
fields} -> Maybe [TaskTemplateField]
fields) (\s :: UpdateTaskTemplate
s@UpdateTaskTemplate' {} Maybe [TaskTemplateField]
a -> UpdateTaskTemplate
s {$sel:fields:UpdateTaskTemplate' :: Maybe [TaskTemplateField]
fields = Maybe [TaskTemplateField]
a} :: UpdateTaskTemplate) 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 name of the task template.
updateTaskTemplate_name :: Lens.Lens' UpdateTaskTemplate (Prelude.Maybe Prelude.Text)
updateTaskTemplate_name :: Lens' UpdateTaskTemplate (Maybe Text)
updateTaskTemplate_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplate' {Maybe Text
name :: Maybe Text
$sel:name:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateTaskTemplate
s@UpdateTaskTemplate' {} Maybe Text
a -> UpdateTaskTemplate
s {$sel:name:UpdateTaskTemplate' :: Maybe Text
name = Maybe Text
a} :: UpdateTaskTemplate)

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

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

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

instance Core.AWSRequest UpdateTaskTemplate where
  type
    AWSResponse UpdateTaskTemplate =
      UpdateTaskTemplateResponse
  request :: (Service -> Service)
-> UpdateTaskTemplate -> Request UpdateTaskTemplate
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 UpdateTaskTemplate
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateTaskTemplate)))
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 TaskTemplateConstraints
-> Maybe Text
-> Maybe POSIX
-> Maybe TaskTemplateDefaults
-> Maybe Text
-> Maybe [TaskTemplateField]
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe TaskTemplateStatus
-> Int
-> UpdateTaskTemplateResponse
UpdateTaskTemplateResponse'
            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
"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 (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
"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 (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
"Name")
            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateTaskTemplate where
  hashWithSalt :: Int -> UpdateTaskTemplate -> Int
hashWithSalt Int
_salt UpdateTaskTemplate' {Maybe [TaskTemplateField]
Maybe Text
Maybe TaskTemplateDefaults
Maybe TaskTemplateConstraints
Maybe TaskTemplateStatus
Text
instanceId :: Text
taskTemplateId :: Text
status :: Maybe TaskTemplateStatus
name :: Maybe Text
fields :: Maybe [TaskTemplateField]
description :: Maybe Text
defaults :: Maybe TaskTemplateDefaults
contactFlowId :: Maybe Text
constraints :: Maybe TaskTemplateConstraints
$sel:instanceId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:taskTemplateId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:status:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateStatus
$sel:name:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:fields:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe [TaskTemplateField]
$sel:description:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:defaults:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateDefaults
$sel:contactFlowId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:constraints:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateConstraints
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TaskTemplateConstraints
constraints
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
contactFlowId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TaskTemplateDefaults
defaults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TaskTemplateField]
fields
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TaskTemplateStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
taskTemplateId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceId

instance Prelude.NFData UpdateTaskTemplate where
  rnf :: UpdateTaskTemplate -> ()
rnf UpdateTaskTemplate' {Maybe [TaskTemplateField]
Maybe Text
Maybe TaskTemplateDefaults
Maybe TaskTemplateConstraints
Maybe TaskTemplateStatus
Text
instanceId :: Text
taskTemplateId :: Text
status :: Maybe TaskTemplateStatus
name :: Maybe Text
fields :: Maybe [TaskTemplateField]
description :: Maybe Text
defaults :: Maybe TaskTemplateDefaults
contactFlowId :: Maybe Text
constraints :: Maybe TaskTemplateConstraints
$sel:instanceId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:taskTemplateId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:status:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateStatus
$sel:name:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:fields:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe [TaskTemplateField]
$sel:description:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:defaults:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateDefaults
$sel:contactFlowId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:constraints:UpdateTaskTemplate' :: UpdateTaskTemplate -> 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 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
name
      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
taskTemplateId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId

instance Data.ToHeaders UpdateTaskTemplate where
  toHeaders :: UpdateTaskTemplate -> 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.ToJSON UpdateTaskTemplate where
  toJSON :: UpdateTaskTemplate -> Value
toJSON UpdateTaskTemplate' {Maybe [TaskTemplateField]
Maybe Text
Maybe TaskTemplateDefaults
Maybe TaskTemplateConstraints
Maybe TaskTemplateStatus
Text
instanceId :: Text
taskTemplateId :: Text
status :: Maybe TaskTemplateStatus
name :: Maybe Text
fields :: Maybe [TaskTemplateField]
description :: Maybe Text
defaults :: Maybe TaskTemplateDefaults
contactFlowId :: Maybe Text
constraints :: Maybe TaskTemplateConstraints
$sel:instanceId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:taskTemplateId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:status:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateStatus
$sel:name:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:fields:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe [TaskTemplateField]
$sel:description:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:defaults:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateDefaults
$sel:contactFlowId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:constraints:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateConstraints
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Constraints" 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 TaskTemplateConstraints
constraints,
            (Key
"ContactFlowId" 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
contactFlowId,
            (Key
"Defaults" 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 TaskTemplateDefaults
defaults,
            (Key
"Description" 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
description,
            (Key
"Fields" 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 [TaskTemplateField]
fields,
            (Key
"Name" 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
name,
            (Key
"Status" 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 TaskTemplateStatus
status
          ]
      )

instance Data.ToPath UpdateTaskTemplate where
  toPath :: UpdateTaskTemplate -> ByteString
toPath UpdateTaskTemplate' {Maybe [TaskTemplateField]
Maybe Text
Maybe TaskTemplateDefaults
Maybe TaskTemplateConstraints
Maybe TaskTemplateStatus
Text
instanceId :: Text
taskTemplateId :: Text
status :: Maybe TaskTemplateStatus
name :: Maybe Text
fields :: Maybe [TaskTemplateField]
description :: Maybe Text
defaults :: Maybe TaskTemplateDefaults
contactFlowId :: Maybe Text
constraints :: Maybe TaskTemplateConstraints
$sel:instanceId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:taskTemplateId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Text
$sel:status:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateStatus
$sel:name:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:fields:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe [TaskTemplateField]
$sel:description:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:defaults:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateDefaults
$sel:contactFlowId:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe Text
$sel:constraints:UpdateTaskTemplate' :: UpdateTaskTemplate -> Maybe TaskTemplateConstraints
..} =
    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 UpdateTaskTemplate where
  toQuery :: UpdateTaskTemplate -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

-- |
-- Create a value of 'UpdateTaskTemplateResponse' 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:
--
-- 'arn', 'updateTaskTemplateResponse_arn' - The Amazon Resource Name (ARN) for the task template resource.
--
-- 'constraints', 'updateTaskTemplateResponse_constraints' - Constraints that are applicable to the fields listed.
--
-- 'contactFlowId', 'updateTaskTemplateResponse_contactFlowId' - The identifier of the flow that runs by default when a task is created
-- by referencing this template.
--
-- 'createdTime', 'updateTaskTemplateResponse_createdTime' - The timestamp when the task template was created.
--
-- 'defaults', 'updateTaskTemplateResponse_defaults' - The default values for fields when a task is created by referencing this
-- template.
--
-- 'description', 'updateTaskTemplateResponse_description' - The description of the task template.
--
-- 'fields', 'updateTaskTemplateResponse_fields' - Fields that are part of the template.
--
-- 'id', 'updateTaskTemplateResponse_id' - The identifier of the task template resource.
--
-- 'instanceId', 'updateTaskTemplateResponse_instanceId' - The identifier of the Amazon Connect instance. You can find the
-- instanceId in the ARN of the instance.
--
-- 'lastModifiedTime', 'updateTaskTemplateResponse_lastModifiedTime' - The timestamp when the task template was last modified.
--
-- 'name', 'updateTaskTemplateResponse_name' - The name of the task template.
--
-- 'status', 'updateTaskTemplateResponse_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.
--
-- 'httpStatus', 'updateTaskTemplateResponse_httpStatus' - The response's http status code.
newUpdateTaskTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateTaskTemplateResponse
newUpdateTaskTemplateResponse :: Int -> UpdateTaskTemplateResponse
newUpdateTaskTemplateResponse Int
pHttpStatus_ =
  UpdateTaskTemplateResponse'
    { $sel:arn:UpdateTaskTemplateResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:constraints:UpdateTaskTemplateResponse' :: Maybe TaskTemplateConstraints
constraints = forall a. Maybe a
Prelude.Nothing,
      $sel:contactFlowId:UpdateTaskTemplateResponse' :: Maybe Text
contactFlowId = forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:UpdateTaskTemplateResponse' :: Maybe POSIX
createdTime = forall a. Maybe a
Prelude.Nothing,
      $sel:defaults:UpdateTaskTemplateResponse' :: Maybe TaskTemplateDefaults
defaults = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdateTaskTemplateResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:fields:UpdateTaskTemplateResponse' :: Maybe [TaskTemplateField]
fields = forall a. Maybe a
Prelude.Nothing,
      $sel:id:UpdateTaskTemplateResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:UpdateTaskTemplateResponse' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:UpdateTaskTemplateResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateTaskTemplateResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UpdateTaskTemplateResponse' :: Maybe TaskTemplateStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateTaskTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) for the task template resource.
updateTaskTemplateResponse_arn :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe Prelude.Text)
updateTaskTemplateResponse_arn :: Lens' UpdateTaskTemplateResponse (Maybe Text)
updateTaskTemplateResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe Text
a -> UpdateTaskTemplateResponse
s {$sel:arn:UpdateTaskTemplateResponse' :: Maybe Text
arn = Maybe Text
a} :: UpdateTaskTemplateResponse)

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

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

-- | The timestamp when the task template was created.
updateTaskTemplateResponse_createdTime :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe Prelude.UTCTime)
updateTaskTemplateResponse_createdTime :: Lens' UpdateTaskTemplateResponse (Maybe UTCTime)
updateTaskTemplateResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe POSIX
createdTime :: Maybe POSIX
$sel:createdTime:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe POSIX
createdTime} -> Maybe POSIX
createdTime) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe POSIX
a -> UpdateTaskTemplateResponse
s {$sel:createdTime:UpdateTaskTemplateResponse' :: Maybe POSIX
createdTime = Maybe POSIX
a} :: UpdateTaskTemplateResponse) 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.
updateTaskTemplateResponse_defaults :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe TaskTemplateDefaults)
updateTaskTemplateResponse_defaults :: Lens' UpdateTaskTemplateResponse (Maybe TaskTemplateDefaults)
updateTaskTemplateResponse_defaults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe TaskTemplateDefaults
defaults :: Maybe TaskTemplateDefaults
$sel:defaults:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe TaskTemplateDefaults
defaults} -> Maybe TaskTemplateDefaults
defaults) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe TaskTemplateDefaults
a -> UpdateTaskTemplateResponse
s {$sel:defaults:UpdateTaskTemplateResponse' :: Maybe TaskTemplateDefaults
defaults = Maybe TaskTemplateDefaults
a} :: UpdateTaskTemplateResponse)

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

-- | Fields that are part of the template.
updateTaskTemplateResponse_fields :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe [TaskTemplateField])
updateTaskTemplateResponse_fields :: Lens' UpdateTaskTemplateResponse (Maybe [TaskTemplateField])
updateTaskTemplateResponse_fields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe [TaskTemplateField]
fields :: Maybe [TaskTemplateField]
$sel:fields:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe [TaskTemplateField]
fields} -> Maybe [TaskTemplateField]
fields) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe [TaskTemplateField]
a -> UpdateTaskTemplateResponse
s {$sel:fields:UpdateTaskTemplateResponse' :: Maybe [TaskTemplateField]
fields = Maybe [TaskTemplateField]
a} :: UpdateTaskTemplateResponse) 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 task template resource.
updateTaskTemplateResponse_id :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe Prelude.Text)
updateTaskTemplateResponse_id :: Lens' UpdateTaskTemplateResponse (Maybe Text)
updateTaskTemplateResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe Text
id :: Maybe Text
$sel:id:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe Text
a -> UpdateTaskTemplateResponse
s {$sel:id:UpdateTaskTemplateResponse' :: Maybe Text
id = Maybe Text
a} :: UpdateTaskTemplateResponse)

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

-- | The timestamp when the task template was last modified.
updateTaskTemplateResponse_lastModifiedTime :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe Prelude.UTCTime)
updateTaskTemplateResponse_lastModifiedTime :: Lens' UpdateTaskTemplateResponse (Maybe UTCTime)
updateTaskTemplateResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe POSIX
a -> UpdateTaskTemplateResponse
s {$sel:lastModifiedTime:UpdateTaskTemplateResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: UpdateTaskTemplateResponse) 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 name of the task template.
updateTaskTemplateResponse_name :: Lens.Lens' UpdateTaskTemplateResponse (Prelude.Maybe Prelude.Text)
updateTaskTemplateResponse_name :: Lens' UpdateTaskTemplateResponse (Maybe Text)
updateTaskTemplateResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateTaskTemplateResponse' {Maybe Text
name :: Maybe Text
$sel:name:UpdateTaskTemplateResponse' :: UpdateTaskTemplateResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateTaskTemplateResponse
s@UpdateTaskTemplateResponse' {} Maybe Text
a -> UpdateTaskTemplateResponse
s {$sel:name:UpdateTaskTemplateResponse' :: Maybe Text
name = Maybe Text
a} :: UpdateTaskTemplateResponse)

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

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

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