{-# 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.BackupGateway.PutMaintenanceStartTime
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Set the maintenance start time for a gateway.
module Amazonka.BackupGateway.PutMaintenanceStartTime
  ( -- * Creating a Request
    PutMaintenanceStartTime (..),
    newPutMaintenanceStartTime,

    -- * Request Lenses
    putMaintenanceStartTime_dayOfMonth,
    putMaintenanceStartTime_dayOfWeek,
    putMaintenanceStartTime_gatewayArn,
    putMaintenanceStartTime_hourOfDay,
    putMaintenanceStartTime_minuteOfHour,

    -- * Destructuring the Response
    PutMaintenanceStartTimeResponse (..),
    newPutMaintenanceStartTimeResponse,

    -- * Response Lenses
    putMaintenanceStartTimeResponse_gatewayArn,
    putMaintenanceStartTimeResponse_httpStatus,
  )
where

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

-- | /See:/ 'newPutMaintenanceStartTime' smart constructor.
data PutMaintenanceStartTime = PutMaintenanceStartTime'
  { -- | The day of the month start maintenance on a gateway.
    --
    -- Valid values range from @Sunday@ to @Saturday@.
    PutMaintenanceStartTime -> Maybe Natural
dayOfMonth :: Prelude.Maybe Prelude.Natural,
    -- | The day of the week to start maintenance on a gateway.
    PutMaintenanceStartTime -> Maybe Natural
dayOfWeek :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Resource Name (ARN) for the gateway, used to specify its
    -- maintenance start time.
    PutMaintenanceStartTime -> Text
gatewayArn :: Prelude.Text,
    -- | The hour of the day to start maintenance on a gateway.
    PutMaintenanceStartTime -> Natural
hourOfDay :: Prelude.Natural,
    -- | The minute of the hour to start maintenance on a gateway.
    PutMaintenanceStartTime -> Natural
minuteOfHour :: Prelude.Natural
  }
  deriving (PutMaintenanceStartTime -> PutMaintenanceStartTime -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutMaintenanceStartTime -> PutMaintenanceStartTime -> Bool
$c/= :: PutMaintenanceStartTime -> PutMaintenanceStartTime -> Bool
== :: PutMaintenanceStartTime -> PutMaintenanceStartTime -> Bool
$c== :: PutMaintenanceStartTime -> PutMaintenanceStartTime -> Bool
Prelude.Eq, ReadPrec [PutMaintenanceStartTime]
ReadPrec PutMaintenanceStartTime
Int -> ReadS PutMaintenanceStartTime
ReadS [PutMaintenanceStartTime]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutMaintenanceStartTime]
$creadListPrec :: ReadPrec [PutMaintenanceStartTime]
readPrec :: ReadPrec PutMaintenanceStartTime
$creadPrec :: ReadPrec PutMaintenanceStartTime
readList :: ReadS [PutMaintenanceStartTime]
$creadList :: ReadS [PutMaintenanceStartTime]
readsPrec :: Int -> ReadS PutMaintenanceStartTime
$creadsPrec :: Int -> ReadS PutMaintenanceStartTime
Prelude.Read, Int -> PutMaintenanceStartTime -> ShowS
[PutMaintenanceStartTime] -> ShowS
PutMaintenanceStartTime -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutMaintenanceStartTime] -> ShowS
$cshowList :: [PutMaintenanceStartTime] -> ShowS
show :: PutMaintenanceStartTime -> String
$cshow :: PutMaintenanceStartTime -> String
showsPrec :: Int -> PutMaintenanceStartTime -> ShowS
$cshowsPrec :: Int -> PutMaintenanceStartTime -> ShowS
Prelude.Show, forall x. Rep PutMaintenanceStartTime x -> PutMaintenanceStartTime
forall x. PutMaintenanceStartTime -> Rep PutMaintenanceStartTime x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutMaintenanceStartTime x -> PutMaintenanceStartTime
$cfrom :: forall x. PutMaintenanceStartTime -> Rep PutMaintenanceStartTime x
Prelude.Generic)

-- |
-- Create a value of 'PutMaintenanceStartTime' 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:
--
-- 'dayOfMonth', 'putMaintenanceStartTime_dayOfMonth' - The day of the month start maintenance on a gateway.
--
-- Valid values range from @Sunday@ to @Saturday@.
--
-- 'dayOfWeek', 'putMaintenanceStartTime_dayOfWeek' - The day of the week to start maintenance on a gateway.
--
-- 'gatewayArn', 'putMaintenanceStartTime_gatewayArn' - The Amazon Resource Name (ARN) for the gateway, used to specify its
-- maintenance start time.
--
-- 'hourOfDay', 'putMaintenanceStartTime_hourOfDay' - The hour of the day to start maintenance on a gateway.
--
-- 'minuteOfHour', 'putMaintenanceStartTime_minuteOfHour' - The minute of the hour to start maintenance on a gateway.
newPutMaintenanceStartTime ::
  -- | 'gatewayArn'
  Prelude.Text ->
  -- | 'hourOfDay'
  Prelude.Natural ->
  -- | 'minuteOfHour'
  Prelude.Natural ->
  PutMaintenanceStartTime
newPutMaintenanceStartTime :: Text -> Natural -> Natural -> PutMaintenanceStartTime
newPutMaintenanceStartTime
  Text
pGatewayArn_
  Natural
pHourOfDay_
  Natural
pMinuteOfHour_ =
    PutMaintenanceStartTime'
      { $sel:dayOfMonth:PutMaintenanceStartTime' :: Maybe Natural
dayOfMonth =
          forall a. Maybe a
Prelude.Nothing,
        $sel:dayOfWeek:PutMaintenanceStartTime' :: Maybe Natural
dayOfWeek = forall a. Maybe a
Prelude.Nothing,
        $sel:gatewayArn:PutMaintenanceStartTime' :: Text
gatewayArn = Text
pGatewayArn_,
        $sel:hourOfDay:PutMaintenanceStartTime' :: Natural
hourOfDay = Natural
pHourOfDay_,
        $sel:minuteOfHour:PutMaintenanceStartTime' :: Natural
minuteOfHour = Natural
pMinuteOfHour_
      }

-- | The day of the month start maintenance on a gateway.
--
-- Valid values range from @Sunday@ to @Saturday@.
putMaintenanceStartTime_dayOfMonth :: Lens.Lens' PutMaintenanceStartTime (Prelude.Maybe Prelude.Natural)
putMaintenanceStartTime_dayOfMonth :: Lens' PutMaintenanceStartTime (Maybe Natural)
putMaintenanceStartTime_dayOfMonth = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTime' {Maybe Natural
dayOfMonth :: Maybe Natural
$sel:dayOfMonth:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
dayOfMonth} -> Maybe Natural
dayOfMonth) (\s :: PutMaintenanceStartTime
s@PutMaintenanceStartTime' {} Maybe Natural
a -> PutMaintenanceStartTime
s {$sel:dayOfMonth:PutMaintenanceStartTime' :: Maybe Natural
dayOfMonth = Maybe Natural
a} :: PutMaintenanceStartTime)

-- | The day of the week to start maintenance on a gateway.
putMaintenanceStartTime_dayOfWeek :: Lens.Lens' PutMaintenanceStartTime (Prelude.Maybe Prelude.Natural)
putMaintenanceStartTime_dayOfWeek :: Lens' PutMaintenanceStartTime (Maybe Natural)
putMaintenanceStartTime_dayOfWeek = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTime' {Maybe Natural
dayOfWeek :: Maybe Natural
$sel:dayOfWeek:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
dayOfWeek} -> Maybe Natural
dayOfWeek) (\s :: PutMaintenanceStartTime
s@PutMaintenanceStartTime' {} Maybe Natural
a -> PutMaintenanceStartTime
s {$sel:dayOfWeek:PutMaintenanceStartTime' :: Maybe Natural
dayOfWeek = Maybe Natural
a} :: PutMaintenanceStartTime)

-- | The Amazon Resource Name (ARN) for the gateway, used to specify its
-- maintenance start time.
putMaintenanceStartTime_gatewayArn :: Lens.Lens' PutMaintenanceStartTime Prelude.Text
putMaintenanceStartTime_gatewayArn :: Lens' PutMaintenanceStartTime Text
putMaintenanceStartTime_gatewayArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTime' {Text
gatewayArn :: Text
$sel:gatewayArn:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Text
gatewayArn} -> Text
gatewayArn) (\s :: PutMaintenanceStartTime
s@PutMaintenanceStartTime' {} Text
a -> PutMaintenanceStartTime
s {$sel:gatewayArn:PutMaintenanceStartTime' :: Text
gatewayArn = Text
a} :: PutMaintenanceStartTime)

-- | The hour of the day to start maintenance on a gateway.
putMaintenanceStartTime_hourOfDay :: Lens.Lens' PutMaintenanceStartTime Prelude.Natural
putMaintenanceStartTime_hourOfDay :: Lens' PutMaintenanceStartTime Natural
putMaintenanceStartTime_hourOfDay = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTime' {Natural
hourOfDay :: Natural
$sel:hourOfDay:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
hourOfDay} -> Natural
hourOfDay) (\s :: PutMaintenanceStartTime
s@PutMaintenanceStartTime' {} Natural
a -> PutMaintenanceStartTime
s {$sel:hourOfDay:PutMaintenanceStartTime' :: Natural
hourOfDay = Natural
a} :: PutMaintenanceStartTime)

-- | The minute of the hour to start maintenance on a gateway.
putMaintenanceStartTime_minuteOfHour :: Lens.Lens' PutMaintenanceStartTime Prelude.Natural
putMaintenanceStartTime_minuteOfHour :: Lens' PutMaintenanceStartTime Natural
putMaintenanceStartTime_minuteOfHour = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTime' {Natural
minuteOfHour :: Natural
$sel:minuteOfHour:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
minuteOfHour} -> Natural
minuteOfHour) (\s :: PutMaintenanceStartTime
s@PutMaintenanceStartTime' {} Natural
a -> PutMaintenanceStartTime
s {$sel:minuteOfHour:PutMaintenanceStartTime' :: Natural
minuteOfHour = Natural
a} :: PutMaintenanceStartTime)

instance Core.AWSRequest PutMaintenanceStartTime where
  type
    AWSResponse PutMaintenanceStartTime =
      PutMaintenanceStartTimeResponse
  request :: (Service -> Service)
-> PutMaintenanceStartTime -> Request PutMaintenanceStartTime
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutMaintenanceStartTime
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse PutMaintenanceStartTime)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Int -> PutMaintenanceStartTimeResponse
PutMaintenanceStartTimeResponse'
            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
"GatewayArn")
            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 PutMaintenanceStartTime where
  hashWithSalt :: Int -> PutMaintenanceStartTime -> Int
hashWithSalt Int
_salt PutMaintenanceStartTime' {Natural
Maybe Natural
Text
minuteOfHour :: Natural
hourOfDay :: Natural
gatewayArn :: Text
dayOfWeek :: Maybe Natural
dayOfMonth :: Maybe Natural
$sel:minuteOfHour:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:hourOfDay:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:gatewayArn:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Text
$sel:dayOfWeek:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
$sel:dayOfMonth:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
dayOfMonth
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
dayOfWeek
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gatewayArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
hourOfDay
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
minuteOfHour

instance Prelude.NFData PutMaintenanceStartTime where
  rnf :: PutMaintenanceStartTime -> ()
rnf PutMaintenanceStartTime' {Natural
Maybe Natural
Text
minuteOfHour :: Natural
hourOfDay :: Natural
gatewayArn :: Text
dayOfWeek :: Maybe Natural
dayOfMonth :: Maybe Natural
$sel:minuteOfHour:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:hourOfDay:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:gatewayArn:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Text
$sel:dayOfWeek:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
$sel:dayOfMonth:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
dayOfMonth
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
dayOfWeek
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
gatewayArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
hourOfDay
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
minuteOfHour

instance Data.ToHeaders PutMaintenanceStartTime where
  toHeaders :: PutMaintenanceStartTime -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"BackupOnPremises_v20210101.PutMaintenanceStartTime" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON PutMaintenanceStartTime where
  toJSON :: PutMaintenanceStartTime -> Value
toJSON PutMaintenanceStartTime' {Natural
Maybe Natural
Text
minuteOfHour :: Natural
hourOfDay :: Natural
gatewayArn :: Text
dayOfWeek :: Maybe Natural
dayOfMonth :: Maybe Natural
$sel:minuteOfHour:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:hourOfDay:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Natural
$sel:gatewayArn:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Text
$sel:dayOfWeek:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
$sel:dayOfMonth:PutMaintenanceStartTime' :: PutMaintenanceStartTime -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"DayOfMonth" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
dayOfMonth,
            (Key
"DayOfWeek" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
dayOfWeek,
            forall a. a -> Maybe a
Prelude.Just (Key
"GatewayArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
gatewayArn),
            forall a. a -> Maybe a
Prelude.Just (Key
"HourOfDay" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
hourOfDay),
            forall a. a -> Maybe a
Prelude.Just (Key
"MinuteOfHour" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
minuteOfHour)
          ]
      )

instance Data.ToPath PutMaintenanceStartTime where
  toPath :: PutMaintenanceStartTime -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newPutMaintenanceStartTimeResponse' smart constructor.
data PutMaintenanceStartTimeResponse = PutMaintenanceStartTimeResponse'
  { -- | The Amazon Resource Name (ARN) of a gateway for which you set the
    -- maintenance start time.
    PutMaintenanceStartTimeResponse -> Maybe Text
gatewayArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    PutMaintenanceStartTimeResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (PutMaintenanceStartTimeResponse
-> PutMaintenanceStartTimeResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutMaintenanceStartTimeResponse
-> PutMaintenanceStartTimeResponse -> Bool
$c/= :: PutMaintenanceStartTimeResponse
-> PutMaintenanceStartTimeResponse -> Bool
== :: PutMaintenanceStartTimeResponse
-> PutMaintenanceStartTimeResponse -> Bool
$c== :: PutMaintenanceStartTimeResponse
-> PutMaintenanceStartTimeResponse -> Bool
Prelude.Eq, ReadPrec [PutMaintenanceStartTimeResponse]
ReadPrec PutMaintenanceStartTimeResponse
Int -> ReadS PutMaintenanceStartTimeResponse
ReadS [PutMaintenanceStartTimeResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutMaintenanceStartTimeResponse]
$creadListPrec :: ReadPrec [PutMaintenanceStartTimeResponse]
readPrec :: ReadPrec PutMaintenanceStartTimeResponse
$creadPrec :: ReadPrec PutMaintenanceStartTimeResponse
readList :: ReadS [PutMaintenanceStartTimeResponse]
$creadList :: ReadS [PutMaintenanceStartTimeResponse]
readsPrec :: Int -> ReadS PutMaintenanceStartTimeResponse
$creadsPrec :: Int -> ReadS PutMaintenanceStartTimeResponse
Prelude.Read, Int -> PutMaintenanceStartTimeResponse -> ShowS
[PutMaintenanceStartTimeResponse] -> ShowS
PutMaintenanceStartTimeResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutMaintenanceStartTimeResponse] -> ShowS
$cshowList :: [PutMaintenanceStartTimeResponse] -> ShowS
show :: PutMaintenanceStartTimeResponse -> String
$cshow :: PutMaintenanceStartTimeResponse -> String
showsPrec :: Int -> PutMaintenanceStartTimeResponse -> ShowS
$cshowsPrec :: Int -> PutMaintenanceStartTimeResponse -> ShowS
Prelude.Show, forall x.
Rep PutMaintenanceStartTimeResponse x
-> PutMaintenanceStartTimeResponse
forall x.
PutMaintenanceStartTimeResponse
-> Rep PutMaintenanceStartTimeResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutMaintenanceStartTimeResponse x
-> PutMaintenanceStartTimeResponse
$cfrom :: forall x.
PutMaintenanceStartTimeResponse
-> Rep PutMaintenanceStartTimeResponse x
Prelude.Generic)

-- |
-- Create a value of 'PutMaintenanceStartTimeResponse' 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:
--
-- 'gatewayArn', 'putMaintenanceStartTimeResponse_gatewayArn' - The Amazon Resource Name (ARN) of a gateway for which you set the
-- maintenance start time.
--
-- 'httpStatus', 'putMaintenanceStartTimeResponse_httpStatus' - The response's http status code.
newPutMaintenanceStartTimeResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  PutMaintenanceStartTimeResponse
newPutMaintenanceStartTimeResponse :: Int -> PutMaintenanceStartTimeResponse
newPutMaintenanceStartTimeResponse Int
pHttpStatus_ =
  PutMaintenanceStartTimeResponse'
    { $sel:gatewayArn:PutMaintenanceStartTimeResponse' :: Maybe Text
gatewayArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:PutMaintenanceStartTimeResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of a gateway for which you set the
-- maintenance start time.
putMaintenanceStartTimeResponse_gatewayArn :: Lens.Lens' PutMaintenanceStartTimeResponse (Prelude.Maybe Prelude.Text)
putMaintenanceStartTimeResponse_gatewayArn :: Lens' PutMaintenanceStartTimeResponse (Maybe Text)
putMaintenanceStartTimeResponse_gatewayArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutMaintenanceStartTimeResponse' {Maybe Text
gatewayArn :: Maybe Text
$sel:gatewayArn:PutMaintenanceStartTimeResponse' :: PutMaintenanceStartTimeResponse -> Maybe Text
gatewayArn} -> Maybe Text
gatewayArn) (\s :: PutMaintenanceStartTimeResponse
s@PutMaintenanceStartTimeResponse' {} Maybe Text
a -> PutMaintenanceStartTimeResponse
s {$sel:gatewayArn:PutMaintenanceStartTimeResponse' :: Maybe Text
gatewayArn = Maybe Text
a} :: PutMaintenanceStartTimeResponse)

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

instance
  Prelude.NFData
    PutMaintenanceStartTimeResponse
  where
  rnf :: PutMaintenanceStartTimeResponse -> ()
rnf PutMaintenanceStartTimeResponse' {Int
Maybe Text
httpStatus :: Int
gatewayArn :: Maybe Text
$sel:httpStatus:PutMaintenanceStartTimeResponse' :: PutMaintenanceStartTimeResponse -> Int
$sel:gatewayArn:PutMaintenanceStartTimeResponse' :: PutMaintenanceStartTimeResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus