{-# 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.GroundStation.GetMinuteUsage
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns the number of minutes used by account.
module Amazonka.GroundStation.GetMinuteUsage
  ( -- * Creating a Request
    GetMinuteUsage (..),
    newGetMinuteUsage,

    -- * Request Lenses
    getMinuteUsage_month,
    getMinuteUsage_year,

    -- * Destructuring the Response
    GetMinuteUsageResponse (..),
    newGetMinuteUsageResponse,

    -- * Response Lenses
    getMinuteUsageResponse_isReservedMinutesCustomer,
    getMinuteUsageResponse_upcomingMinutesScheduled,
    getMinuteUsageResponse_totalScheduledMinutes,
    getMinuteUsageResponse_totalReservedMinuteAllocation,
    getMinuteUsageResponse_estimatedMinutesRemaining,
    getMinuteUsageResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.GroundStation.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- |
--
-- /See:/ 'newGetMinuteUsage' smart constructor.
data GetMinuteUsage = GetMinuteUsage'
  { -- | The month being requested, with a value of 1-12.
    GetMinuteUsage -> Int
month :: Prelude.Int,
    -- | The year being requested, in the format of YYYY.
    GetMinuteUsage -> Int
year :: Prelude.Int
  }
  deriving (GetMinuteUsage -> GetMinuteUsage -> Bool
(GetMinuteUsage -> GetMinuteUsage -> Bool)
-> (GetMinuteUsage -> GetMinuteUsage -> Bool) -> Eq GetMinuteUsage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMinuteUsage -> GetMinuteUsage -> Bool
$c/= :: GetMinuteUsage -> GetMinuteUsage -> Bool
== :: GetMinuteUsage -> GetMinuteUsage -> Bool
$c== :: GetMinuteUsage -> GetMinuteUsage -> Bool
Prelude.Eq, ReadPrec [GetMinuteUsage]
ReadPrec GetMinuteUsage
Int -> ReadS GetMinuteUsage
ReadS [GetMinuteUsage]
(Int -> ReadS GetMinuteUsage)
-> ReadS [GetMinuteUsage]
-> ReadPrec GetMinuteUsage
-> ReadPrec [GetMinuteUsage]
-> Read GetMinuteUsage
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMinuteUsage]
$creadListPrec :: ReadPrec [GetMinuteUsage]
readPrec :: ReadPrec GetMinuteUsage
$creadPrec :: ReadPrec GetMinuteUsage
readList :: ReadS [GetMinuteUsage]
$creadList :: ReadS [GetMinuteUsage]
readsPrec :: Int -> ReadS GetMinuteUsage
$creadsPrec :: Int -> ReadS GetMinuteUsage
Prelude.Read, Int -> GetMinuteUsage -> ShowS
[GetMinuteUsage] -> ShowS
GetMinuteUsage -> String
(Int -> GetMinuteUsage -> ShowS)
-> (GetMinuteUsage -> String)
-> ([GetMinuteUsage] -> ShowS)
-> Show GetMinuteUsage
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMinuteUsage] -> ShowS
$cshowList :: [GetMinuteUsage] -> ShowS
show :: GetMinuteUsage -> String
$cshow :: GetMinuteUsage -> String
showsPrec :: Int -> GetMinuteUsage -> ShowS
$cshowsPrec :: Int -> GetMinuteUsage -> ShowS
Prelude.Show, (forall x. GetMinuteUsage -> Rep GetMinuteUsage x)
-> (forall x. Rep GetMinuteUsage x -> GetMinuteUsage)
-> Generic GetMinuteUsage
forall x. Rep GetMinuteUsage x -> GetMinuteUsage
forall x. GetMinuteUsage -> Rep GetMinuteUsage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetMinuteUsage x -> GetMinuteUsage
$cfrom :: forall x. GetMinuteUsage -> Rep GetMinuteUsage x
Prelude.Generic)

-- |
-- Create a value of 'GetMinuteUsage' 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:
--
-- 'month', 'getMinuteUsage_month' - The month being requested, with a value of 1-12.
--
-- 'year', 'getMinuteUsage_year' - The year being requested, in the format of YYYY.
newGetMinuteUsage ::
  -- | 'month'
  Prelude.Int ->
  -- | 'year'
  Prelude.Int ->
  GetMinuteUsage
newGetMinuteUsage :: Int -> Int -> GetMinuteUsage
newGetMinuteUsage Int
pMonth_ Int
pYear_ =
  GetMinuteUsage' :: Int -> Int -> GetMinuteUsage
GetMinuteUsage' {$sel:month:GetMinuteUsage' :: Int
month = Int
pMonth_, $sel:year:GetMinuteUsage' :: Int
year = Int
pYear_}

-- | The month being requested, with a value of 1-12.
getMinuteUsage_month :: Lens.Lens' GetMinuteUsage Prelude.Int
getMinuteUsage_month :: (Int -> f Int) -> GetMinuteUsage -> f GetMinuteUsage
getMinuteUsage_month = (GetMinuteUsage -> Int)
-> (GetMinuteUsage -> Int -> GetMinuteUsage)
-> Lens GetMinuteUsage GetMinuteUsage Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsage' {Int
month :: Int
$sel:month:GetMinuteUsage' :: GetMinuteUsage -> Int
month} -> Int
month) (\s :: GetMinuteUsage
s@GetMinuteUsage' {} Int
a -> GetMinuteUsage
s {$sel:month:GetMinuteUsage' :: Int
month = Int
a} :: GetMinuteUsage)

-- | The year being requested, in the format of YYYY.
getMinuteUsage_year :: Lens.Lens' GetMinuteUsage Prelude.Int
getMinuteUsage_year :: (Int -> f Int) -> GetMinuteUsage -> f GetMinuteUsage
getMinuteUsage_year = (GetMinuteUsage -> Int)
-> (GetMinuteUsage -> Int -> GetMinuteUsage)
-> Lens GetMinuteUsage GetMinuteUsage Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsage' {Int
year :: Int
$sel:year:GetMinuteUsage' :: GetMinuteUsage -> Int
year} -> Int
year) (\s :: GetMinuteUsage
s@GetMinuteUsage' {} Int
a -> GetMinuteUsage
s {$sel:year:GetMinuteUsage' :: Int
year = Int
a} :: GetMinuteUsage)

instance Core.AWSRequest GetMinuteUsage where
  type
    AWSResponse GetMinuteUsage =
      GetMinuteUsageResponse
  request :: GetMinuteUsage -> Request GetMinuteUsage
request = Service -> GetMinuteUsage -> Request GetMinuteUsage
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy GetMinuteUsage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetMinuteUsage)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetMinuteUsage))
-> Logger
-> Service
-> Proxy GetMinuteUsage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetMinuteUsage)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Int
-> GetMinuteUsageResponse
GetMinuteUsageResponse'
            (Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Int
 -> GetMinuteUsageResponse)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> GetMinuteUsageResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Key -> Either String (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"isReservedMinutesCustomer")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> GetMinuteUsageResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int -> Maybe Int -> Int -> GetMinuteUsageResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"upcomingMinutesScheduled")
            Either
  String
  (Maybe Int
   -> Maybe Int -> Maybe Int -> Int -> GetMinuteUsageResponse)
-> Either String (Maybe Int)
-> Either
     String (Maybe Int -> Maybe Int -> Int -> GetMinuteUsageResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"totalScheduledMinutes")
            Either
  String (Maybe Int -> Maybe Int -> Int -> GetMinuteUsageResponse)
-> Either String (Maybe Int)
-> Either String (Maybe Int -> Int -> GetMinuteUsageResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"totalReservedMinuteAllocation")
            Either String (Maybe Int -> Int -> GetMinuteUsageResponse)
-> Either String (Maybe Int)
-> Either String (Int -> GetMinuteUsageResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"estimatedMinutesRemaining")
            Either String (Int -> GetMinuteUsageResponse)
-> Either String Int -> Either String GetMinuteUsageResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable GetMinuteUsage

instance Prelude.NFData GetMinuteUsage

instance Core.ToHeaders GetMinuteUsage where
  toHeaders :: GetMinuteUsage -> ResponseHeaders
toHeaders =
    ResponseHeaders -> GetMinuteUsage -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON GetMinuteUsage where
  toJSON :: GetMinuteUsage -> Value
toJSON GetMinuteUsage' {Int
year :: Int
month :: Int
$sel:year:GetMinuteUsage' :: GetMinuteUsage -> Int
$sel:month:GetMinuteUsage' :: GetMinuteUsage -> Int
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Key
"month" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Core..= Int
month),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Key
"year" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Core..= Int
year)
          ]
      )

instance Core.ToPath GetMinuteUsage where
  toPath :: GetMinuteUsage -> ByteString
toPath = ByteString -> GetMinuteUsage -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/minute-usage"

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

-- |
--
-- /See:/ 'newGetMinuteUsageResponse' smart constructor.
data GetMinuteUsageResponse = GetMinuteUsageResponse'
  { -- | Returns whether or not an account has signed up for the reserved minutes
    -- pricing plan, specific to the month being requested.
    GetMinuteUsageResponse -> Maybe Bool
isReservedMinutesCustomer :: Prelude.Maybe Prelude.Bool,
    -- | Upcoming minutes scheduled for an account, specific to the month being
    -- requested.
    GetMinuteUsageResponse -> Maybe Int
upcomingMinutesScheduled :: Prelude.Maybe Prelude.Int,
    -- | Total scheduled minutes for an account, specific to the month being
    -- requested.
    GetMinuteUsageResponse -> Maybe Int
totalScheduledMinutes :: Prelude.Maybe Prelude.Int,
    -- | Total number of reserved minutes allocated, specific to the month being
    -- requested.
    GetMinuteUsageResponse -> Maybe Int
totalReservedMinuteAllocation :: Prelude.Maybe Prelude.Int,
    -- | Estimated number of minutes remaining for an account, specific to the
    -- month being requested.
    GetMinuteUsageResponse -> Maybe Int
estimatedMinutesRemaining :: Prelude.Maybe Prelude.Int,
    -- | The response's http status code.
    GetMinuteUsageResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool
(GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool)
-> (GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool)
-> Eq GetMinuteUsageResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool
$c/= :: GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool
== :: GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool
$c== :: GetMinuteUsageResponse -> GetMinuteUsageResponse -> Bool
Prelude.Eq, ReadPrec [GetMinuteUsageResponse]
ReadPrec GetMinuteUsageResponse
Int -> ReadS GetMinuteUsageResponse
ReadS [GetMinuteUsageResponse]
(Int -> ReadS GetMinuteUsageResponse)
-> ReadS [GetMinuteUsageResponse]
-> ReadPrec GetMinuteUsageResponse
-> ReadPrec [GetMinuteUsageResponse]
-> Read GetMinuteUsageResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMinuteUsageResponse]
$creadListPrec :: ReadPrec [GetMinuteUsageResponse]
readPrec :: ReadPrec GetMinuteUsageResponse
$creadPrec :: ReadPrec GetMinuteUsageResponse
readList :: ReadS [GetMinuteUsageResponse]
$creadList :: ReadS [GetMinuteUsageResponse]
readsPrec :: Int -> ReadS GetMinuteUsageResponse
$creadsPrec :: Int -> ReadS GetMinuteUsageResponse
Prelude.Read, Int -> GetMinuteUsageResponse -> ShowS
[GetMinuteUsageResponse] -> ShowS
GetMinuteUsageResponse -> String
(Int -> GetMinuteUsageResponse -> ShowS)
-> (GetMinuteUsageResponse -> String)
-> ([GetMinuteUsageResponse] -> ShowS)
-> Show GetMinuteUsageResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMinuteUsageResponse] -> ShowS
$cshowList :: [GetMinuteUsageResponse] -> ShowS
show :: GetMinuteUsageResponse -> String
$cshow :: GetMinuteUsageResponse -> String
showsPrec :: Int -> GetMinuteUsageResponse -> ShowS
$cshowsPrec :: Int -> GetMinuteUsageResponse -> ShowS
Prelude.Show, (forall x. GetMinuteUsageResponse -> Rep GetMinuteUsageResponse x)
-> (forall x.
    Rep GetMinuteUsageResponse x -> GetMinuteUsageResponse)
-> Generic GetMinuteUsageResponse
forall x. Rep GetMinuteUsageResponse x -> GetMinuteUsageResponse
forall x. GetMinuteUsageResponse -> Rep GetMinuteUsageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetMinuteUsageResponse x -> GetMinuteUsageResponse
$cfrom :: forall x. GetMinuteUsageResponse -> Rep GetMinuteUsageResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetMinuteUsageResponse' 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:
--
-- 'isReservedMinutesCustomer', 'getMinuteUsageResponse_isReservedMinutesCustomer' - Returns whether or not an account has signed up for the reserved minutes
-- pricing plan, specific to the month being requested.
--
-- 'upcomingMinutesScheduled', 'getMinuteUsageResponse_upcomingMinutesScheduled' - Upcoming minutes scheduled for an account, specific to the month being
-- requested.
--
-- 'totalScheduledMinutes', 'getMinuteUsageResponse_totalScheduledMinutes' - Total scheduled minutes for an account, specific to the month being
-- requested.
--
-- 'totalReservedMinuteAllocation', 'getMinuteUsageResponse_totalReservedMinuteAllocation' - Total number of reserved minutes allocated, specific to the month being
-- requested.
--
-- 'estimatedMinutesRemaining', 'getMinuteUsageResponse_estimatedMinutesRemaining' - Estimated number of minutes remaining for an account, specific to the
-- month being requested.
--
-- 'httpStatus', 'getMinuteUsageResponse_httpStatus' - The response's http status code.
newGetMinuteUsageResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetMinuteUsageResponse
newGetMinuteUsageResponse :: Int -> GetMinuteUsageResponse
newGetMinuteUsageResponse Int
pHttpStatus_ =
  GetMinuteUsageResponse' :: Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Int
-> GetMinuteUsageResponse
GetMinuteUsageResponse'
    { $sel:isReservedMinutesCustomer:GetMinuteUsageResponse' :: Maybe Bool
isReservedMinutesCustomer =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:upcomingMinutesScheduled:GetMinuteUsageResponse' :: Maybe Int
upcomingMinutesScheduled = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:totalScheduledMinutes:GetMinuteUsageResponse' :: Maybe Int
totalScheduledMinutes = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:totalReservedMinuteAllocation:GetMinuteUsageResponse' :: Maybe Int
totalReservedMinuteAllocation = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:estimatedMinutesRemaining:GetMinuteUsageResponse' :: Maybe Int
estimatedMinutesRemaining = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetMinuteUsageResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Returns whether or not an account has signed up for the reserved minutes
-- pricing plan, specific to the month being requested.
getMinuteUsageResponse_isReservedMinutesCustomer :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Bool)
getMinuteUsageResponse_isReservedMinutesCustomer :: (Maybe Bool -> f (Maybe Bool))
-> GetMinuteUsageResponse -> f GetMinuteUsageResponse
getMinuteUsageResponse_isReservedMinutesCustomer = (GetMinuteUsageResponse -> Maybe Bool)
-> (GetMinuteUsageResponse -> Maybe Bool -> GetMinuteUsageResponse)
-> Lens
     GetMinuteUsageResponse
     GetMinuteUsageResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsageResponse' {Maybe Bool
isReservedMinutesCustomer :: Maybe Bool
$sel:isReservedMinutesCustomer:GetMinuteUsageResponse' :: GetMinuteUsageResponse -> Maybe Bool
isReservedMinutesCustomer} -> Maybe Bool
isReservedMinutesCustomer) (\s :: GetMinuteUsageResponse
s@GetMinuteUsageResponse' {} Maybe Bool
a -> GetMinuteUsageResponse
s {$sel:isReservedMinutesCustomer:GetMinuteUsageResponse' :: Maybe Bool
isReservedMinutesCustomer = Maybe Bool
a} :: GetMinuteUsageResponse)

-- | Upcoming minutes scheduled for an account, specific to the month being
-- requested.
getMinuteUsageResponse_upcomingMinutesScheduled :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)
getMinuteUsageResponse_upcomingMinutesScheduled :: (Maybe Int -> f (Maybe Int))
-> GetMinuteUsageResponse -> f GetMinuteUsageResponse
getMinuteUsageResponse_upcomingMinutesScheduled = (GetMinuteUsageResponse -> Maybe Int)
-> (GetMinuteUsageResponse -> Maybe Int -> GetMinuteUsageResponse)
-> Lens
     GetMinuteUsageResponse
     GetMinuteUsageResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsageResponse' {Maybe Int
upcomingMinutesScheduled :: Maybe Int
$sel:upcomingMinutesScheduled:GetMinuteUsageResponse' :: GetMinuteUsageResponse -> Maybe Int
upcomingMinutesScheduled} -> Maybe Int
upcomingMinutesScheduled) (\s :: GetMinuteUsageResponse
s@GetMinuteUsageResponse' {} Maybe Int
a -> GetMinuteUsageResponse
s {$sel:upcomingMinutesScheduled:GetMinuteUsageResponse' :: Maybe Int
upcomingMinutesScheduled = Maybe Int
a} :: GetMinuteUsageResponse)

-- | Total scheduled minutes for an account, specific to the month being
-- requested.
getMinuteUsageResponse_totalScheduledMinutes :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)
getMinuteUsageResponse_totalScheduledMinutes :: (Maybe Int -> f (Maybe Int))
-> GetMinuteUsageResponse -> f GetMinuteUsageResponse
getMinuteUsageResponse_totalScheduledMinutes = (GetMinuteUsageResponse -> Maybe Int)
-> (GetMinuteUsageResponse -> Maybe Int -> GetMinuteUsageResponse)
-> Lens
     GetMinuteUsageResponse
     GetMinuteUsageResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsageResponse' {Maybe Int
totalScheduledMinutes :: Maybe Int
$sel:totalScheduledMinutes:GetMinuteUsageResponse' :: GetMinuteUsageResponse -> Maybe Int
totalScheduledMinutes} -> Maybe Int
totalScheduledMinutes) (\s :: GetMinuteUsageResponse
s@GetMinuteUsageResponse' {} Maybe Int
a -> GetMinuteUsageResponse
s {$sel:totalScheduledMinutes:GetMinuteUsageResponse' :: Maybe Int
totalScheduledMinutes = Maybe Int
a} :: GetMinuteUsageResponse)

-- | Total number of reserved minutes allocated, specific to the month being
-- requested.
getMinuteUsageResponse_totalReservedMinuteAllocation :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)
getMinuteUsageResponse_totalReservedMinuteAllocation :: (Maybe Int -> f (Maybe Int))
-> GetMinuteUsageResponse -> f GetMinuteUsageResponse
getMinuteUsageResponse_totalReservedMinuteAllocation = (GetMinuteUsageResponse -> Maybe Int)
-> (GetMinuteUsageResponse -> Maybe Int -> GetMinuteUsageResponse)
-> Lens
     GetMinuteUsageResponse
     GetMinuteUsageResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsageResponse' {Maybe Int
totalReservedMinuteAllocation :: Maybe Int
$sel:totalReservedMinuteAllocation:GetMinuteUsageResponse' :: GetMinuteUsageResponse -> Maybe Int
totalReservedMinuteAllocation} -> Maybe Int
totalReservedMinuteAllocation) (\s :: GetMinuteUsageResponse
s@GetMinuteUsageResponse' {} Maybe Int
a -> GetMinuteUsageResponse
s {$sel:totalReservedMinuteAllocation:GetMinuteUsageResponse' :: Maybe Int
totalReservedMinuteAllocation = Maybe Int
a} :: GetMinuteUsageResponse)

-- | Estimated number of minutes remaining for an account, specific to the
-- month being requested.
getMinuteUsageResponse_estimatedMinutesRemaining :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)
getMinuteUsageResponse_estimatedMinutesRemaining :: (Maybe Int -> f (Maybe Int))
-> GetMinuteUsageResponse -> f GetMinuteUsageResponse
getMinuteUsageResponse_estimatedMinutesRemaining = (GetMinuteUsageResponse -> Maybe Int)
-> (GetMinuteUsageResponse -> Maybe Int -> GetMinuteUsageResponse)
-> Lens
     GetMinuteUsageResponse
     GetMinuteUsageResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMinuteUsageResponse' {Maybe Int
estimatedMinutesRemaining :: Maybe Int
$sel:estimatedMinutesRemaining:GetMinuteUsageResponse' :: GetMinuteUsageResponse -> Maybe Int
estimatedMinutesRemaining} -> Maybe Int
estimatedMinutesRemaining) (\s :: GetMinuteUsageResponse
s@GetMinuteUsageResponse' {} Maybe Int
a -> GetMinuteUsageResponse
s {$sel:estimatedMinutesRemaining:GetMinuteUsageResponse' :: Maybe Int
estimatedMinutesRemaining = Maybe Int
a} :: GetMinuteUsageResponse)

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

instance Prelude.NFData GetMinuteUsageResponse