{-# 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.AlexaBusiness.UpdateBusinessReportSchedule
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the configuration of the report delivery schedule with the
-- specified schedule ARN.
module Amazonka.AlexaBusiness.UpdateBusinessReportSchedule
  ( -- * Creating a Request
    UpdateBusinessReportSchedule (..),
    newUpdateBusinessReportSchedule,

    -- * Request Lenses
    updateBusinessReportSchedule_format,
    updateBusinessReportSchedule_recurrence,
    updateBusinessReportSchedule_s3BucketName,
    updateBusinessReportSchedule_s3KeyPrefix,
    updateBusinessReportSchedule_scheduleName,
    updateBusinessReportSchedule_scheduleArn,

    -- * Destructuring the Response
    UpdateBusinessReportScheduleResponse (..),
    newUpdateBusinessReportScheduleResponse,

    -- * Response Lenses
    updateBusinessReportScheduleResponse_httpStatus,
  )
where

import Amazonka.AlexaBusiness.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:/ 'newUpdateBusinessReportSchedule' smart constructor.
data UpdateBusinessReportSchedule = UpdateBusinessReportSchedule'
  { -- | The format of the generated report (individual CSV files or zipped files
    -- of individual files).
    UpdateBusinessReportSchedule -> Maybe BusinessReportFormat
format :: Prelude.Maybe BusinessReportFormat,
    -- | The recurrence of the reports.
    UpdateBusinessReportSchedule -> Maybe BusinessReportRecurrence
recurrence :: Prelude.Maybe BusinessReportRecurrence,
    -- | The S3 location of the output reports.
    UpdateBusinessReportSchedule -> Maybe Text
s3BucketName :: Prelude.Maybe Prelude.Text,
    -- | The S3 key where the report is delivered.
    UpdateBusinessReportSchedule -> Maybe Text
s3KeyPrefix :: Prelude.Maybe Prelude.Text,
    -- | The name identifier of the schedule.
    UpdateBusinessReportSchedule -> Maybe Text
scheduleName :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the business report schedule.
    UpdateBusinessReportSchedule -> Text
scheduleArn :: Prelude.Text
  }
  deriving (UpdateBusinessReportSchedule
-> UpdateBusinessReportSchedule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateBusinessReportSchedule
-> UpdateBusinessReportSchedule -> Bool
$c/= :: UpdateBusinessReportSchedule
-> UpdateBusinessReportSchedule -> Bool
== :: UpdateBusinessReportSchedule
-> UpdateBusinessReportSchedule -> Bool
$c== :: UpdateBusinessReportSchedule
-> UpdateBusinessReportSchedule -> Bool
Prelude.Eq, ReadPrec [UpdateBusinessReportSchedule]
ReadPrec UpdateBusinessReportSchedule
Int -> ReadS UpdateBusinessReportSchedule
ReadS [UpdateBusinessReportSchedule]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateBusinessReportSchedule]
$creadListPrec :: ReadPrec [UpdateBusinessReportSchedule]
readPrec :: ReadPrec UpdateBusinessReportSchedule
$creadPrec :: ReadPrec UpdateBusinessReportSchedule
readList :: ReadS [UpdateBusinessReportSchedule]
$creadList :: ReadS [UpdateBusinessReportSchedule]
readsPrec :: Int -> ReadS UpdateBusinessReportSchedule
$creadsPrec :: Int -> ReadS UpdateBusinessReportSchedule
Prelude.Read, Int -> UpdateBusinessReportSchedule -> ShowS
[UpdateBusinessReportSchedule] -> ShowS
UpdateBusinessReportSchedule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateBusinessReportSchedule] -> ShowS
$cshowList :: [UpdateBusinessReportSchedule] -> ShowS
show :: UpdateBusinessReportSchedule -> String
$cshow :: UpdateBusinessReportSchedule -> String
showsPrec :: Int -> UpdateBusinessReportSchedule -> ShowS
$cshowsPrec :: Int -> UpdateBusinessReportSchedule -> ShowS
Prelude.Show, forall x.
Rep UpdateBusinessReportSchedule x -> UpdateBusinessReportSchedule
forall x.
UpdateBusinessReportSchedule -> Rep UpdateBusinessReportSchedule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateBusinessReportSchedule x -> UpdateBusinessReportSchedule
$cfrom :: forall x.
UpdateBusinessReportSchedule -> Rep UpdateBusinessReportSchedule x
Prelude.Generic)

-- |
-- Create a value of 'UpdateBusinessReportSchedule' 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:
--
-- 'format', 'updateBusinessReportSchedule_format' - The format of the generated report (individual CSV files or zipped files
-- of individual files).
--
-- 'recurrence', 'updateBusinessReportSchedule_recurrence' - The recurrence of the reports.
--
-- 's3BucketName', 'updateBusinessReportSchedule_s3BucketName' - The S3 location of the output reports.
--
-- 's3KeyPrefix', 'updateBusinessReportSchedule_s3KeyPrefix' - The S3 key where the report is delivered.
--
-- 'scheduleName', 'updateBusinessReportSchedule_scheduleName' - The name identifier of the schedule.
--
-- 'scheduleArn', 'updateBusinessReportSchedule_scheduleArn' - The ARN of the business report schedule.
newUpdateBusinessReportSchedule ::
  -- | 'scheduleArn'
  Prelude.Text ->
  UpdateBusinessReportSchedule
newUpdateBusinessReportSchedule :: Text -> UpdateBusinessReportSchedule
newUpdateBusinessReportSchedule Text
pScheduleArn_ =
  UpdateBusinessReportSchedule'
    { $sel:format:UpdateBusinessReportSchedule' :: Maybe BusinessReportFormat
format =
        forall a. Maybe a
Prelude.Nothing,
      $sel:recurrence:UpdateBusinessReportSchedule' :: Maybe BusinessReportRecurrence
recurrence = forall a. Maybe a
Prelude.Nothing,
      $sel:s3BucketName:UpdateBusinessReportSchedule' :: Maybe Text
s3BucketName = forall a. Maybe a
Prelude.Nothing,
      $sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: Maybe Text
s3KeyPrefix = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduleName:UpdateBusinessReportSchedule' :: Maybe Text
scheduleName = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduleArn:UpdateBusinessReportSchedule' :: Text
scheduleArn = Text
pScheduleArn_
    }

-- | The format of the generated report (individual CSV files or zipped files
-- of individual files).
updateBusinessReportSchedule_format :: Lens.Lens' UpdateBusinessReportSchedule (Prelude.Maybe BusinessReportFormat)
updateBusinessReportSchedule_format :: Lens' UpdateBusinessReportSchedule (Maybe BusinessReportFormat)
updateBusinessReportSchedule_format = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateBusinessReportSchedule' {Maybe BusinessReportFormat
format :: Maybe BusinessReportFormat
$sel:format:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportFormat
format} -> Maybe BusinessReportFormat
format) (\s :: UpdateBusinessReportSchedule
s@UpdateBusinessReportSchedule' {} Maybe BusinessReportFormat
a -> UpdateBusinessReportSchedule
s {$sel:format:UpdateBusinessReportSchedule' :: Maybe BusinessReportFormat
format = Maybe BusinessReportFormat
a} :: UpdateBusinessReportSchedule)

-- | The recurrence of the reports.
updateBusinessReportSchedule_recurrence :: Lens.Lens' UpdateBusinessReportSchedule (Prelude.Maybe BusinessReportRecurrence)
updateBusinessReportSchedule_recurrence :: Lens' UpdateBusinessReportSchedule (Maybe BusinessReportRecurrence)
updateBusinessReportSchedule_recurrence = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateBusinessReportSchedule' {Maybe BusinessReportRecurrence
recurrence :: Maybe BusinessReportRecurrence
$sel:recurrence:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportRecurrence
recurrence} -> Maybe BusinessReportRecurrence
recurrence) (\s :: UpdateBusinessReportSchedule
s@UpdateBusinessReportSchedule' {} Maybe BusinessReportRecurrence
a -> UpdateBusinessReportSchedule
s {$sel:recurrence:UpdateBusinessReportSchedule' :: Maybe BusinessReportRecurrence
recurrence = Maybe BusinessReportRecurrence
a} :: UpdateBusinessReportSchedule)

-- | The S3 location of the output reports.
updateBusinessReportSchedule_s3BucketName :: Lens.Lens' UpdateBusinessReportSchedule (Prelude.Maybe Prelude.Text)
updateBusinessReportSchedule_s3BucketName :: Lens' UpdateBusinessReportSchedule (Maybe Text)
updateBusinessReportSchedule_s3BucketName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateBusinessReportSchedule' {Maybe Text
s3BucketName :: Maybe Text
$sel:s3BucketName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
s3BucketName} -> Maybe Text
s3BucketName) (\s :: UpdateBusinessReportSchedule
s@UpdateBusinessReportSchedule' {} Maybe Text
a -> UpdateBusinessReportSchedule
s {$sel:s3BucketName:UpdateBusinessReportSchedule' :: Maybe Text
s3BucketName = Maybe Text
a} :: UpdateBusinessReportSchedule)

-- | The S3 key where the report is delivered.
updateBusinessReportSchedule_s3KeyPrefix :: Lens.Lens' UpdateBusinessReportSchedule (Prelude.Maybe Prelude.Text)
updateBusinessReportSchedule_s3KeyPrefix :: Lens' UpdateBusinessReportSchedule (Maybe Text)
updateBusinessReportSchedule_s3KeyPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateBusinessReportSchedule' {Maybe Text
s3KeyPrefix :: Maybe Text
$sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
s3KeyPrefix} -> Maybe Text
s3KeyPrefix) (\s :: UpdateBusinessReportSchedule
s@UpdateBusinessReportSchedule' {} Maybe Text
a -> UpdateBusinessReportSchedule
s {$sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: Maybe Text
s3KeyPrefix = Maybe Text
a} :: UpdateBusinessReportSchedule)

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

-- | The ARN of the business report schedule.
updateBusinessReportSchedule_scheduleArn :: Lens.Lens' UpdateBusinessReportSchedule Prelude.Text
updateBusinessReportSchedule_scheduleArn :: Lens' UpdateBusinessReportSchedule Text
updateBusinessReportSchedule_scheduleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateBusinessReportSchedule' {Text
scheduleArn :: Text
$sel:scheduleArn:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Text
scheduleArn} -> Text
scheduleArn) (\s :: UpdateBusinessReportSchedule
s@UpdateBusinessReportSchedule' {} Text
a -> UpdateBusinessReportSchedule
s {$sel:scheduleArn:UpdateBusinessReportSchedule' :: Text
scheduleArn = Text
a} :: UpdateBusinessReportSchedule)

instance Core.AWSRequest UpdateBusinessReportSchedule where
  type
    AWSResponse UpdateBusinessReportSchedule =
      UpdateBusinessReportScheduleResponse
  request :: (Service -> Service)
-> UpdateBusinessReportSchedule
-> Request UpdateBusinessReportSchedule
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 UpdateBusinessReportSchedule
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateBusinessReportSchedule)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
      ( \Int
s ResponseHeaders
h ()
x ->
          Int -> UpdateBusinessReportScheduleResponse
UpdateBusinessReportScheduleResponse'
            forall (f :: * -> *) a b. Functor 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
    UpdateBusinessReportSchedule
  where
  hashWithSalt :: Int -> UpdateBusinessReportSchedule -> Int
hashWithSalt Int
_salt UpdateBusinessReportSchedule' {Maybe Text
Maybe BusinessReportFormat
Maybe BusinessReportRecurrence
Text
scheduleArn :: Text
scheduleName :: Maybe Text
s3KeyPrefix :: Maybe Text
s3BucketName :: Maybe Text
recurrence :: Maybe BusinessReportRecurrence
format :: Maybe BusinessReportFormat
$sel:scheduleArn:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Text
$sel:scheduleName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3BucketName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:recurrence:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportRecurrence
$sel:format:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportFormat
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BusinessReportFormat
format
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BusinessReportRecurrence
recurrence
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3BucketName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3KeyPrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
scheduleName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
scheduleArn

instance Prelude.NFData UpdateBusinessReportSchedule where
  rnf :: UpdateBusinessReportSchedule -> ()
rnf UpdateBusinessReportSchedule' {Maybe Text
Maybe BusinessReportFormat
Maybe BusinessReportRecurrence
Text
scheduleArn :: Text
scheduleName :: Maybe Text
s3KeyPrefix :: Maybe Text
s3BucketName :: Maybe Text
recurrence :: Maybe BusinessReportRecurrence
format :: Maybe BusinessReportFormat
$sel:scheduleArn:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Text
$sel:scheduleName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3BucketName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:recurrence:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportRecurrence
$sel:format:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportFormat
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe BusinessReportFormat
format
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BusinessReportRecurrence
recurrence
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
s3BucketName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
s3KeyPrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
scheduleName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
scheduleArn

instance Data.ToHeaders UpdateBusinessReportSchedule where
  toHeaders :: UpdateBusinessReportSchedule -> 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
"AlexaForBusiness.UpdateBusinessReportSchedule" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateBusinessReportSchedule where
  toJSON :: UpdateBusinessReportSchedule -> Value
toJSON UpdateBusinessReportSchedule' {Maybe Text
Maybe BusinessReportFormat
Maybe BusinessReportRecurrence
Text
scheduleArn :: Text
scheduleName :: Maybe Text
s3KeyPrefix :: Maybe Text
s3BucketName :: Maybe Text
recurrence :: Maybe BusinessReportRecurrence
format :: Maybe BusinessReportFormat
$sel:scheduleArn:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Text
$sel:scheduleName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3KeyPrefix:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:s3BucketName:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe Text
$sel:recurrence:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportRecurrence
$sel:format:UpdateBusinessReportSchedule' :: UpdateBusinessReportSchedule -> Maybe BusinessReportFormat
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Format" 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 BusinessReportFormat
format,
            (Key
"Recurrence" 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 BusinessReportRecurrence
recurrence,
            (Key
"S3BucketName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
s3BucketName,
            (Key
"S3KeyPrefix" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
s3KeyPrefix,
            (Key
"ScheduleName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
scheduleName,
            forall a. a -> Maybe a
Prelude.Just (Key
"ScheduleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
scheduleArn)
          ]
      )

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

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

-- | /See:/ 'newUpdateBusinessReportScheduleResponse' smart constructor.
data UpdateBusinessReportScheduleResponse = UpdateBusinessReportScheduleResponse'
  { -- | The response's http status code.
    UpdateBusinessReportScheduleResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateBusinessReportScheduleResponse
-> UpdateBusinessReportScheduleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateBusinessReportScheduleResponse
-> UpdateBusinessReportScheduleResponse -> Bool
$c/= :: UpdateBusinessReportScheduleResponse
-> UpdateBusinessReportScheduleResponse -> Bool
== :: UpdateBusinessReportScheduleResponse
-> UpdateBusinessReportScheduleResponse -> Bool
$c== :: UpdateBusinessReportScheduleResponse
-> UpdateBusinessReportScheduleResponse -> Bool
Prelude.Eq, ReadPrec [UpdateBusinessReportScheduleResponse]
ReadPrec UpdateBusinessReportScheduleResponse
Int -> ReadS UpdateBusinessReportScheduleResponse
ReadS [UpdateBusinessReportScheduleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateBusinessReportScheduleResponse]
$creadListPrec :: ReadPrec [UpdateBusinessReportScheduleResponse]
readPrec :: ReadPrec UpdateBusinessReportScheduleResponse
$creadPrec :: ReadPrec UpdateBusinessReportScheduleResponse
readList :: ReadS [UpdateBusinessReportScheduleResponse]
$creadList :: ReadS [UpdateBusinessReportScheduleResponse]
readsPrec :: Int -> ReadS UpdateBusinessReportScheduleResponse
$creadsPrec :: Int -> ReadS UpdateBusinessReportScheduleResponse
Prelude.Read, Int -> UpdateBusinessReportScheduleResponse -> ShowS
[UpdateBusinessReportScheduleResponse] -> ShowS
UpdateBusinessReportScheduleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateBusinessReportScheduleResponse] -> ShowS
$cshowList :: [UpdateBusinessReportScheduleResponse] -> ShowS
show :: UpdateBusinessReportScheduleResponse -> String
$cshow :: UpdateBusinessReportScheduleResponse -> String
showsPrec :: Int -> UpdateBusinessReportScheduleResponse -> ShowS
$cshowsPrec :: Int -> UpdateBusinessReportScheduleResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateBusinessReportScheduleResponse x
-> UpdateBusinessReportScheduleResponse
forall x.
UpdateBusinessReportScheduleResponse
-> Rep UpdateBusinessReportScheduleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateBusinessReportScheduleResponse x
-> UpdateBusinessReportScheduleResponse
$cfrom :: forall x.
UpdateBusinessReportScheduleResponse
-> Rep UpdateBusinessReportScheduleResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateBusinessReportScheduleResponse' 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:
--
-- 'httpStatus', 'updateBusinessReportScheduleResponse_httpStatus' - The response's http status code.
newUpdateBusinessReportScheduleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateBusinessReportScheduleResponse
newUpdateBusinessReportScheduleResponse :: Int -> UpdateBusinessReportScheduleResponse
newUpdateBusinessReportScheduleResponse Int
pHttpStatus_ =
  UpdateBusinessReportScheduleResponse'
    { $sel:httpStatus:UpdateBusinessReportScheduleResponse' :: Int
httpStatus =
        Int
pHttpStatus_
    }

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

instance
  Prelude.NFData
    UpdateBusinessReportScheduleResponse
  where
  rnf :: UpdateBusinessReportScheduleResponse -> ()
rnf UpdateBusinessReportScheduleResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateBusinessReportScheduleResponse' :: UpdateBusinessReportScheduleResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus