{-# 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.EC2.ModifyCapacityReservationFleet
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies a Capacity Reservation Fleet.
--
-- When you modify the total target capacity of a Capacity Reservation
-- Fleet, the Fleet automatically creates new Capacity Reservations, or
-- modifies or cancels existing Capacity Reservations in the Fleet to meet
-- the new total target capacity. When you modify the end date for the
-- Fleet, the end dates for all of the individual Capacity Reservations in
-- the Fleet are updated accordingly.
module Amazonka.EC2.ModifyCapacityReservationFleet
  ( -- * Creating a Request
    ModifyCapacityReservationFleet (..),
    newModifyCapacityReservationFleet,

    -- * Request Lenses
    modifyCapacityReservationFleet_dryRun,
    modifyCapacityReservationFleet_endDate,
    modifyCapacityReservationFleet_removeEndDate,
    modifyCapacityReservationFleet_totalTargetCapacity,
    modifyCapacityReservationFleet_capacityReservationFleetId,

    -- * Destructuring the Response
    ModifyCapacityReservationFleetResponse (..),
    newModifyCapacityReservationFleetResponse,

    -- * Response Lenses
    modifyCapacityReservationFleetResponse_return,
    modifyCapacityReservationFleetResponse_httpStatus,
  )
where

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

-- | /See:/ 'newModifyCapacityReservationFleet' smart constructor.
data ModifyCapacityReservationFleet = ModifyCapacityReservationFleet'
  { -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    ModifyCapacityReservationFleet -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The date and time at which the Capacity Reservation Fleet expires. When
    -- the Capacity Reservation Fleet expires, its state changes to @expired@
    -- and all of the Capacity Reservations in the Fleet expire.
    --
    -- The Capacity Reservation Fleet expires within an hour after the
    -- specified time. For example, if you specify @5\/31\/2019@, @13:30:55@,
    -- the Capacity Reservation Fleet is guaranteed to expire between
    -- @13:30:55@ and @14:30:55@ on @5\/31\/2019@.
    --
    -- You can\'t specify __EndDate__ and __RemoveEndDate__ in the same
    -- request.
    ModifyCapacityReservationFleet -> Maybe ISO8601
endDate :: Prelude.Maybe Data.ISO8601,
    -- | Indicates whether to remove the end date from the Capacity Reservation
    -- Fleet. If you remove the end date, the Capacity Reservation Fleet does
    -- not expire and it remains active until you explicitly cancel it using
    -- the __CancelCapacityReservationFleet__ action.
    --
    -- You can\'t specify __RemoveEndDate__ and __EndDate__ in the same
    -- request.
    ModifyCapacityReservationFleet -> Maybe Bool
removeEndDate :: Prelude.Maybe Prelude.Bool,
    -- | The total number of capacity units to be reserved by the Capacity
    -- Reservation Fleet. This value, together with the instance type weights
    -- that you assign to each instance type used by the Fleet determine the
    -- number of instances for which the Fleet reserves capacity. Both values
    -- are based on units that make sense for your workload. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity Total target capacity>
    -- in the Amazon EC2 User Guide.
    ModifyCapacityReservationFleet -> Maybe Int
totalTargetCapacity :: Prelude.Maybe Prelude.Int,
    -- | The ID of the Capacity Reservation Fleet to modify.
    ModifyCapacityReservationFleet -> Text
capacityReservationFleetId :: Prelude.Text
  }
  deriving (ModifyCapacityReservationFleet
-> ModifyCapacityReservationFleet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyCapacityReservationFleet
-> ModifyCapacityReservationFleet -> Bool
$c/= :: ModifyCapacityReservationFleet
-> ModifyCapacityReservationFleet -> Bool
== :: ModifyCapacityReservationFleet
-> ModifyCapacityReservationFleet -> Bool
$c== :: ModifyCapacityReservationFleet
-> ModifyCapacityReservationFleet -> Bool
Prelude.Eq, ReadPrec [ModifyCapacityReservationFleet]
ReadPrec ModifyCapacityReservationFleet
Int -> ReadS ModifyCapacityReservationFleet
ReadS [ModifyCapacityReservationFleet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyCapacityReservationFleet]
$creadListPrec :: ReadPrec [ModifyCapacityReservationFleet]
readPrec :: ReadPrec ModifyCapacityReservationFleet
$creadPrec :: ReadPrec ModifyCapacityReservationFleet
readList :: ReadS [ModifyCapacityReservationFleet]
$creadList :: ReadS [ModifyCapacityReservationFleet]
readsPrec :: Int -> ReadS ModifyCapacityReservationFleet
$creadsPrec :: Int -> ReadS ModifyCapacityReservationFleet
Prelude.Read, Int -> ModifyCapacityReservationFleet -> ShowS
[ModifyCapacityReservationFleet] -> ShowS
ModifyCapacityReservationFleet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyCapacityReservationFleet] -> ShowS
$cshowList :: [ModifyCapacityReservationFleet] -> ShowS
show :: ModifyCapacityReservationFleet -> String
$cshow :: ModifyCapacityReservationFleet -> String
showsPrec :: Int -> ModifyCapacityReservationFleet -> ShowS
$cshowsPrec :: Int -> ModifyCapacityReservationFleet -> ShowS
Prelude.Show, forall x.
Rep ModifyCapacityReservationFleet x
-> ModifyCapacityReservationFleet
forall x.
ModifyCapacityReservationFleet
-> Rep ModifyCapacityReservationFleet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyCapacityReservationFleet x
-> ModifyCapacityReservationFleet
$cfrom :: forall x.
ModifyCapacityReservationFleet
-> Rep ModifyCapacityReservationFleet x
Prelude.Generic)

-- |
-- Create a value of 'ModifyCapacityReservationFleet' 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:
--
-- 'dryRun', 'modifyCapacityReservationFleet_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'endDate', 'modifyCapacityReservationFleet_endDate' - The date and time at which the Capacity Reservation Fleet expires. When
-- the Capacity Reservation Fleet expires, its state changes to @expired@
-- and all of the Capacity Reservations in the Fleet expire.
--
-- The Capacity Reservation Fleet expires within an hour after the
-- specified time. For example, if you specify @5\/31\/2019@, @13:30:55@,
-- the Capacity Reservation Fleet is guaranteed to expire between
-- @13:30:55@ and @14:30:55@ on @5\/31\/2019@.
--
-- You can\'t specify __EndDate__ and __RemoveEndDate__ in the same
-- request.
--
-- 'removeEndDate', 'modifyCapacityReservationFleet_removeEndDate' - Indicates whether to remove the end date from the Capacity Reservation
-- Fleet. If you remove the end date, the Capacity Reservation Fleet does
-- not expire and it remains active until you explicitly cancel it using
-- the __CancelCapacityReservationFleet__ action.
--
-- You can\'t specify __RemoveEndDate__ and __EndDate__ in the same
-- request.
--
-- 'totalTargetCapacity', 'modifyCapacityReservationFleet_totalTargetCapacity' - The total number of capacity units to be reserved by the Capacity
-- Reservation Fleet. This value, together with the instance type weights
-- that you assign to each instance type used by the Fleet determine the
-- number of instances for which the Fleet reserves capacity. Both values
-- are based on units that make sense for your workload. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity Total target capacity>
-- in the Amazon EC2 User Guide.
--
-- 'capacityReservationFleetId', 'modifyCapacityReservationFleet_capacityReservationFleetId' - The ID of the Capacity Reservation Fleet to modify.
newModifyCapacityReservationFleet ::
  -- | 'capacityReservationFleetId'
  Prelude.Text ->
  ModifyCapacityReservationFleet
newModifyCapacityReservationFleet :: Text -> ModifyCapacityReservationFleet
newModifyCapacityReservationFleet
  Text
pCapacityReservationFleetId_ =
    ModifyCapacityReservationFleet'
      { $sel:dryRun:ModifyCapacityReservationFleet' :: Maybe Bool
dryRun =
          forall a. Maybe a
Prelude.Nothing,
        $sel:endDate:ModifyCapacityReservationFleet' :: Maybe ISO8601
endDate = forall a. Maybe a
Prelude.Nothing,
        $sel:removeEndDate:ModifyCapacityReservationFleet' :: Maybe Bool
removeEndDate = forall a. Maybe a
Prelude.Nothing,
        $sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: Maybe Int
totalTargetCapacity = forall a. Maybe a
Prelude.Nothing,
        $sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: Text
capacityReservationFleetId =
          Text
pCapacityReservationFleetId_
      }

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
modifyCapacityReservationFleet_dryRun :: Lens.Lens' ModifyCapacityReservationFleet (Prelude.Maybe Prelude.Bool)
modifyCapacityReservationFleet_dryRun :: Lens' ModifyCapacityReservationFleet (Maybe Bool)
modifyCapacityReservationFleet_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleet' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: ModifyCapacityReservationFleet
s@ModifyCapacityReservationFleet' {} Maybe Bool
a -> ModifyCapacityReservationFleet
s {$sel:dryRun:ModifyCapacityReservationFleet' :: Maybe Bool
dryRun = Maybe Bool
a} :: ModifyCapacityReservationFleet)

-- | The date and time at which the Capacity Reservation Fleet expires. When
-- the Capacity Reservation Fleet expires, its state changes to @expired@
-- and all of the Capacity Reservations in the Fleet expire.
--
-- The Capacity Reservation Fleet expires within an hour after the
-- specified time. For example, if you specify @5\/31\/2019@, @13:30:55@,
-- the Capacity Reservation Fleet is guaranteed to expire between
-- @13:30:55@ and @14:30:55@ on @5\/31\/2019@.
--
-- You can\'t specify __EndDate__ and __RemoveEndDate__ in the same
-- request.
modifyCapacityReservationFleet_endDate :: Lens.Lens' ModifyCapacityReservationFleet (Prelude.Maybe Prelude.UTCTime)
modifyCapacityReservationFleet_endDate :: Lens' ModifyCapacityReservationFleet (Maybe UTCTime)
modifyCapacityReservationFleet_endDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleet' {Maybe ISO8601
endDate :: Maybe ISO8601
$sel:endDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe ISO8601
endDate} -> Maybe ISO8601
endDate) (\s :: ModifyCapacityReservationFleet
s@ModifyCapacityReservationFleet' {} Maybe ISO8601
a -> ModifyCapacityReservationFleet
s {$sel:endDate:ModifyCapacityReservationFleet' :: Maybe ISO8601
endDate = Maybe ISO8601
a} :: ModifyCapacityReservationFleet) 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

-- | Indicates whether to remove the end date from the Capacity Reservation
-- Fleet. If you remove the end date, the Capacity Reservation Fleet does
-- not expire and it remains active until you explicitly cancel it using
-- the __CancelCapacityReservationFleet__ action.
--
-- You can\'t specify __RemoveEndDate__ and __EndDate__ in the same
-- request.
modifyCapacityReservationFleet_removeEndDate :: Lens.Lens' ModifyCapacityReservationFleet (Prelude.Maybe Prelude.Bool)
modifyCapacityReservationFleet_removeEndDate :: Lens' ModifyCapacityReservationFleet (Maybe Bool)
modifyCapacityReservationFleet_removeEndDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleet' {Maybe Bool
removeEndDate :: Maybe Bool
$sel:removeEndDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
removeEndDate} -> Maybe Bool
removeEndDate) (\s :: ModifyCapacityReservationFleet
s@ModifyCapacityReservationFleet' {} Maybe Bool
a -> ModifyCapacityReservationFleet
s {$sel:removeEndDate:ModifyCapacityReservationFleet' :: Maybe Bool
removeEndDate = Maybe Bool
a} :: ModifyCapacityReservationFleet)

-- | The total number of capacity units to be reserved by the Capacity
-- Reservation Fleet. This value, together with the instance type weights
-- that you assign to each instance type used by the Fleet determine the
-- number of instances for which the Fleet reserves capacity. Both values
-- are based on units that make sense for your workload. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity Total target capacity>
-- in the Amazon EC2 User Guide.
modifyCapacityReservationFleet_totalTargetCapacity :: Lens.Lens' ModifyCapacityReservationFleet (Prelude.Maybe Prelude.Int)
modifyCapacityReservationFleet_totalTargetCapacity :: Lens' ModifyCapacityReservationFleet (Maybe Int)
modifyCapacityReservationFleet_totalTargetCapacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleet' {Maybe Int
totalTargetCapacity :: Maybe Int
$sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Int
totalTargetCapacity} -> Maybe Int
totalTargetCapacity) (\s :: ModifyCapacityReservationFleet
s@ModifyCapacityReservationFleet' {} Maybe Int
a -> ModifyCapacityReservationFleet
s {$sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: Maybe Int
totalTargetCapacity = Maybe Int
a} :: ModifyCapacityReservationFleet)

-- | The ID of the Capacity Reservation Fleet to modify.
modifyCapacityReservationFleet_capacityReservationFleetId :: Lens.Lens' ModifyCapacityReservationFleet Prelude.Text
modifyCapacityReservationFleet_capacityReservationFleetId :: Lens' ModifyCapacityReservationFleet Text
modifyCapacityReservationFleet_capacityReservationFleetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleet' {Text
capacityReservationFleetId :: Text
$sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Text
capacityReservationFleetId} -> Text
capacityReservationFleetId) (\s :: ModifyCapacityReservationFleet
s@ModifyCapacityReservationFleet' {} Text
a -> ModifyCapacityReservationFleet
s {$sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: Text
capacityReservationFleetId = Text
a} :: ModifyCapacityReservationFleet)

instance
  Core.AWSRequest
    ModifyCapacityReservationFleet
  where
  type
    AWSResponse ModifyCapacityReservationFleet =
      ModifyCapacityReservationFleetResponse
  request :: (Service -> Service)
-> ModifyCapacityReservationFleet
-> Request ModifyCapacityReservationFleet
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ModifyCapacityReservationFleet
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ModifyCapacityReservationFleet)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Bool -> Int -> ModifyCapacityReservationFleetResponse
ModifyCapacityReservationFleetResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"return")
            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
    ModifyCapacityReservationFleet
  where
  hashWithSalt :: Int -> ModifyCapacityReservationFleet -> Int
hashWithSalt
    Int
_salt
    ModifyCapacityReservationFleet' {Maybe Bool
Maybe Int
Maybe ISO8601
Text
capacityReservationFleetId :: Text
totalTargetCapacity :: Maybe Int
removeEndDate :: Maybe Bool
endDate :: Maybe ISO8601
dryRun :: Maybe Bool
$sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Text
$sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Int
$sel:removeEndDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
$sel:endDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe ISO8601
$sel:dryRun:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
endDate
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
removeEndDate
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
totalTargetCapacity
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
capacityReservationFleetId

instance
  Prelude.NFData
    ModifyCapacityReservationFleet
  where
  rnf :: ModifyCapacityReservationFleet -> ()
rnf ModifyCapacityReservationFleet' {Maybe Bool
Maybe Int
Maybe ISO8601
Text
capacityReservationFleetId :: Text
totalTargetCapacity :: Maybe Int
removeEndDate :: Maybe Bool
endDate :: Maybe ISO8601
dryRun :: Maybe Bool
$sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Text
$sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Int
$sel:removeEndDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
$sel:endDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe ISO8601
$sel:dryRun:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
endDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
removeEndDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
totalTargetCapacity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
capacityReservationFleetId

instance
  Data.ToHeaders
    ModifyCapacityReservationFleet
  where
  toHeaders :: ModifyCapacityReservationFleet -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

instance Data.ToQuery ModifyCapacityReservationFleet where
  toQuery :: ModifyCapacityReservationFleet -> QueryString
toQuery ModifyCapacityReservationFleet' {Maybe Bool
Maybe Int
Maybe ISO8601
Text
capacityReservationFleetId :: Text
totalTargetCapacity :: Maybe Int
removeEndDate :: Maybe Bool
endDate :: Maybe ISO8601
dryRun :: Maybe Bool
$sel:capacityReservationFleetId:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Text
$sel:totalTargetCapacity:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Int
$sel:removeEndDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
$sel:endDate:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe ISO8601
$sel:dryRun:ModifyCapacityReservationFleet' :: ModifyCapacityReservationFleet -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"ModifyCapacityReservationFleet" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"EndDate" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ISO8601
endDate,
        ByteString
"RemoveEndDate" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
removeEndDate,
        ByteString
"TotalTargetCapacity" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
totalTargetCapacity,
        ByteString
"CapacityReservationFleetId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
capacityReservationFleetId
      ]

-- | /See:/ 'newModifyCapacityReservationFleetResponse' smart constructor.
data ModifyCapacityReservationFleetResponse = ModifyCapacityReservationFleetResponse'
  { -- | Returns @true@ if the request succeeds; otherwise, it returns an error.
    ModifyCapacityReservationFleetResponse -> Maybe Bool
return' :: Prelude.Maybe Prelude.Bool,
    -- | The response's http status code.
    ModifyCapacityReservationFleetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ModifyCapacityReservationFleetResponse
-> ModifyCapacityReservationFleetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyCapacityReservationFleetResponse
-> ModifyCapacityReservationFleetResponse -> Bool
$c/= :: ModifyCapacityReservationFleetResponse
-> ModifyCapacityReservationFleetResponse -> Bool
== :: ModifyCapacityReservationFleetResponse
-> ModifyCapacityReservationFleetResponse -> Bool
$c== :: ModifyCapacityReservationFleetResponse
-> ModifyCapacityReservationFleetResponse -> Bool
Prelude.Eq, ReadPrec [ModifyCapacityReservationFleetResponse]
ReadPrec ModifyCapacityReservationFleetResponse
Int -> ReadS ModifyCapacityReservationFleetResponse
ReadS [ModifyCapacityReservationFleetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyCapacityReservationFleetResponse]
$creadListPrec :: ReadPrec [ModifyCapacityReservationFleetResponse]
readPrec :: ReadPrec ModifyCapacityReservationFleetResponse
$creadPrec :: ReadPrec ModifyCapacityReservationFleetResponse
readList :: ReadS [ModifyCapacityReservationFleetResponse]
$creadList :: ReadS [ModifyCapacityReservationFleetResponse]
readsPrec :: Int -> ReadS ModifyCapacityReservationFleetResponse
$creadsPrec :: Int -> ReadS ModifyCapacityReservationFleetResponse
Prelude.Read, Int -> ModifyCapacityReservationFleetResponse -> ShowS
[ModifyCapacityReservationFleetResponse] -> ShowS
ModifyCapacityReservationFleetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyCapacityReservationFleetResponse] -> ShowS
$cshowList :: [ModifyCapacityReservationFleetResponse] -> ShowS
show :: ModifyCapacityReservationFleetResponse -> String
$cshow :: ModifyCapacityReservationFleetResponse -> String
showsPrec :: Int -> ModifyCapacityReservationFleetResponse -> ShowS
$cshowsPrec :: Int -> ModifyCapacityReservationFleetResponse -> ShowS
Prelude.Show, forall x.
Rep ModifyCapacityReservationFleetResponse x
-> ModifyCapacityReservationFleetResponse
forall x.
ModifyCapacityReservationFleetResponse
-> Rep ModifyCapacityReservationFleetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyCapacityReservationFleetResponse x
-> ModifyCapacityReservationFleetResponse
$cfrom :: forall x.
ModifyCapacityReservationFleetResponse
-> Rep ModifyCapacityReservationFleetResponse x
Prelude.Generic)

-- |
-- Create a value of 'ModifyCapacityReservationFleetResponse' 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:
--
-- 'return'', 'modifyCapacityReservationFleetResponse_return' - Returns @true@ if the request succeeds; otherwise, it returns an error.
--
-- 'httpStatus', 'modifyCapacityReservationFleetResponse_httpStatus' - The response's http status code.
newModifyCapacityReservationFleetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyCapacityReservationFleetResponse
newModifyCapacityReservationFleetResponse :: Int -> ModifyCapacityReservationFleetResponse
newModifyCapacityReservationFleetResponse
  Int
pHttpStatus_ =
    ModifyCapacityReservationFleetResponse'
      { $sel:return':ModifyCapacityReservationFleetResponse' :: Maybe Bool
return' =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ModifyCapacityReservationFleetResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Returns @true@ if the request succeeds; otherwise, it returns an error.
modifyCapacityReservationFleetResponse_return :: Lens.Lens' ModifyCapacityReservationFleetResponse (Prelude.Maybe Prelude.Bool)
modifyCapacityReservationFleetResponse_return :: Lens' ModifyCapacityReservationFleetResponse (Maybe Bool)
modifyCapacityReservationFleetResponse_return = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyCapacityReservationFleetResponse' {Maybe Bool
return' :: Maybe Bool
$sel:return':ModifyCapacityReservationFleetResponse' :: ModifyCapacityReservationFleetResponse -> Maybe Bool
return'} -> Maybe Bool
return') (\s :: ModifyCapacityReservationFleetResponse
s@ModifyCapacityReservationFleetResponse' {} Maybe Bool
a -> ModifyCapacityReservationFleetResponse
s {$sel:return':ModifyCapacityReservationFleetResponse' :: Maybe Bool
return' = Maybe Bool
a} :: ModifyCapacityReservationFleetResponse)

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

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