{-# 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.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
-- 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 maintenance configuration of the Kinesis Data Analytics
-- application.
--
-- You can invoke this operation on an application that is in one of the
-- two following states: @READY@ or @RUNNING@. If you invoke it when the
-- application is in a state other than these two states, it throws a
-- @ResourceInUseException@. The service makes use of the updated
-- configuration the next time it schedules maintenance for the
-- application. If you invoke this operation after the service schedules
-- maintenance, the service will apply the configuration update the next
-- time it schedules maintenance for the application. This means that you
-- might not see the maintenance configuration update applied to the
-- maintenance process that follows a successful invocation of this
-- operation, but to the following maintenance process instead.
--
-- To see the current maintenance configuration of your application, invoke
-- the DescribeApplication operation.
--
-- For information about application maintenance, see
-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/maintenance.html Kinesis Data Analytics for Apache Flink Maintenance>.
--
-- This operation is supported only for Amazon Kinesis Data Analytics for
-- Apache Flink.
module Amazonka.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
  ( -- * Creating a Request
    UpdateApplicationMaintenanceConfiguration (..),
    newUpdateApplicationMaintenanceConfiguration,

    -- * Request Lenses
    updateApplicationMaintenanceConfiguration_applicationName,
    updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate,

    -- * Destructuring the Response
    UpdateApplicationMaintenanceConfigurationResponse (..),
    newUpdateApplicationMaintenanceConfigurationResponse,

    -- * Response Lenses
    updateApplicationMaintenanceConfigurationResponse_applicationARN,
    updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription,
    updateApplicationMaintenanceConfigurationResponse_httpStatus,
  )
where

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

-- | /See:/ 'newUpdateApplicationMaintenanceConfiguration' smart constructor.
data UpdateApplicationMaintenanceConfiguration = UpdateApplicationMaintenanceConfiguration'
  { -- | The name of the application for which you want to update the maintenance
    -- configuration.
    UpdateApplicationMaintenanceConfiguration -> Text
applicationName :: Prelude.Text,
    -- | Describes the application maintenance configuration update.
    UpdateApplicationMaintenanceConfiguration
-> ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
  }
  deriving (UpdateApplicationMaintenanceConfiguration
-> UpdateApplicationMaintenanceConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateApplicationMaintenanceConfiguration
-> UpdateApplicationMaintenanceConfiguration -> Bool
$c/= :: UpdateApplicationMaintenanceConfiguration
-> UpdateApplicationMaintenanceConfiguration -> Bool
== :: UpdateApplicationMaintenanceConfiguration
-> UpdateApplicationMaintenanceConfiguration -> Bool
$c== :: UpdateApplicationMaintenanceConfiguration
-> UpdateApplicationMaintenanceConfiguration -> Bool
Prelude.Eq, ReadPrec [UpdateApplicationMaintenanceConfiguration]
ReadPrec UpdateApplicationMaintenanceConfiguration
Int -> ReadS UpdateApplicationMaintenanceConfiguration
ReadS [UpdateApplicationMaintenanceConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateApplicationMaintenanceConfiguration]
$creadListPrec :: ReadPrec [UpdateApplicationMaintenanceConfiguration]
readPrec :: ReadPrec UpdateApplicationMaintenanceConfiguration
$creadPrec :: ReadPrec UpdateApplicationMaintenanceConfiguration
readList :: ReadS [UpdateApplicationMaintenanceConfiguration]
$creadList :: ReadS [UpdateApplicationMaintenanceConfiguration]
readsPrec :: Int -> ReadS UpdateApplicationMaintenanceConfiguration
$creadsPrec :: Int -> ReadS UpdateApplicationMaintenanceConfiguration
Prelude.Read, Int -> UpdateApplicationMaintenanceConfiguration -> ShowS
[UpdateApplicationMaintenanceConfiguration] -> ShowS
UpdateApplicationMaintenanceConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateApplicationMaintenanceConfiguration] -> ShowS
$cshowList :: [UpdateApplicationMaintenanceConfiguration] -> ShowS
show :: UpdateApplicationMaintenanceConfiguration -> String
$cshow :: UpdateApplicationMaintenanceConfiguration -> String
showsPrec :: Int -> UpdateApplicationMaintenanceConfiguration -> ShowS
$cshowsPrec :: Int -> UpdateApplicationMaintenanceConfiguration -> ShowS
Prelude.Show, forall x.
Rep UpdateApplicationMaintenanceConfiguration x
-> UpdateApplicationMaintenanceConfiguration
forall x.
UpdateApplicationMaintenanceConfiguration
-> Rep UpdateApplicationMaintenanceConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateApplicationMaintenanceConfiguration x
-> UpdateApplicationMaintenanceConfiguration
$cfrom :: forall x.
UpdateApplicationMaintenanceConfiguration
-> Rep UpdateApplicationMaintenanceConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'UpdateApplicationMaintenanceConfiguration' 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:
--
-- 'applicationName', 'updateApplicationMaintenanceConfiguration_applicationName' - The name of the application for which you want to update the maintenance
-- configuration.
--
-- 'applicationMaintenanceConfigurationUpdate', 'updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate' - Describes the application maintenance configuration update.
newUpdateApplicationMaintenanceConfiguration ::
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'applicationMaintenanceConfigurationUpdate'
  ApplicationMaintenanceConfigurationUpdate ->
  UpdateApplicationMaintenanceConfiguration
newUpdateApplicationMaintenanceConfiguration :: Text
-> ApplicationMaintenanceConfigurationUpdate
-> UpdateApplicationMaintenanceConfiguration
newUpdateApplicationMaintenanceConfiguration
  Text
pApplicationName_
  ApplicationMaintenanceConfigurationUpdate
pApplicationMaintenanceConfigurationUpdate_ =
    UpdateApplicationMaintenanceConfiguration'
      { $sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: Text
applicationName =
          Text
pApplicationName_,
        $sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate =
          ApplicationMaintenanceConfigurationUpdate
pApplicationMaintenanceConfigurationUpdate_
      }

-- | The name of the application for which you want to update the maintenance
-- configuration.
updateApplicationMaintenanceConfiguration_applicationName :: Lens.Lens' UpdateApplicationMaintenanceConfiguration Prelude.Text
updateApplicationMaintenanceConfiguration_applicationName :: Lens' UpdateApplicationMaintenanceConfiguration Text
updateApplicationMaintenanceConfiguration_applicationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationMaintenanceConfiguration' {Text
applicationName :: Text
$sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration -> Text
applicationName} -> Text
applicationName) (\s :: UpdateApplicationMaintenanceConfiguration
s@UpdateApplicationMaintenanceConfiguration' {} Text
a -> UpdateApplicationMaintenanceConfiguration
s {$sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: Text
applicationName = Text
a} :: UpdateApplicationMaintenanceConfiguration)

-- | Describes the application maintenance configuration update.
updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate :: Lens.Lens' UpdateApplicationMaintenanceConfiguration ApplicationMaintenanceConfigurationUpdate
updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate :: Lens'
  UpdateApplicationMaintenanceConfiguration
  ApplicationMaintenanceConfigurationUpdate
updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationMaintenanceConfiguration' {ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
$sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration
-> ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate} -> ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate) (\s :: UpdateApplicationMaintenanceConfiguration
s@UpdateApplicationMaintenanceConfiguration' {} ApplicationMaintenanceConfigurationUpdate
a -> UpdateApplicationMaintenanceConfiguration
s {$sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate = ApplicationMaintenanceConfigurationUpdate
a} :: UpdateApplicationMaintenanceConfiguration)

instance
  Core.AWSRequest
    UpdateApplicationMaintenanceConfiguration
  where
  type
    AWSResponse
      UpdateApplicationMaintenanceConfiguration =
      UpdateApplicationMaintenanceConfigurationResponse
  request :: (Service -> Service)
-> UpdateApplicationMaintenanceConfiguration
-> Request UpdateApplicationMaintenanceConfiguration
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 UpdateApplicationMaintenanceConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse UpdateApplicationMaintenanceConfiguration)))
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
-> Maybe ApplicationMaintenanceConfigurationDescription
-> Int
-> UpdateApplicationMaintenanceConfigurationResponse
UpdateApplicationMaintenanceConfigurationResponse'
            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
"ApplicationARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ApplicationMaintenanceConfigurationDescription"
                        )
            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
    UpdateApplicationMaintenanceConfiguration
  where
  hashWithSalt :: Int -> UpdateApplicationMaintenanceConfiguration -> Int
hashWithSalt
    Int
_salt
    UpdateApplicationMaintenanceConfiguration' {Text
ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
applicationName :: Text
$sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration
-> ApplicationMaintenanceConfigurationUpdate
$sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate

instance
  Prelude.NFData
    UpdateApplicationMaintenanceConfiguration
  where
  rnf :: UpdateApplicationMaintenanceConfiguration -> ()
rnf UpdateApplicationMaintenanceConfiguration' {Text
ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
applicationName :: Text
$sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration
-> ApplicationMaintenanceConfigurationUpdate
$sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
applicationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate

instance
  Data.ToHeaders
    UpdateApplicationMaintenanceConfiguration
  where
  toHeaders :: UpdateApplicationMaintenanceConfiguration -> 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
"KinesisAnalytics_20180523.UpdateApplicationMaintenanceConfiguration" ::
                          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
    UpdateApplicationMaintenanceConfiguration
  where
  toJSON :: UpdateApplicationMaintenanceConfiguration -> Value
toJSON UpdateApplicationMaintenanceConfiguration' {Text
ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
applicationName :: Text
$sel:applicationMaintenanceConfigurationUpdate:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration
-> ApplicationMaintenanceConfigurationUpdate
$sel:applicationName:UpdateApplicationMaintenanceConfiguration' :: UpdateApplicationMaintenanceConfiguration -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"ApplicationName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
applicationName),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"ApplicationMaintenanceConfigurationUpdate"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ApplicationMaintenanceConfigurationUpdate
applicationMaintenanceConfigurationUpdate
              )
          ]
      )

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

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

-- | /See:/ 'newUpdateApplicationMaintenanceConfigurationResponse' smart constructor.
data UpdateApplicationMaintenanceConfigurationResponse = UpdateApplicationMaintenanceConfigurationResponse'
  { -- | The Amazon Resource Name (ARN) of the application.
    UpdateApplicationMaintenanceConfigurationResponse -> Maybe Text
applicationARN :: Prelude.Maybe Prelude.Text,
    -- | The application maintenance configuration description after the update.
    UpdateApplicationMaintenanceConfigurationResponse
-> Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription :: Prelude.Maybe ApplicationMaintenanceConfigurationDescription,
    -- | The response's http status code.
    UpdateApplicationMaintenanceConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateApplicationMaintenanceConfigurationResponse
-> UpdateApplicationMaintenanceConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateApplicationMaintenanceConfigurationResponse
-> UpdateApplicationMaintenanceConfigurationResponse -> Bool
$c/= :: UpdateApplicationMaintenanceConfigurationResponse
-> UpdateApplicationMaintenanceConfigurationResponse -> Bool
== :: UpdateApplicationMaintenanceConfigurationResponse
-> UpdateApplicationMaintenanceConfigurationResponse -> Bool
$c== :: UpdateApplicationMaintenanceConfigurationResponse
-> UpdateApplicationMaintenanceConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateApplicationMaintenanceConfigurationResponse]
ReadPrec UpdateApplicationMaintenanceConfigurationResponse
Int -> ReadS UpdateApplicationMaintenanceConfigurationResponse
ReadS [UpdateApplicationMaintenanceConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateApplicationMaintenanceConfigurationResponse]
$creadListPrec :: ReadPrec [UpdateApplicationMaintenanceConfigurationResponse]
readPrec :: ReadPrec UpdateApplicationMaintenanceConfigurationResponse
$creadPrec :: ReadPrec UpdateApplicationMaintenanceConfigurationResponse
readList :: ReadS [UpdateApplicationMaintenanceConfigurationResponse]
$creadList :: ReadS [UpdateApplicationMaintenanceConfigurationResponse]
readsPrec :: Int -> ReadS UpdateApplicationMaintenanceConfigurationResponse
$creadsPrec :: Int -> ReadS UpdateApplicationMaintenanceConfigurationResponse
Prelude.Read, Int -> UpdateApplicationMaintenanceConfigurationResponse -> ShowS
[UpdateApplicationMaintenanceConfigurationResponse] -> ShowS
UpdateApplicationMaintenanceConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateApplicationMaintenanceConfigurationResponse] -> ShowS
$cshowList :: [UpdateApplicationMaintenanceConfigurationResponse] -> ShowS
show :: UpdateApplicationMaintenanceConfigurationResponse -> String
$cshow :: UpdateApplicationMaintenanceConfigurationResponse -> String
showsPrec :: Int -> UpdateApplicationMaintenanceConfigurationResponse -> ShowS
$cshowsPrec :: Int -> UpdateApplicationMaintenanceConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateApplicationMaintenanceConfigurationResponse x
-> UpdateApplicationMaintenanceConfigurationResponse
forall x.
UpdateApplicationMaintenanceConfigurationResponse
-> Rep UpdateApplicationMaintenanceConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateApplicationMaintenanceConfigurationResponse x
-> UpdateApplicationMaintenanceConfigurationResponse
$cfrom :: forall x.
UpdateApplicationMaintenanceConfigurationResponse
-> Rep UpdateApplicationMaintenanceConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateApplicationMaintenanceConfigurationResponse' 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:
--
-- 'applicationARN', 'updateApplicationMaintenanceConfigurationResponse_applicationARN' - The Amazon Resource Name (ARN) of the application.
--
-- 'applicationMaintenanceConfigurationDescription', 'updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription' - The application maintenance configuration description after the update.
--
-- 'httpStatus', 'updateApplicationMaintenanceConfigurationResponse_httpStatus' - The response's http status code.
newUpdateApplicationMaintenanceConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateApplicationMaintenanceConfigurationResponse
newUpdateApplicationMaintenanceConfigurationResponse :: Int -> UpdateApplicationMaintenanceConfigurationResponse
newUpdateApplicationMaintenanceConfigurationResponse
  Int
pHttpStatus_ =
    UpdateApplicationMaintenanceConfigurationResponse'
      { $sel:applicationARN:UpdateApplicationMaintenanceConfigurationResponse' :: Maybe Text
applicationARN =
          forall a. Maybe a
Prelude.Nothing,
        $sel:applicationMaintenanceConfigurationDescription:UpdateApplicationMaintenanceConfigurationResponse' :: Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateApplicationMaintenanceConfigurationResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | The Amazon Resource Name (ARN) of the application.
updateApplicationMaintenanceConfigurationResponse_applicationARN :: Lens.Lens' UpdateApplicationMaintenanceConfigurationResponse (Prelude.Maybe Prelude.Text)
updateApplicationMaintenanceConfigurationResponse_applicationARN :: Lens'
  UpdateApplicationMaintenanceConfigurationResponse (Maybe Text)
updateApplicationMaintenanceConfigurationResponse_applicationARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationMaintenanceConfigurationResponse' {Maybe Text
applicationARN :: Maybe Text
$sel:applicationARN:UpdateApplicationMaintenanceConfigurationResponse' :: UpdateApplicationMaintenanceConfigurationResponse -> Maybe Text
applicationARN} -> Maybe Text
applicationARN) (\s :: UpdateApplicationMaintenanceConfigurationResponse
s@UpdateApplicationMaintenanceConfigurationResponse' {} Maybe Text
a -> UpdateApplicationMaintenanceConfigurationResponse
s {$sel:applicationARN:UpdateApplicationMaintenanceConfigurationResponse' :: Maybe Text
applicationARN = Maybe Text
a} :: UpdateApplicationMaintenanceConfigurationResponse)

-- | The application maintenance configuration description after the update.
updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription :: Lens.Lens' UpdateApplicationMaintenanceConfigurationResponse (Prelude.Maybe ApplicationMaintenanceConfigurationDescription)
updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription :: Lens'
  UpdateApplicationMaintenanceConfigurationResponse
  (Maybe ApplicationMaintenanceConfigurationDescription)
updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationMaintenanceConfigurationResponse' {Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription :: Maybe ApplicationMaintenanceConfigurationDescription
$sel:applicationMaintenanceConfigurationDescription:UpdateApplicationMaintenanceConfigurationResponse' :: UpdateApplicationMaintenanceConfigurationResponse
-> Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription} -> Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription) (\s :: UpdateApplicationMaintenanceConfigurationResponse
s@UpdateApplicationMaintenanceConfigurationResponse' {} Maybe ApplicationMaintenanceConfigurationDescription
a -> UpdateApplicationMaintenanceConfigurationResponse
s {$sel:applicationMaintenanceConfigurationDescription:UpdateApplicationMaintenanceConfigurationResponse' :: Maybe ApplicationMaintenanceConfigurationDescription
applicationMaintenanceConfigurationDescription = Maybe ApplicationMaintenanceConfigurationDescription
a} :: UpdateApplicationMaintenanceConfigurationResponse)

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

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