{-# 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.DataBrew.DescribeSchedule
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns the definition of a specific DataBrew schedule.
module Amazonka.DataBrew.DescribeSchedule
  ( -- * Creating a Request
    DescribeSchedule (..),
    newDescribeSchedule,

    -- * Request Lenses
    describeSchedule_name,

    -- * Destructuring the Response
    DescribeScheduleResponse (..),
    newDescribeScheduleResponse,

    -- * Response Lenses
    describeScheduleResponse_createDate,
    describeScheduleResponse_createdBy,
    describeScheduleResponse_cronExpression,
    describeScheduleResponse_jobNames,
    describeScheduleResponse_lastModifiedBy,
    describeScheduleResponse_lastModifiedDate,
    describeScheduleResponse_resourceArn,
    describeScheduleResponse_tags,
    describeScheduleResponse_httpStatus,
    describeScheduleResponse_name,
  )
where

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

-- | /See:/ 'newDescribeSchedule' smart constructor.
data DescribeSchedule = DescribeSchedule'
  { -- | The name of the schedule to be described.
    DescribeSchedule -> Text
name :: Prelude.Text
  }
  deriving (DescribeSchedule -> DescribeSchedule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeSchedule -> DescribeSchedule -> Bool
$c/= :: DescribeSchedule -> DescribeSchedule -> Bool
== :: DescribeSchedule -> DescribeSchedule -> Bool
$c== :: DescribeSchedule -> DescribeSchedule -> Bool
Prelude.Eq, ReadPrec [DescribeSchedule]
ReadPrec DescribeSchedule
Int -> ReadS DescribeSchedule
ReadS [DescribeSchedule]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeSchedule]
$creadListPrec :: ReadPrec [DescribeSchedule]
readPrec :: ReadPrec DescribeSchedule
$creadPrec :: ReadPrec DescribeSchedule
readList :: ReadS [DescribeSchedule]
$creadList :: ReadS [DescribeSchedule]
readsPrec :: Int -> ReadS DescribeSchedule
$creadsPrec :: Int -> ReadS DescribeSchedule
Prelude.Read, Int -> DescribeSchedule -> ShowS
[DescribeSchedule] -> ShowS
DescribeSchedule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeSchedule] -> ShowS
$cshowList :: [DescribeSchedule] -> ShowS
show :: DescribeSchedule -> String
$cshow :: DescribeSchedule -> String
showsPrec :: Int -> DescribeSchedule -> ShowS
$cshowsPrec :: Int -> DescribeSchedule -> ShowS
Prelude.Show, forall x. Rep DescribeSchedule x -> DescribeSchedule
forall x. DescribeSchedule -> Rep DescribeSchedule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeSchedule x -> DescribeSchedule
$cfrom :: forall x. DescribeSchedule -> Rep DescribeSchedule x
Prelude.Generic)

-- |
-- Create a value of 'DescribeSchedule' 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:
--
-- 'name', 'describeSchedule_name' - The name of the schedule to be described.
newDescribeSchedule ::
  -- | 'name'
  Prelude.Text ->
  DescribeSchedule
newDescribeSchedule :: Text -> DescribeSchedule
newDescribeSchedule Text
pName_ =
  DescribeSchedule' {$sel:name:DescribeSchedule' :: Text
name = Text
pName_}

-- | The name of the schedule to be described.
describeSchedule_name :: Lens.Lens' DescribeSchedule Prelude.Text
describeSchedule_name :: Lens' DescribeSchedule Text
describeSchedule_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeSchedule' {Text
name :: Text
$sel:name:DescribeSchedule' :: DescribeSchedule -> Text
name} -> Text
name) (\s :: DescribeSchedule
s@DescribeSchedule' {} Text
a -> DescribeSchedule
s {$sel:name:DescribeSchedule' :: Text
name = Text
a} :: DescribeSchedule)

instance Core.AWSRequest DescribeSchedule where
  type
    AWSResponse DescribeSchedule =
      DescribeScheduleResponse
  request :: (Service -> Service)
-> DescribeSchedule -> Request DescribeSchedule
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 DescribeSchedule
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeSchedule)))
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 [Text]
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> Text
-> DescribeScheduleResponse
DescribeScheduleResponse'
            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
"CreateDate")
            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
"CreatedBy")
            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
"CronExpression")
            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
"JobNames" 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
"LastModifiedBy")
            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
"LastModifiedDate")
            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
"ResourceArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Name")
      )

instance Prelude.Hashable DescribeSchedule where
  hashWithSalt :: Int -> DescribeSchedule -> Int
hashWithSalt Int
_salt DescribeSchedule' {Text
name :: Text
$sel:name:DescribeSchedule' :: DescribeSchedule -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name

instance Prelude.NFData DescribeSchedule where
  rnf :: DescribeSchedule -> ()
rnf DescribeSchedule' {Text
name :: Text
$sel:name:DescribeSchedule' :: DescribeSchedule -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
name

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

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

-- | /See:/ 'newDescribeScheduleResponse' smart constructor.
data DescribeScheduleResponse = DescribeScheduleResponse'
  { -- | The date and time that the schedule was created.
    DescribeScheduleResponse -> Maybe POSIX
createDate :: Prelude.Maybe Data.POSIX,
    -- | The identifier (user name) of the user who created the schedule.
    DescribeScheduleResponse -> Maybe Text
createdBy :: Prelude.Maybe Prelude.Text,
    -- | The date or dates and time or times when the jobs are to be run for the
    -- schedule. For more information, see
    -- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>
    -- in the /Glue DataBrew Developer Guide/.
    DescribeScheduleResponse -> Maybe Text
cronExpression :: Prelude.Maybe Prelude.Text,
    -- | The name or names of one or more jobs to be run by using the schedule.
    DescribeScheduleResponse -> Maybe [Text]
jobNames :: Prelude.Maybe [Prelude.Text],
    -- | The identifier (user name) of the user who last modified the schedule.
    DescribeScheduleResponse -> Maybe Text
lastModifiedBy :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the schedule was last modified.
    DescribeScheduleResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the schedule.
    DescribeScheduleResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | Metadata tags associated with this schedule.
    DescribeScheduleResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeScheduleResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the schedule.
    DescribeScheduleResponse -> Text
name :: Prelude.Text
  }
  deriving (DescribeScheduleResponse -> DescribeScheduleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeScheduleResponse -> DescribeScheduleResponse -> Bool
$c/= :: DescribeScheduleResponse -> DescribeScheduleResponse -> Bool
== :: DescribeScheduleResponse -> DescribeScheduleResponse -> Bool
$c== :: DescribeScheduleResponse -> DescribeScheduleResponse -> Bool
Prelude.Eq, ReadPrec [DescribeScheduleResponse]
ReadPrec DescribeScheduleResponse
Int -> ReadS DescribeScheduleResponse
ReadS [DescribeScheduleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeScheduleResponse]
$creadListPrec :: ReadPrec [DescribeScheduleResponse]
readPrec :: ReadPrec DescribeScheduleResponse
$creadPrec :: ReadPrec DescribeScheduleResponse
readList :: ReadS [DescribeScheduleResponse]
$creadList :: ReadS [DescribeScheduleResponse]
readsPrec :: Int -> ReadS DescribeScheduleResponse
$creadsPrec :: Int -> ReadS DescribeScheduleResponse
Prelude.Read, Int -> DescribeScheduleResponse -> ShowS
[DescribeScheduleResponse] -> ShowS
DescribeScheduleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeScheduleResponse] -> ShowS
$cshowList :: [DescribeScheduleResponse] -> ShowS
show :: DescribeScheduleResponse -> String
$cshow :: DescribeScheduleResponse -> String
showsPrec :: Int -> DescribeScheduleResponse -> ShowS
$cshowsPrec :: Int -> DescribeScheduleResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeScheduleResponse x -> DescribeScheduleResponse
forall x.
DescribeScheduleResponse -> Rep DescribeScheduleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeScheduleResponse x -> DescribeScheduleResponse
$cfrom :: forall x.
DescribeScheduleResponse -> Rep DescribeScheduleResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeScheduleResponse' 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:
--
-- 'createDate', 'describeScheduleResponse_createDate' - The date and time that the schedule was created.
--
-- 'createdBy', 'describeScheduleResponse_createdBy' - The identifier (user name) of the user who created the schedule.
--
-- 'cronExpression', 'describeScheduleResponse_cronExpression' - The date or dates and time or times when the jobs are to be run for the
-- schedule. For more information, see
-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>
-- in the /Glue DataBrew Developer Guide/.
--
-- 'jobNames', 'describeScheduleResponse_jobNames' - The name or names of one or more jobs to be run by using the schedule.
--
-- 'lastModifiedBy', 'describeScheduleResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the schedule.
--
-- 'lastModifiedDate', 'describeScheduleResponse_lastModifiedDate' - The date and time that the schedule was last modified.
--
-- 'resourceArn', 'describeScheduleResponse_resourceArn' - The Amazon Resource Name (ARN) of the schedule.
--
-- 'tags', 'describeScheduleResponse_tags' - Metadata tags associated with this schedule.
--
-- 'httpStatus', 'describeScheduleResponse_httpStatus' - The response's http status code.
--
-- 'name', 'describeScheduleResponse_name' - The name of the schedule.
newDescribeScheduleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'name'
  Prelude.Text ->
  DescribeScheduleResponse
newDescribeScheduleResponse :: Int -> Text -> DescribeScheduleResponse
newDescribeScheduleResponse Int
pHttpStatus_ Text
pName_ =
  DescribeScheduleResponse'
    { $sel:createDate:DescribeScheduleResponse' :: Maybe POSIX
createDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:DescribeScheduleResponse' :: Maybe Text
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:cronExpression:DescribeScheduleResponse' :: Maybe Text
cronExpression = forall a. Maybe a
Prelude.Nothing,
      $sel:jobNames:DescribeScheduleResponse' :: Maybe [Text]
jobNames = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:DescribeScheduleResponse' :: Maybe Text
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:DescribeScheduleResponse' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceArn:DescribeScheduleResponse' :: Maybe Text
resourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeScheduleResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeScheduleResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:name:DescribeScheduleResponse' :: Text
name = Text
pName_
    }

-- | The date and time that the schedule was created.
describeScheduleResponse_createDate :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.UTCTime)
describeScheduleResponse_createDate :: Lens' DescribeScheduleResponse (Maybe UTCTime)
describeScheduleResponse_createDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe POSIX
createDate :: Maybe POSIX
$sel:createDate:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe POSIX
createDate} -> Maybe POSIX
createDate) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe POSIX
a -> DescribeScheduleResponse
s {$sel:createDate:DescribeScheduleResponse' :: Maybe POSIX
createDate = Maybe POSIX
a} :: DescribeScheduleResponse) 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 identifier (user name) of the user who created the schedule.
describeScheduleResponse_createdBy :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)
describeScheduleResponse_createdBy :: Lens' DescribeScheduleResponse (Maybe Text)
describeScheduleResponse_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe Text
createdBy :: Maybe Text
$sel:createdBy:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
createdBy} -> Maybe Text
createdBy) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe Text
a -> DescribeScheduleResponse
s {$sel:createdBy:DescribeScheduleResponse' :: Maybe Text
createdBy = Maybe Text
a} :: DescribeScheduleResponse)

-- | The date or dates and time or times when the jobs are to be run for the
-- schedule. For more information, see
-- <https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html Cron expressions>
-- in the /Glue DataBrew Developer Guide/.
describeScheduleResponse_cronExpression :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)
describeScheduleResponse_cronExpression :: Lens' DescribeScheduleResponse (Maybe Text)
describeScheduleResponse_cronExpression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe Text
cronExpression :: Maybe Text
$sel:cronExpression:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
cronExpression} -> Maybe Text
cronExpression) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe Text
a -> DescribeScheduleResponse
s {$sel:cronExpression:DescribeScheduleResponse' :: Maybe Text
cronExpression = Maybe Text
a} :: DescribeScheduleResponse)

-- | The name or names of one or more jobs to be run by using the schedule.
describeScheduleResponse_jobNames :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe [Prelude.Text])
describeScheduleResponse_jobNames :: Lens' DescribeScheduleResponse (Maybe [Text])
describeScheduleResponse_jobNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe [Text]
jobNames :: Maybe [Text]
$sel:jobNames:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe [Text]
jobNames} -> Maybe [Text]
jobNames) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe [Text]
a -> DescribeScheduleResponse
s {$sel:jobNames:DescribeScheduleResponse' :: Maybe [Text]
jobNames = Maybe [Text]
a} :: DescribeScheduleResponse) 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 (user name) of the user who last modified the schedule.
describeScheduleResponse_lastModifiedBy :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)
describeScheduleResponse_lastModifiedBy :: Lens' DescribeScheduleResponse (Maybe Text)
describeScheduleResponse_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe Text
lastModifiedBy :: Maybe Text
$sel:lastModifiedBy:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
lastModifiedBy} -> Maybe Text
lastModifiedBy) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe Text
a -> DescribeScheduleResponse
s {$sel:lastModifiedBy:DescribeScheduleResponse' :: Maybe Text
lastModifiedBy = Maybe Text
a} :: DescribeScheduleResponse)

-- | The date and time that the schedule was last modified.
describeScheduleResponse_lastModifiedDate :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.UTCTime)
describeScheduleResponse_lastModifiedDate :: Lens' DescribeScheduleResponse (Maybe UTCTime)
describeScheduleResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe POSIX
a -> DescribeScheduleResponse
s {$sel:lastModifiedDate:DescribeScheduleResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: DescribeScheduleResponse) 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 Amazon Resource Name (ARN) of the schedule.
describeScheduleResponse_resourceArn :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe Prelude.Text)
describeScheduleResponse_resourceArn :: Lens' DescribeScheduleResponse (Maybe Text)
describeScheduleResponse_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe Text
resourceArn :: Maybe Text
$sel:resourceArn:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
resourceArn} -> Maybe Text
resourceArn) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe Text
a -> DescribeScheduleResponse
s {$sel:resourceArn:DescribeScheduleResponse' :: Maybe Text
resourceArn = Maybe Text
a} :: DescribeScheduleResponse)

-- | Metadata tags associated with this schedule.
describeScheduleResponse_tags :: Lens.Lens' DescribeScheduleResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeScheduleResponse_tags :: Lens' DescribeScheduleResponse (Maybe (HashMap Text Text))
describeScheduleResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Maybe (HashMap Text Text)
a -> DescribeScheduleResponse
s {$sel:tags:DescribeScheduleResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeScheduleResponse) 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.
describeScheduleResponse_httpStatus :: Lens.Lens' DescribeScheduleResponse Prelude.Int
describeScheduleResponse_httpStatus :: Lens' DescribeScheduleResponse Int
describeScheduleResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScheduleResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeScheduleResponse' :: DescribeScheduleResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeScheduleResponse
s@DescribeScheduleResponse' {} Int
a -> DescribeScheduleResponse
s {$sel:httpStatus:DescribeScheduleResponse' :: Int
httpStatus = Int
a} :: DescribeScheduleResponse)

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

instance Prelude.NFData DescribeScheduleResponse where
  rnf :: DescribeScheduleResponse -> ()
rnf DescribeScheduleResponse' {Int
Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Text
name :: Text
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
resourceArn :: Maybe Text
lastModifiedDate :: Maybe POSIX
lastModifiedBy :: Maybe Text
jobNames :: Maybe [Text]
cronExpression :: Maybe Text
createdBy :: Maybe Text
createDate :: Maybe POSIX
$sel:name:DescribeScheduleResponse' :: DescribeScheduleResponse -> Text
$sel:httpStatus:DescribeScheduleResponse' :: DescribeScheduleResponse -> Int
$sel:tags:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe (HashMap Text Text)
$sel:resourceArn:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
$sel:lastModifiedDate:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe POSIX
$sel:lastModifiedBy:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
$sel:jobNames:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe [Text]
$sel:cronExpression:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
$sel:createdBy:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe Text
$sel:createDate:DescribeScheduleResponse' :: DescribeScheduleResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cronExpression
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
jobNames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastModifiedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name