{-# 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.MigrationHubOrchestrator.GetTemplateStepGroup
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get a step group in a template.
module Amazonka.MigrationHubOrchestrator.GetTemplateStepGroup
  ( -- * Creating a Request
    GetTemplateStepGroup (..),
    newGetTemplateStepGroup,

    -- * Request Lenses
    getTemplateStepGroup_templateId,
    getTemplateStepGroup_id,

    -- * Destructuring the Response
    GetTemplateStepGroupResponse (..),
    newGetTemplateStepGroupResponse,

    -- * Response Lenses
    getTemplateStepGroupResponse_creationTime,
    getTemplateStepGroupResponse_description,
    getTemplateStepGroupResponse_id,
    getTemplateStepGroupResponse_lastModifiedTime,
    getTemplateStepGroupResponse_name,
    getTemplateStepGroupResponse_next,
    getTemplateStepGroupResponse_previous,
    getTemplateStepGroupResponse_status,
    getTemplateStepGroupResponse_templateId,
    getTemplateStepGroupResponse_tools,
    getTemplateStepGroupResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubOrchestrator.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetTemplateStepGroup' smart constructor.
data GetTemplateStepGroup = GetTemplateStepGroup'
  { -- | The ID of the template.
    GetTemplateStepGroup -> Text
templateId :: Prelude.Text,
    -- | The ID of the step group.
    GetTemplateStepGroup -> Text
id :: Prelude.Text
  }
  deriving (GetTemplateStepGroup -> GetTemplateStepGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTemplateStepGroup -> GetTemplateStepGroup -> Bool
$c/= :: GetTemplateStepGroup -> GetTemplateStepGroup -> Bool
== :: GetTemplateStepGroup -> GetTemplateStepGroup -> Bool
$c== :: GetTemplateStepGroup -> GetTemplateStepGroup -> Bool
Prelude.Eq, ReadPrec [GetTemplateStepGroup]
ReadPrec GetTemplateStepGroup
Int -> ReadS GetTemplateStepGroup
ReadS [GetTemplateStepGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTemplateStepGroup]
$creadListPrec :: ReadPrec [GetTemplateStepGroup]
readPrec :: ReadPrec GetTemplateStepGroup
$creadPrec :: ReadPrec GetTemplateStepGroup
readList :: ReadS [GetTemplateStepGroup]
$creadList :: ReadS [GetTemplateStepGroup]
readsPrec :: Int -> ReadS GetTemplateStepGroup
$creadsPrec :: Int -> ReadS GetTemplateStepGroup
Prelude.Read, Int -> GetTemplateStepGroup -> ShowS
[GetTemplateStepGroup] -> ShowS
GetTemplateStepGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTemplateStepGroup] -> ShowS
$cshowList :: [GetTemplateStepGroup] -> ShowS
show :: GetTemplateStepGroup -> String
$cshow :: GetTemplateStepGroup -> String
showsPrec :: Int -> GetTemplateStepGroup -> ShowS
$cshowsPrec :: Int -> GetTemplateStepGroup -> ShowS
Prelude.Show, forall x. Rep GetTemplateStepGroup x -> GetTemplateStepGroup
forall x. GetTemplateStepGroup -> Rep GetTemplateStepGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetTemplateStepGroup x -> GetTemplateStepGroup
$cfrom :: forall x. GetTemplateStepGroup -> Rep GetTemplateStepGroup x
Prelude.Generic)

-- |
-- Create a value of 'GetTemplateStepGroup' 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:
--
-- 'templateId', 'getTemplateStepGroup_templateId' - The ID of the template.
--
-- 'id', 'getTemplateStepGroup_id' - The ID of the step group.
newGetTemplateStepGroup ::
  -- | 'templateId'
  Prelude.Text ->
  -- | 'id'
  Prelude.Text ->
  GetTemplateStepGroup
newGetTemplateStepGroup :: Text -> Text -> GetTemplateStepGroup
newGetTemplateStepGroup Text
pTemplateId_ Text
pId_ =
  GetTemplateStepGroup'
    { $sel:templateId:GetTemplateStepGroup' :: Text
templateId = Text
pTemplateId_,
      $sel:id:GetTemplateStepGroup' :: Text
id = Text
pId_
    }

-- | The ID of the template.
getTemplateStepGroup_templateId :: Lens.Lens' GetTemplateStepGroup Prelude.Text
getTemplateStepGroup_templateId :: Lens' GetTemplateStepGroup Text
getTemplateStepGroup_templateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroup' {Text
templateId :: Text
$sel:templateId:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
templateId} -> Text
templateId) (\s :: GetTemplateStepGroup
s@GetTemplateStepGroup' {} Text
a -> GetTemplateStepGroup
s {$sel:templateId:GetTemplateStepGroup' :: Text
templateId = Text
a} :: GetTemplateStepGroup)

-- | The ID of the step group.
getTemplateStepGroup_id :: Lens.Lens' GetTemplateStepGroup Prelude.Text
getTemplateStepGroup_id :: Lens' GetTemplateStepGroup Text
getTemplateStepGroup_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroup' {Text
id :: Text
$sel:id:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
id} -> Text
id) (\s :: GetTemplateStepGroup
s@GetTemplateStepGroup' {} Text
a -> GetTemplateStepGroup
s {$sel:id:GetTemplateStepGroup' :: Text
id = Text
a} :: GetTemplateStepGroup)

instance Core.AWSRequest GetTemplateStepGroup where
  type
    AWSResponse GetTemplateStepGroup =
      GetTemplateStepGroupResponse
  request :: (Service -> Service)
-> GetTemplateStepGroup -> Request GetTemplateStepGroup
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 GetTemplateStepGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetTemplateStepGroup)))
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 POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> Maybe StepGroupStatus
-> Maybe Text
-> Maybe [Tool]
-> Int
-> GetTemplateStepGroupResponse
GetTemplateStepGroupResponse'
            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
"creationTime")
            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
"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
"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
"next" 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
"previous" 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
"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
"templateId")
            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
"tools" 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 GetTemplateStepGroup where
  hashWithSalt :: Int -> GetTemplateStepGroup -> Int
hashWithSalt Int
_salt GetTemplateStepGroup' {Text
id :: Text
templateId :: Text
$sel:id:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
$sel:templateId:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

instance Prelude.NFData GetTemplateStepGroup where
  rnf :: GetTemplateStepGroup -> ()
rnf GetTemplateStepGroup' {Text
id :: Text
templateId :: Text
$sel:id:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
$sel:templateId:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
templateId seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id

instance Data.ToHeaders GetTemplateStepGroup where
  toHeaders :: GetTemplateStepGroup -> 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 GetTemplateStepGroup where
  toPath :: GetTemplateStepGroup -> ByteString
toPath GetTemplateStepGroup' {Text
id :: Text
templateId :: Text
$sel:id:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
$sel:templateId:GetTemplateStepGroup' :: GetTemplateStepGroup -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/templates/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
templateId,
        ByteString
"/stepgroups/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
id
      ]

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

-- | /See:/ 'newGetTemplateStepGroupResponse' smart constructor.
data GetTemplateStepGroupResponse = GetTemplateStepGroupResponse'
  { -- | The time at which the step group was created.
    GetTemplateStepGroupResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the step group.
    GetTemplateStepGroupResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The ID of the step group.
    GetTemplateStepGroupResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The time at which the step group was last modified.
    GetTemplateStepGroupResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the step group.
    GetTemplateStepGroupResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The next step group.
    GetTemplateStepGroupResponse -> Maybe [Text]
next :: Prelude.Maybe [Prelude.Text],
    -- | The previous step group.
    GetTemplateStepGroupResponse -> Maybe [Text]
previous :: Prelude.Maybe [Prelude.Text],
    -- | The status of the step group.
    GetTemplateStepGroupResponse -> Maybe StepGroupStatus
status :: Prelude.Maybe StepGroupStatus,
    -- | The ID of the template.
    GetTemplateStepGroupResponse -> Maybe Text
templateId :: Prelude.Maybe Prelude.Text,
    -- | List of AWS services utilized in a migration workflow.
    GetTemplateStepGroupResponse -> Maybe [Tool]
tools :: Prelude.Maybe [Tool],
    -- | The response's http status code.
    GetTemplateStepGroupResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetTemplateStepGroupResponse
-> GetTemplateStepGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetTemplateStepGroupResponse
-> GetTemplateStepGroupResponse -> Bool
$c/= :: GetTemplateStepGroupResponse
-> GetTemplateStepGroupResponse -> Bool
== :: GetTemplateStepGroupResponse
-> GetTemplateStepGroupResponse -> Bool
$c== :: GetTemplateStepGroupResponse
-> GetTemplateStepGroupResponse -> Bool
Prelude.Eq, ReadPrec [GetTemplateStepGroupResponse]
ReadPrec GetTemplateStepGroupResponse
Int -> ReadS GetTemplateStepGroupResponse
ReadS [GetTemplateStepGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetTemplateStepGroupResponse]
$creadListPrec :: ReadPrec [GetTemplateStepGroupResponse]
readPrec :: ReadPrec GetTemplateStepGroupResponse
$creadPrec :: ReadPrec GetTemplateStepGroupResponse
readList :: ReadS [GetTemplateStepGroupResponse]
$creadList :: ReadS [GetTemplateStepGroupResponse]
readsPrec :: Int -> ReadS GetTemplateStepGroupResponse
$creadsPrec :: Int -> ReadS GetTemplateStepGroupResponse
Prelude.Read, Int -> GetTemplateStepGroupResponse -> ShowS
[GetTemplateStepGroupResponse] -> ShowS
GetTemplateStepGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetTemplateStepGroupResponse] -> ShowS
$cshowList :: [GetTemplateStepGroupResponse] -> ShowS
show :: GetTemplateStepGroupResponse -> String
$cshow :: GetTemplateStepGroupResponse -> String
showsPrec :: Int -> GetTemplateStepGroupResponse -> ShowS
$cshowsPrec :: Int -> GetTemplateStepGroupResponse -> ShowS
Prelude.Show, forall x.
Rep GetTemplateStepGroupResponse x -> GetTemplateStepGroupResponse
forall x.
GetTemplateStepGroupResponse -> Rep GetTemplateStepGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetTemplateStepGroupResponse x -> GetTemplateStepGroupResponse
$cfrom :: forall x.
GetTemplateStepGroupResponse -> Rep GetTemplateStepGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetTemplateStepGroupResponse' 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:
--
-- 'creationTime', 'getTemplateStepGroupResponse_creationTime' - The time at which the step group was created.
--
-- 'description', 'getTemplateStepGroupResponse_description' - The description of the step group.
--
-- 'id', 'getTemplateStepGroupResponse_id' - The ID of the step group.
--
-- 'lastModifiedTime', 'getTemplateStepGroupResponse_lastModifiedTime' - The time at which the step group was last modified.
--
-- 'name', 'getTemplateStepGroupResponse_name' - The name of the step group.
--
-- 'next', 'getTemplateStepGroupResponse_next' - The next step group.
--
-- 'previous', 'getTemplateStepGroupResponse_previous' - The previous step group.
--
-- 'status', 'getTemplateStepGroupResponse_status' - The status of the step group.
--
-- 'templateId', 'getTemplateStepGroupResponse_templateId' - The ID of the template.
--
-- 'tools', 'getTemplateStepGroupResponse_tools' - List of AWS services utilized in a migration workflow.
--
-- 'httpStatus', 'getTemplateStepGroupResponse_httpStatus' - The response's http status code.
newGetTemplateStepGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetTemplateStepGroupResponse
newGetTemplateStepGroupResponse :: Int -> GetTemplateStepGroupResponse
newGetTemplateStepGroupResponse Int
pHttpStatus_ =
  GetTemplateStepGroupResponse'
    { $sel:creationTime:GetTemplateStepGroupResponse' :: Maybe POSIX
creationTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetTemplateStepGroupResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:id:GetTemplateStepGroupResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:GetTemplateStepGroupResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetTemplateStepGroupResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:next:GetTemplateStepGroupResponse' :: Maybe [Text]
next = forall a. Maybe a
Prelude.Nothing,
      $sel:previous:GetTemplateStepGroupResponse' :: Maybe [Text]
previous = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetTemplateStepGroupResponse' :: Maybe StepGroupStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:templateId:GetTemplateStepGroupResponse' :: Maybe Text
templateId = forall a. Maybe a
Prelude.Nothing,
      $sel:tools:GetTemplateStepGroupResponse' :: Maybe [Tool]
tools = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetTemplateStepGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time at which the step group was created.
getTemplateStepGroupResponse_creationTime :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.UTCTime)
getTemplateStepGroupResponse_creationTime :: Lens' GetTemplateStepGroupResponse (Maybe UTCTime)
getTemplateStepGroupResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe POSIX
a -> GetTemplateStepGroupResponse
s {$sel:creationTime:GetTemplateStepGroupResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: GetTemplateStepGroupResponse) 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 description of the step group.
getTemplateStepGroupResponse_description :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.Text)
getTemplateStepGroupResponse_description :: Lens' GetTemplateStepGroupResponse (Maybe Text)
getTemplateStepGroupResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe Text
a -> GetTemplateStepGroupResponse
s {$sel:description:GetTemplateStepGroupResponse' :: Maybe Text
description = Maybe Text
a} :: GetTemplateStepGroupResponse)

-- | The ID of the step group.
getTemplateStepGroupResponse_id :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.Text)
getTemplateStepGroupResponse_id :: Lens' GetTemplateStepGroupResponse (Maybe Text)
getTemplateStepGroupResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe Text
id :: Maybe Text
$sel:id:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe Text
a -> GetTemplateStepGroupResponse
s {$sel:id:GetTemplateStepGroupResponse' :: Maybe Text
id = Maybe Text
a} :: GetTemplateStepGroupResponse)

-- | The time at which the step group was last modified.
getTemplateStepGroupResponse_lastModifiedTime :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.UTCTime)
getTemplateStepGroupResponse_lastModifiedTime :: Lens' GetTemplateStepGroupResponse (Maybe UTCTime)
getTemplateStepGroupResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe POSIX
a -> GetTemplateStepGroupResponse
s {$sel:lastModifiedTime:GetTemplateStepGroupResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: GetTemplateStepGroupResponse) 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 step group.
getTemplateStepGroupResponse_name :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.Text)
getTemplateStepGroupResponse_name :: Lens' GetTemplateStepGroupResponse (Maybe Text)
getTemplateStepGroupResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe Text
name :: Maybe Text
$sel:name:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe Text
a -> GetTemplateStepGroupResponse
s {$sel:name:GetTemplateStepGroupResponse' :: Maybe Text
name = Maybe Text
a} :: GetTemplateStepGroupResponse)

-- | The next step group.
getTemplateStepGroupResponse_next :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe [Prelude.Text])
getTemplateStepGroupResponse_next :: Lens' GetTemplateStepGroupResponse (Maybe [Text])
getTemplateStepGroupResponse_next = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe [Text]
next :: Maybe [Text]
$sel:next:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Text]
next} -> Maybe [Text]
next) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe [Text]
a -> GetTemplateStepGroupResponse
s {$sel:next:GetTemplateStepGroupResponse' :: Maybe [Text]
next = Maybe [Text]
a} :: GetTemplateStepGroupResponse) 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 previous step group.
getTemplateStepGroupResponse_previous :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe [Prelude.Text])
getTemplateStepGroupResponse_previous :: Lens' GetTemplateStepGroupResponse (Maybe [Text])
getTemplateStepGroupResponse_previous = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe [Text]
previous :: Maybe [Text]
$sel:previous:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Text]
previous} -> Maybe [Text]
previous) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe [Text]
a -> GetTemplateStepGroupResponse
s {$sel:previous:GetTemplateStepGroupResponse' :: Maybe [Text]
previous = Maybe [Text]
a} :: GetTemplateStepGroupResponse) 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 status of the step group.
getTemplateStepGroupResponse_status :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe StepGroupStatus)
getTemplateStepGroupResponse_status :: Lens' GetTemplateStepGroupResponse (Maybe StepGroupStatus)
getTemplateStepGroupResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe StepGroupStatus
status :: Maybe StepGroupStatus
$sel:status:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe StepGroupStatus
status} -> Maybe StepGroupStatus
status) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe StepGroupStatus
a -> GetTemplateStepGroupResponse
s {$sel:status:GetTemplateStepGroupResponse' :: Maybe StepGroupStatus
status = Maybe StepGroupStatus
a} :: GetTemplateStepGroupResponse)

-- | The ID of the template.
getTemplateStepGroupResponse_templateId :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe Prelude.Text)
getTemplateStepGroupResponse_templateId :: Lens' GetTemplateStepGroupResponse (Maybe Text)
getTemplateStepGroupResponse_templateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe Text
templateId :: Maybe Text
$sel:templateId:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
templateId} -> Maybe Text
templateId) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe Text
a -> GetTemplateStepGroupResponse
s {$sel:templateId:GetTemplateStepGroupResponse' :: Maybe Text
templateId = Maybe Text
a} :: GetTemplateStepGroupResponse)

-- | List of AWS services utilized in a migration workflow.
getTemplateStepGroupResponse_tools :: Lens.Lens' GetTemplateStepGroupResponse (Prelude.Maybe [Tool])
getTemplateStepGroupResponse_tools :: Lens' GetTemplateStepGroupResponse (Maybe [Tool])
getTemplateStepGroupResponse_tools = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Maybe [Tool]
tools :: Maybe [Tool]
$sel:tools:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Tool]
tools} -> Maybe [Tool]
tools) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Maybe [Tool]
a -> GetTemplateStepGroupResponse
s {$sel:tools:GetTemplateStepGroupResponse' :: Maybe [Tool]
tools = Maybe [Tool]
a} :: GetTemplateStepGroupResponse) 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.
getTemplateStepGroupResponse_httpStatus :: Lens.Lens' GetTemplateStepGroupResponse Prelude.Int
getTemplateStepGroupResponse_httpStatus :: Lens' GetTemplateStepGroupResponse Int
getTemplateStepGroupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetTemplateStepGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetTemplateStepGroupResponse
s@GetTemplateStepGroupResponse' {} Int
a -> GetTemplateStepGroupResponse
s {$sel:httpStatus:GetTemplateStepGroupResponse' :: Int
httpStatus = Int
a} :: GetTemplateStepGroupResponse)

instance Prelude.NFData GetTemplateStepGroupResponse where
  rnf :: GetTemplateStepGroupResponse -> ()
rnf GetTemplateStepGroupResponse' {Int
Maybe [Text]
Maybe [Tool]
Maybe Text
Maybe POSIX
Maybe StepGroupStatus
httpStatus :: Int
tools :: Maybe [Tool]
templateId :: Maybe Text
status :: Maybe StepGroupStatus
previous :: Maybe [Text]
next :: Maybe [Text]
name :: Maybe Text
lastModifiedTime :: Maybe POSIX
id :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
$sel:httpStatus:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Int
$sel:tools:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Tool]
$sel:templateId:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
$sel:status:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe StepGroupStatus
$sel:previous:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Text]
$sel:next:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe [Text]
$sel:name:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
$sel:lastModifiedTime:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe POSIX
$sel:id:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
$sel:description:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe Text
$sel:creationTime:GetTemplateStepGroupResponse' :: GetTemplateStepGroupResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      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 Text
id
      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 [Text]
next
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
previous
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StepGroupStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tool]
tools
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus