{-# 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.GetWorkflowStepGroup
-- 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 the step group of a migration workflow.
module Amazonka.MigrationHubOrchestrator.GetWorkflowStepGroup
  ( -- * Creating a Request
    GetWorkflowStepGroup (..),
    newGetWorkflowStepGroup,

    -- * Request Lenses
    getWorkflowStepGroup_id,
    getWorkflowStepGroup_workflowId,

    -- * Destructuring the Response
    GetWorkflowStepGroupResponse (..),
    newGetWorkflowStepGroupResponse,

    -- * Response Lenses
    getWorkflowStepGroupResponse_creationTime,
    getWorkflowStepGroupResponse_description,
    getWorkflowStepGroupResponse_endTime,
    getWorkflowStepGroupResponse_id,
    getWorkflowStepGroupResponse_lastModifiedTime,
    getWorkflowStepGroupResponse_name,
    getWorkflowStepGroupResponse_next,
    getWorkflowStepGroupResponse_owner,
    getWorkflowStepGroupResponse_previous,
    getWorkflowStepGroupResponse_status,
    getWorkflowStepGroupResponse_tools,
    getWorkflowStepGroupResponse_workflowId,
    getWorkflowStepGroupResponse_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:/ 'newGetWorkflowStepGroup' smart constructor.
data GetWorkflowStepGroup = GetWorkflowStepGroup'
  { -- | The ID of the step group.
    GetWorkflowStepGroup -> Text
id :: Prelude.Text,
    -- | The ID of the migration workflow.
    GetWorkflowStepGroup -> Text
workflowId :: Prelude.Text
  }
  deriving (GetWorkflowStepGroup -> GetWorkflowStepGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetWorkflowStepGroup -> GetWorkflowStepGroup -> Bool
$c/= :: GetWorkflowStepGroup -> GetWorkflowStepGroup -> Bool
== :: GetWorkflowStepGroup -> GetWorkflowStepGroup -> Bool
$c== :: GetWorkflowStepGroup -> GetWorkflowStepGroup -> Bool
Prelude.Eq, ReadPrec [GetWorkflowStepGroup]
ReadPrec GetWorkflowStepGroup
Int -> ReadS GetWorkflowStepGroup
ReadS [GetWorkflowStepGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetWorkflowStepGroup]
$creadListPrec :: ReadPrec [GetWorkflowStepGroup]
readPrec :: ReadPrec GetWorkflowStepGroup
$creadPrec :: ReadPrec GetWorkflowStepGroup
readList :: ReadS [GetWorkflowStepGroup]
$creadList :: ReadS [GetWorkflowStepGroup]
readsPrec :: Int -> ReadS GetWorkflowStepGroup
$creadsPrec :: Int -> ReadS GetWorkflowStepGroup
Prelude.Read, Int -> GetWorkflowStepGroup -> ShowS
[GetWorkflowStepGroup] -> ShowS
GetWorkflowStepGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetWorkflowStepGroup] -> ShowS
$cshowList :: [GetWorkflowStepGroup] -> ShowS
show :: GetWorkflowStepGroup -> String
$cshow :: GetWorkflowStepGroup -> String
showsPrec :: Int -> GetWorkflowStepGroup -> ShowS
$cshowsPrec :: Int -> GetWorkflowStepGroup -> ShowS
Prelude.Show, forall x. Rep GetWorkflowStepGroup x -> GetWorkflowStepGroup
forall x. GetWorkflowStepGroup -> Rep GetWorkflowStepGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetWorkflowStepGroup x -> GetWorkflowStepGroup
$cfrom :: forall x. GetWorkflowStepGroup -> Rep GetWorkflowStepGroup x
Prelude.Generic)

-- |
-- Create a value of 'GetWorkflowStepGroup' 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:
--
-- 'id', 'getWorkflowStepGroup_id' - The ID of the step group.
--
-- 'workflowId', 'getWorkflowStepGroup_workflowId' - The ID of the migration workflow.
newGetWorkflowStepGroup ::
  -- | 'id'
  Prelude.Text ->
  -- | 'workflowId'
  Prelude.Text ->
  GetWorkflowStepGroup
newGetWorkflowStepGroup :: Text -> Text -> GetWorkflowStepGroup
newGetWorkflowStepGroup Text
pId_ Text
pWorkflowId_ =
  GetWorkflowStepGroup'
    { $sel:id:GetWorkflowStepGroup' :: Text
id = Text
pId_,
      $sel:workflowId:GetWorkflowStepGroup' :: Text
workflowId = Text
pWorkflowId_
    }

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

-- | The ID of the migration workflow.
getWorkflowStepGroup_workflowId :: Lens.Lens' GetWorkflowStepGroup Prelude.Text
getWorkflowStepGroup_workflowId :: Lens' GetWorkflowStepGroup Text
getWorkflowStepGroup_workflowId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroup' {Text
workflowId :: Text
$sel:workflowId:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
workflowId} -> Text
workflowId) (\s :: GetWorkflowStepGroup
s@GetWorkflowStepGroup' {} Text
a -> GetWorkflowStepGroup
s {$sel:workflowId:GetWorkflowStepGroup' :: Text
workflowId = Text
a} :: GetWorkflowStepGroup)

instance Core.AWSRequest GetWorkflowStepGroup where
  type
    AWSResponse GetWorkflowStepGroup =
      GetWorkflowStepGroupResponse
  request :: (Service -> Service)
-> GetWorkflowStepGroup -> Request GetWorkflowStepGroup
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 GetWorkflowStepGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetWorkflowStepGroup)))
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 POSIX
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe [Text]
-> Maybe Owner
-> Maybe [Text]
-> Maybe StepGroupStatus
-> Maybe [Tool]
-> Maybe Text
-> Int
-> GetWorkflowStepGroupResponse
GetWorkflowStepGroupResponse'
            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
"endTime")
            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
"owner")
            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
"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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"workflowId")
            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 GetWorkflowStepGroup where
  hashWithSalt :: Int -> GetWorkflowStepGroup -> Int
hashWithSalt Int
_salt GetWorkflowStepGroup' {Text
workflowId :: Text
id :: Text
$sel:workflowId:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
$sel:id:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workflowId

instance Prelude.NFData GetWorkflowStepGroup where
  rnf :: GetWorkflowStepGroup -> ()
rnf GetWorkflowStepGroup' {Text
workflowId :: Text
id :: Text
$sel:workflowId:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
$sel:id:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
..} =
    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
workflowId

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

instance Data.ToQuery GetWorkflowStepGroup where
  toQuery :: GetWorkflowStepGroup -> QueryString
toQuery GetWorkflowStepGroup' {Text
workflowId :: Text
id :: Text
$sel:workflowId:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
$sel:id:GetWorkflowStepGroup' :: GetWorkflowStepGroup -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"workflowId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
workflowId]

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

-- |
-- Create a value of 'GetWorkflowStepGroupResponse' 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', 'getWorkflowStepGroupResponse_creationTime' - The time at which the step group was created.
--
-- 'description', 'getWorkflowStepGroupResponse_description' - The description of the step group.
--
-- 'endTime', 'getWorkflowStepGroupResponse_endTime' - The time at which the step group ended.
--
-- 'id', 'getWorkflowStepGroupResponse_id' - The ID of the step group.
--
-- 'lastModifiedTime', 'getWorkflowStepGroupResponse_lastModifiedTime' - The time at which the step group was last modified.
--
-- 'name', 'getWorkflowStepGroupResponse_name' - The name of the step group.
--
-- 'next', 'getWorkflowStepGroupResponse_next' - The next step group.
--
-- 'owner', 'getWorkflowStepGroupResponse_owner' - The owner of the step group.
--
-- 'previous', 'getWorkflowStepGroupResponse_previous' - The previous step group.
--
-- 'status', 'getWorkflowStepGroupResponse_status' - The status of the step group.
--
-- 'tools', 'getWorkflowStepGroupResponse_tools' - List of AWS services utilized in a migration workflow.
--
-- 'workflowId', 'getWorkflowStepGroupResponse_workflowId' - The ID of the migration workflow.
--
-- 'httpStatus', 'getWorkflowStepGroupResponse_httpStatus' - The response's http status code.
newGetWorkflowStepGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetWorkflowStepGroupResponse
newGetWorkflowStepGroupResponse :: Int -> GetWorkflowStepGroupResponse
newGetWorkflowStepGroupResponse Int
pHttpStatus_ =
  GetWorkflowStepGroupResponse'
    { $sel:creationTime:GetWorkflowStepGroupResponse' :: Maybe POSIX
creationTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetWorkflowStepGroupResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:GetWorkflowStepGroupResponse' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:id:GetWorkflowStepGroupResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:GetWorkflowStepGroupResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetWorkflowStepGroupResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:next:GetWorkflowStepGroupResponse' :: Maybe [Text]
next = forall a. Maybe a
Prelude.Nothing,
      $sel:owner:GetWorkflowStepGroupResponse' :: Maybe Owner
owner = forall a. Maybe a
Prelude.Nothing,
      $sel:previous:GetWorkflowStepGroupResponse' :: Maybe [Text]
previous = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetWorkflowStepGroupResponse' :: Maybe StepGroupStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:tools:GetWorkflowStepGroupResponse' :: Maybe [Tool]
tools = forall a. Maybe a
Prelude.Nothing,
      $sel:workflowId:GetWorkflowStepGroupResponse' :: Maybe Text
workflowId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetWorkflowStepGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

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

-- | The time at which the step group ended.
getWorkflowStepGroupResponse_endTime :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe Prelude.UTCTime)
getWorkflowStepGroupResponse_endTime :: Lens' GetWorkflowStepGroupResponse (Maybe UTCTime)
getWorkflowStepGroupResponse_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe POSIX
a -> GetWorkflowStepGroupResponse
s {$sel:endTime:GetWorkflowStepGroupResponse' :: Maybe POSIX
endTime = Maybe POSIX
a} :: GetWorkflowStepGroupResponse) 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 ID of the step group.
getWorkflowStepGroupResponse_id :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe Prelude.Text)
getWorkflowStepGroupResponse_id :: Lens' GetWorkflowStepGroupResponse (Maybe Text)
getWorkflowStepGroupResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe Text
id :: Maybe Text
$sel:id:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe Text
a -> GetWorkflowStepGroupResponse
s {$sel:id:GetWorkflowStepGroupResponse' :: Maybe Text
id = Maybe Text
a} :: GetWorkflowStepGroupResponse)

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

-- | The next step group.
getWorkflowStepGroupResponse_next :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe [Prelude.Text])
getWorkflowStepGroupResponse_next :: Lens' GetWorkflowStepGroupResponse (Maybe [Text])
getWorkflowStepGroupResponse_next = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe [Text]
next :: Maybe [Text]
$sel:next:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe [Text]
next} -> Maybe [Text]
next) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe [Text]
a -> GetWorkflowStepGroupResponse
s {$sel:next:GetWorkflowStepGroupResponse' :: Maybe [Text]
next = Maybe [Text]
a} :: GetWorkflowStepGroupResponse) 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 owner of the step group.
getWorkflowStepGroupResponse_owner :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe Owner)
getWorkflowStepGroupResponse_owner :: Lens' GetWorkflowStepGroupResponse (Maybe Owner)
getWorkflowStepGroupResponse_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe Owner
owner :: Maybe Owner
$sel:owner:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe Owner
owner} -> Maybe Owner
owner) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe Owner
a -> GetWorkflowStepGroupResponse
s {$sel:owner:GetWorkflowStepGroupResponse' :: Maybe Owner
owner = Maybe Owner
a} :: GetWorkflowStepGroupResponse)

-- | The previous step group.
getWorkflowStepGroupResponse_previous :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe [Prelude.Text])
getWorkflowStepGroupResponse_previous :: Lens' GetWorkflowStepGroupResponse (Maybe [Text])
getWorkflowStepGroupResponse_previous = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe [Text]
previous :: Maybe [Text]
$sel:previous:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe [Text]
previous} -> Maybe [Text]
previous) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe [Text]
a -> GetWorkflowStepGroupResponse
s {$sel:previous:GetWorkflowStepGroupResponse' :: Maybe [Text]
previous = Maybe [Text]
a} :: GetWorkflowStepGroupResponse) 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.
getWorkflowStepGroupResponse_status :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe StepGroupStatus)
getWorkflowStepGroupResponse_status :: Lens' GetWorkflowStepGroupResponse (Maybe StepGroupStatus)
getWorkflowStepGroupResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe StepGroupStatus
status :: Maybe StepGroupStatus
$sel:status:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe StepGroupStatus
status} -> Maybe StepGroupStatus
status) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe StepGroupStatus
a -> GetWorkflowStepGroupResponse
s {$sel:status:GetWorkflowStepGroupResponse' :: Maybe StepGroupStatus
status = Maybe StepGroupStatus
a} :: GetWorkflowStepGroupResponse)

-- | List of AWS services utilized in a migration workflow.
getWorkflowStepGroupResponse_tools :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe [Tool])
getWorkflowStepGroupResponse_tools :: Lens' GetWorkflowStepGroupResponse (Maybe [Tool])
getWorkflowStepGroupResponse_tools = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe [Tool]
tools :: Maybe [Tool]
$sel:tools:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe [Tool]
tools} -> Maybe [Tool]
tools) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe [Tool]
a -> GetWorkflowStepGroupResponse
s {$sel:tools:GetWorkflowStepGroupResponse' :: Maybe [Tool]
tools = Maybe [Tool]
a} :: GetWorkflowStepGroupResponse) 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 ID of the migration workflow.
getWorkflowStepGroupResponse_workflowId :: Lens.Lens' GetWorkflowStepGroupResponse (Prelude.Maybe Prelude.Text)
getWorkflowStepGroupResponse_workflowId :: Lens' GetWorkflowStepGroupResponse (Maybe Text)
getWorkflowStepGroupResponse_workflowId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWorkflowStepGroupResponse' {Maybe Text
workflowId :: Maybe Text
$sel:workflowId:GetWorkflowStepGroupResponse' :: GetWorkflowStepGroupResponse -> Maybe Text
workflowId} -> Maybe Text
workflowId) (\s :: GetWorkflowStepGroupResponse
s@GetWorkflowStepGroupResponse' {} Maybe Text
a -> GetWorkflowStepGroupResponse
s {$sel:workflowId:GetWorkflowStepGroupResponse' :: Maybe Text
workflowId = Maybe Text
a} :: GetWorkflowStepGroupResponse)

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

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