{-# 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.ModifyAvailabilityZoneGroup
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Changes the opt-in status of the Local Zone and Wavelength Zone group
-- for your account.
--
-- Use
-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html DescribeAvailabilityZones>
-- to view the value for @GroupName@.
module Amazonka.EC2.ModifyAvailabilityZoneGroup
  ( -- * Creating a Request
    ModifyAvailabilityZoneGroup (..),
    newModifyAvailabilityZoneGroup,

    -- * Request Lenses
    modifyAvailabilityZoneGroup_dryRun,
    modifyAvailabilityZoneGroup_groupName,
    modifyAvailabilityZoneGroup_optInStatus,

    -- * Destructuring the Response
    ModifyAvailabilityZoneGroupResponse (..),
    newModifyAvailabilityZoneGroupResponse,

    -- * Response Lenses
    modifyAvailabilityZoneGroupResponse_return,
    modifyAvailabilityZoneGroupResponse_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:/ 'newModifyAvailabilityZoneGroup' smart constructor.
data ModifyAvailabilityZoneGroup = ModifyAvailabilityZoneGroup'
  { -- | 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@.
    ModifyAvailabilityZoneGroup -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The name of the Availability Zone group, Local Zone group, or Wavelength
    -- Zone group.
    ModifyAvailabilityZoneGroup -> Text
groupName :: Prelude.Text,
    -- | Indicates whether you are opted in to the Local Zone group or Wavelength
    -- Zone group. The only valid value is @opted-in@. You must contact
    -- <https://console.aws.amazon.com/support/home#/case/create%3FissueType=customer-service%26serviceCode=general-info%26getting-started%26categoryCode=using-aws%26services Amazon Web Services Support>
    -- to opt out of a Local Zone or Wavelength Zone group.
    ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneOptInStatus
optInStatus :: ModifyAvailabilityZoneOptInStatus
  }
  deriving (ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneGroup -> Bool
$c/= :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneGroup -> Bool
== :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneGroup -> Bool
$c== :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneGroup -> Bool
Prelude.Eq, ReadPrec [ModifyAvailabilityZoneGroup]
ReadPrec ModifyAvailabilityZoneGroup
Int -> ReadS ModifyAvailabilityZoneGroup
ReadS [ModifyAvailabilityZoneGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyAvailabilityZoneGroup]
$creadListPrec :: ReadPrec [ModifyAvailabilityZoneGroup]
readPrec :: ReadPrec ModifyAvailabilityZoneGroup
$creadPrec :: ReadPrec ModifyAvailabilityZoneGroup
readList :: ReadS [ModifyAvailabilityZoneGroup]
$creadList :: ReadS [ModifyAvailabilityZoneGroup]
readsPrec :: Int -> ReadS ModifyAvailabilityZoneGroup
$creadsPrec :: Int -> ReadS ModifyAvailabilityZoneGroup
Prelude.Read, Int -> ModifyAvailabilityZoneGroup -> ShowS
[ModifyAvailabilityZoneGroup] -> ShowS
ModifyAvailabilityZoneGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyAvailabilityZoneGroup] -> ShowS
$cshowList :: [ModifyAvailabilityZoneGroup] -> ShowS
show :: ModifyAvailabilityZoneGroup -> String
$cshow :: ModifyAvailabilityZoneGroup -> String
showsPrec :: Int -> ModifyAvailabilityZoneGroup -> ShowS
$cshowsPrec :: Int -> ModifyAvailabilityZoneGroup -> ShowS
Prelude.Show, forall x.
Rep ModifyAvailabilityZoneGroup x -> ModifyAvailabilityZoneGroup
forall x.
ModifyAvailabilityZoneGroup -> Rep ModifyAvailabilityZoneGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyAvailabilityZoneGroup x -> ModifyAvailabilityZoneGroup
$cfrom :: forall x.
ModifyAvailabilityZoneGroup -> Rep ModifyAvailabilityZoneGroup x
Prelude.Generic)

-- |
-- Create a value of 'ModifyAvailabilityZoneGroup' 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', 'modifyAvailabilityZoneGroup_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@.
--
-- 'groupName', 'modifyAvailabilityZoneGroup_groupName' - The name of the Availability Zone group, Local Zone group, or Wavelength
-- Zone group.
--
-- 'optInStatus', 'modifyAvailabilityZoneGroup_optInStatus' - Indicates whether you are opted in to the Local Zone group or Wavelength
-- Zone group. The only valid value is @opted-in@. You must contact
-- <https://console.aws.amazon.com/support/home#/case/create%3FissueType=customer-service%26serviceCode=general-info%26getting-started%26categoryCode=using-aws%26services Amazon Web Services Support>
-- to opt out of a Local Zone or Wavelength Zone group.
newModifyAvailabilityZoneGroup ::
  -- | 'groupName'
  Prelude.Text ->
  -- | 'optInStatus'
  ModifyAvailabilityZoneOptInStatus ->
  ModifyAvailabilityZoneGroup
newModifyAvailabilityZoneGroup :: Text
-> ModifyAvailabilityZoneOptInStatus -> ModifyAvailabilityZoneGroup
newModifyAvailabilityZoneGroup
  Text
pGroupName_
  ModifyAvailabilityZoneOptInStatus
pOptInStatus_ =
    ModifyAvailabilityZoneGroup'
      { $sel:dryRun:ModifyAvailabilityZoneGroup' :: Maybe Bool
dryRun =
          forall a. Maybe a
Prelude.Nothing,
        $sel:groupName:ModifyAvailabilityZoneGroup' :: Text
groupName = Text
pGroupName_,
        $sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneOptInStatus
optInStatus = ModifyAvailabilityZoneOptInStatus
pOptInStatus_
      }

-- | 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@.
modifyAvailabilityZoneGroup_dryRun :: Lens.Lens' ModifyAvailabilityZoneGroup (Prelude.Maybe Prelude.Bool)
modifyAvailabilityZoneGroup_dryRun :: Lens' ModifyAvailabilityZoneGroup (Maybe Bool)
modifyAvailabilityZoneGroup_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyAvailabilityZoneGroup' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: ModifyAvailabilityZoneGroup
s@ModifyAvailabilityZoneGroup' {} Maybe Bool
a -> ModifyAvailabilityZoneGroup
s {$sel:dryRun:ModifyAvailabilityZoneGroup' :: Maybe Bool
dryRun = Maybe Bool
a} :: ModifyAvailabilityZoneGroup)

-- | The name of the Availability Zone group, Local Zone group, or Wavelength
-- Zone group.
modifyAvailabilityZoneGroup_groupName :: Lens.Lens' ModifyAvailabilityZoneGroup Prelude.Text
modifyAvailabilityZoneGroup_groupName :: Lens' ModifyAvailabilityZoneGroup Text
modifyAvailabilityZoneGroup_groupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyAvailabilityZoneGroup' {Text
groupName :: Text
$sel:groupName:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Text
groupName} -> Text
groupName) (\s :: ModifyAvailabilityZoneGroup
s@ModifyAvailabilityZoneGroup' {} Text
a -> ModifyAvailabilityZoneGroup
s {$sel:groupName:ModifyAvailabilityZoneGroup' :: Text
groupName = Text
a} :: ModifyAvailabilityZoneGroup)

-- | Indicates whether you are opted in to the Local Zone group or Wavelength
-- Zone group. The only valid value is @opted-in@. You must contact
-- <https://console.aws.amazon.com/support/home#/case/create%3FissueType=customer-service%26serviceCode=general-info%26getting-started%26categoryCode=using-aws%26services Amazon Web Services Support>
-- to opt out of a Local Zone or Wavelength Zone group.
modifyAvailabilityZoneGroup_optInStatus :: Lens.Lens' ModifyAvailabilityZoneGroup ModifyAvailabilityZoneOptInStatus
modifyAvailabilityZoneGroup_optInStatus :: Lens' ModifyAvailabilityZoneGroup ModifyAvailabilityZoneOptInStatus
modifyAvailabilityZoneGroup_optInStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyAvailabilityZoneGroup' {ModifyAvailabilityZoneOptInStatus
optInStatus :: ModifyAvailabilityZoneOptInStatus
$sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneOptInStatus
optInStatus} -> ModifyAvailabilityZoneOptInStatus
optInStatus) (\s :: ModifyAvailabilityZoneGroup
s@ModifyAvailabilityZoneGroup' {} ModifyAvailabilityZoneOptInStatus
a -> ModifyAvailabilityZoneGroup
s {$sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneOptInStatus
optInStatus = ModifyAvailabilityZoneOptInStatus
a} :: ModifyAvailabilityZoneGroup)

instance Core.AWSRequest ModifyAvailabilityZoneGroup where
  type
    AWSResponse ModifyAvailabilityZoneGroup =
      ModifyAvailabilityZoneGroupResponse
  request :: (Service -> Service)
-> ModifyAvailabilityZoneGroup
-> Request ModifyAvailabilityZoneGroup
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 ModifyAvailabilityZoneGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ModifyAvailabilityZoneGroup)))
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 -> ModifyAvailabilityZoneGroupResponse
ModifyAvailabilityZoneGroupResponse'
            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 ModifyAvailabilityZoneGroup where
  hashWithSalt :: Int -> ModifyAvailabilityZoneGroup -> Int
hashWithSalt Int
_salt ModifyAvailabilityZoneGroup' {Maybe Bool
Text
ModifyAvailabilityZoneOptInStatus
optInStatus :: ModifyAvailabilityZoneOptInStatus
groupName :: Text
dryRun :: Maybe Bool
$sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneOptInStatus
$sel:groupName:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Text
$sel:dryRun:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> 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` Text
groupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ModifyAvailabilityZoneOptInStatus
optInStatus

instance Prelude.NFData ModifyAvailabilityZoneGroup where
  rnf :: ModifyAvailabilityZoneGroup -> ()
rnf ModifyAvailabilityZoneGroup' {Maybe Bool
Text
ModifyAvailabilityZoneOptInStatus
optInStatus :: ModifyAvailabilityZoneOptInStatus
groupName :: Text
dryRun :: Maybe Bool
$sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneOptInStatus
$sel:groupName:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Text
$sel:dryRun:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> 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 Text
groupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ModifyAvailabilityZoneOptInStatus
optInStatus

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

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

instance Data.ToQuery ModifyAvailabilityZoneGroup where
  toQuery :: ModifyAvailabilityZoneGroup -> QueryString
toQuery ModifyAvailabilityZoneGroup' {Maybe Bool
Text
ModifyAvailabilityZoneOptInStatus
optInStatus :: ModifyAvailabilityZoneOptInStatus
groupName :: Text
dryRun :: Maybe Bool
$sel:optInStatus:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> ModifyAvailabilityZoneOptInStatus
$sel:groupName:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Text
$sel:dryRun:ModifyAvailabilityZoneGroup' :: ModifyAvailabilityZoneGroup -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"ModifyAvailabilityZoneGroup" ::
                      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
"GroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
groupName,
        ByteString
"OptInStatus" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ModifyAvailabilityZoneOptInStatus
optInStatus
      ]

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

-- |
-- Create a value of 'ModifyAvailabilityZoneGroupResponse' 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'', 'modifyAvailabilityZoneGroupResponse_return' - Is @true@ if the request succeeds, and an error otherwise.
--
-- 'httpStatus', 'modifyAvailabilityZoneGroupResponse_httpStatus' - The response's http status code.
newModifyAvailabilityZoneGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyAvailabilityZoneGroupResponse
newModifyAvailabilityZoneGroupResponse :: Int -> ModifyAvailabilityZoneGroupResponse
newModifyAvailabilityZoneGroupResponse Int
pHttpStatus_ =
  ModifyAvailabilityZoneGroupResponse'
    { $sel:return':ModifyAvailabilityZoneGroupResponse' :: Maybe Bool
return' =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ModifyAvailabilityZoneGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Is @true@ if the request succeeds, and an error otherwise.
modifyAvailabilityZoneGroupResponse_return :: Lens.Lens' ModifyAvailabilityZoneGroupResponse (Prelude.Maybe Prelude.Bool)
modifyAvailabilityZoneGroupResponse_return :: Lens' ModifyAvailabilityZoneGroupResponse (Maybe Bool)
modifyAvailabilityZoneGroupResponse_return = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyAvailabilityZoneGroupResponse' {Maybe Bool
return' :: Maybe Bool
$sel:return':ModifyAvailabilityZoneGroupResponse' :: ModifyAvailabilityZoneGroupResponse -> Maybe Bool
return'} -> Maybe Bool
return') (\s :: ModifyAvailabilityZoneGroupResponse
s@ModifyAvailabilityZoneGroupResponse' {} Maybe Bool
a -> ModifyAvailabilityZoneGroupResponse
s {$sel:return':ModifyAvailabilityZoneGroupResponse' :: Maybe Bool
return' = Maybe Bool
a} :: ModifyAvailabilityZoneGroupResponse)

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

instance
  Prelude.NFData
    ModifyAvailabilityZoneGroupResponse
  where
  rnf :: ModifyAvailabilityZoneGroupResponse -> ()
rnf ModifyAvailabilityZoneGroupResponse' {Int
Maybe Bool
httpStatus :: Int
return' :: Maybe Bool
$sel:httpStatus:ModifyAvailabilityZoneGroupResponse' :: ModifyAvailabilityZoneGroupResponse -> Int
$sel:return':ModifyAvailabilityZoneGroupResponse' :: ModifyAvailabilityZoneGroupResponse -> 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