{-# 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.ModifyVerifiedAccessGroupPolicy
-- 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 the specified Verified Access group policy.
module Amazonka.EC2.ModifyVerifiedAccessGroupPolicy
  ( -- * Creating a Request
    ModifyVerifiedAccessGroupPolicy (..),
    newModifyVerifiedAccessGroupPolicy,

    -- * Request Lenses
    modifyVerifiedAccessGroupPolicy_clientToken,
    modifyVerifiedAccessGroupPolicy_dryRun,
    modifyVerifiedAccessGroupPolicy_policyDocument,
    modifyVerifiedAccessGroupPolicy_verifiedAccessGroupId,
    modifyVerifiedAccessGroupPolicy_policyEnabled,

    -- * Destructuring the Response
    ModifyVerifiedAccessGroupPolicyResponse (..),
    newModifyVerifiedAccessGroupPolicyResponse,

    -- * Response Lenses
    modifyVerifiedAccessGroupPolicyResponse_policyDocument,
    modifyVerifiedAccessGroupPolicyResponse_policyEnabled,
    modifyVerifiedAccessGroupPolicyResponse_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:/ 'newModifyVerifiedAccessGroupPolicy' smart constructor.
data ModifyVerifiedAccessGroupPolicy = ModifyVerifiedAccessGroupPolicy'
  { -- | A unique, case-sensitive token that you provide to ensure idempotency of
    -- your modification request. For more information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
    ModifyVerifiedAccessGroupPolicy -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | 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@.
    ModifyVerifiedAccessGroupPolicy -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The Amazon Web Services Verified Access policy document.
    ModifyVerifiedAccessGroupPolicy -> Maybe Text
policyDocument :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon Web Services Verified Access group.
    ModifyVerifiedAccessGroupPolicy -> Text
verifiedAccessGroupId :: Prelude.Text,
    -- | The status of the Verified Access policy.
    ModifyVerifiedAccessGroupPolicy -> Bool
policyEnabled :: Prelude.Bool
  }
  deriving (ModifyVerifiedAccessGroupPolicy
-> ModifyVerifiedAccessGroupPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyVerifiedAccessGroupPolicy
-> ModifyVerifiedAccessGroupPolicy -> Bool
$c/= :: ModifyVerifiedAccessGroupPolicy
-> ModifyVerifiedAccessGroupPolicy -> Bool
== :: ModifyVerifiedAccessGroupPolicy
-> ModifyVerifiedAccessGroupPolicy -> Bool
$c== :: ModifyVerifiedAccessGroupPolicy
-> ModifyVerifiedAccessGroupPolicy -> Bool
Prelude.Eq, ReadPrec [ModifyVerifiedAccessGroupPolicy]
ReadPrec ModifyVerifiedAccessGroupPolicy
Int -> ReadS ModifyVerifiedAccessGroupPolicy
ReadS [ModifyVerifiedAccessGroupPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyVerifiedAccessGroupPolicy]
$creadListPrec :: ReadPrec [ModifyVerifiedAccessGroupPolicy]
readPrec :: ReadPrec ModifyVerifiedAccessGroupPolicy
$creadPrec :: ReadPrec ModifyVerifiedAccessGroupPolicy
readList :: ReadS [ModifyVerifiedAccessGroupPolicy]
$creadList :: ReadS [ModifyVerifiedAccessGroupPolicy]
readsPrec :: Int -> ReadS ModifyVerifiedAccessGroupPolicy
$creadsPrec :: Int -> ReadS ModifyVerifiedAccessGroupPolicy
Prelude.Read, Int -> ModifyVerifiedAccessGroupPolicy -> ShowS
[ModifyVerifiedAccessGroupPolicy] -> ShowS
ModifyVerifiedAccessGroupPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyVerifiedAccessGroupPolicy] -> ShowS
$cshowList :: [ModifyVerifiedAccessGroupPolicy] -> ShowS
show :: ModifyVerifiedAccessGroupPolicy -> String
$cshow :: ModifyVerifiedAccessGroupPolicy -> String
showsPrec :: Int -> ModifyVerifiedAccessGroupPolicy -> ShowS
$cshowsPrec :: Int -> ModifyVerifiedAccessGroupPolicy -> ShowS
Prelude.Show, forall x.
Rep ModifyVerifiedAccessGroupPolicy x
-> ModifyVerifiedAccessGroupPolicy
forall x.
ModifyVerifiedAccessGroupPolicy
-> Rep ModifyVerifiedAccessGroupPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyVerifiedAccessGroupPolicy x
-> ModifyVerifiedAccessGroupPolicy
$cfrom :: forall x.
ModifyVerifiedAccessGroupPolicy
-> Rep ModifyVerifiedAccessGroupPolicy x
Prelude.Generic)

-- |
-- Create a value of 'ModifyVerifiedAccessGroupPolicy' 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:
--
-- 'clientToken', 'modifyVerifiedAccessGroupPolicy_clientToken' - A unique, case-sensitive token that you provide to ensure idempotency of
-- your modification request. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
--
-- 'dryRun', 'modifyVerifiedAccessGroupPolicy_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@.
--
-- 'policyDocument', 'modifyVerifiedAccessGroupPolicy_policyDocument' - The Amazon Web Services Verified Access policy document.
--
-- 'verifiedAccessGroupId', 'modifyVerifiedAccessGroupPolicy_verifiedAccessGroupId' - The ID of the Amazon Web Services Verified Access group.
--
-- 'policyEnabled', 'modifyVerifiedAccessGroupPolicy_policyEnabled' - The status of the Verified Access policy.
newModifyVerifiedAccessGroupPolicy ::
  -- | 'verifiedAccessGroupId'
  Prelude.Text ->
  -- | 'policyEnabled'
  Prelude.Bool ->
  ModifyVerifiedAccessGroupPolicy
newModifyVerifiedAccessGroupPolicy :: Text -> Bool -> ModifyVerifiedAccessGroupPolicy
newModifyVerifiedAccessGroupPolicy
  Text
pVerifiedAccessGroupId_
  Bool
pPolicyEnabled_ =
    ModifyVerifiedAccessGroupPolicy'
      { $sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: Maybe Text
clientToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:dryRun:ModifyVerifiedAccessGroupPolicy' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
        $sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: Maybe Text
policyDocument = forall a. Maybe a
Prelude.Nothing,
        $sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: Text
verifiedAccessGroupId =
          Text
pVerifiedAccessGroupId_,
        $sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: Bool
policyEnabled = Bool
pPolicyEnabled_
      }

-- | A unique, case-sensitive token that you provide to ensure idempotency of
-- your modification request. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
modifyVerifiedAccessGroupPolicy_clientToken :: Lens.Lens' ModifyVerifiedAccessGroupPolicy (Prelude.Maybe Prelude.Text)
modifyVerifiedAccessGroupPolicy_clientToken :: Lens' ModifyVerifiedAccessGroupPolicy (Maybe Text)
modifyVerifiedAccessGroupPolicy_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicy' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: ModifyVerifiedAccessGroupPolicy
s@ModifyVerifiedAccessGroupPolicy' {} Maybe Text
a -> ModifyVerifiedAccessGroupPolicy
s {$sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: Maybe Text
clientToken = Maybe Text
a} :: ModifyVerifiedAccessGroupPolicy)

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

-- | The Amazon Web Services Verified Access policy document.
modifyVerifiedAccessGroupPolicy_policyDocument :: Lens.Lens' ModifyVerifiedAccessGroupPolicy (Prelude.Maybe Prelude.Text)
modifyVerifiedAccessGroupPolicy_policyDocument :: Lens' ModifyVerifiedAccessGroupPolicy (Maybe Text)
modifyVerifiedAccessGroupPolicy_policyDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicy' {Maybe Text
policyDocument :: Maybe Text
$sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
policyDocument} -> Maybe Text
policyDocument) (\s :: ModifyVerifiedAccessGroupPolicy
s@ModifyVerifiedAccessGroupPolicy' {} Maybe Text
a -> ModifyVerifiedAccessGroupPolicy
s {$sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: Maybe Text
policyDocument = Maybe Text
a} :: ModifyVerifiedAccessGroupPolicy)

-- | The ID of the Amazon Web Services Verified Access group.
modifyVerifiedAccessGroupPolicy_verifiedAccessGroupId :: Lens.Lens' ModifyVerifiedAccessGroupPolicy Prelude.Text
modifyVerifiedAccessGroupPolicy_verifiedAccessGroupId :: Lens' ModifyVerifiedAccessGroupPolicy Text
modifyVerifiedAccessGroupPolicy_verifiedAccessGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicy' {Text
verifiedAccessGroupId :: Text
$sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Text
verifiedAccessGroupId} -> Text
verifiedAccessGroupId) (\s :: ModifyVerifiedAccessGroupPolicy
s@ModifyVerifiedAccessGroupPolicy' {} Text
a -> ModifyVerifiedAccessGroupPolicy
s {$sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: Text
verifiedAccessGroupId = Text
a} :: ModifyVerifiedAccessGroupPolicy)

-- | The status of the Verified Access policy.
modifyVerifiedAccessGroupPolicy_policyEnabled :: Lens.Lens' ModifyVerifiedAccessGroupPolicy Prelude.Bool
modifyVerifiedAccessGroupPolicy_policyEnabled :: Lens' ModifyVerifiedAccessGroupPolicy Bool
modifyVerifiedAccessGroupPolicy_policyEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicy' {Bool
policyEnabled :: Bool
$sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Bool
policyEnabled} -> Bool
policyEnabled) (\s :: ModifyVerifiedAccessGroupPolicy
s@ModifyVerifiedAccessGroupPolicy' {} Bool
a -> ModifyVerifiedAccessGroupPolicy
s {$sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: Bool
policyEnabled = Bool
a} :: ModifyVerifiedAccessGroupPolicy)

instance
  Core.AWSRequest
    ModifyVerifiedAccessGroupPolicy
  where
  type
    AWSResponse ModifyVerifiedAccessGroupPolicy =
      ModifyVerifiedAccessGroupPolicyResponse
  request :: (Service -> Service)
-> ModifyVerifiedAccessGroupPolicy
-> Request ModifyVerifiedAccessGroupPolicy
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 ModifyVerifiedAccessGroupPolicy
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ModifyVerifiedAccessGroupPolicy)))
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 Text
-> Maybe Bool -> Int -> ModifyVerifiedAccessGroupPolicyResponse
ModifyVerifiedAccessGroupPolicyResponse'
            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
"policyDocument")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"policyEnabled")
            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
    ModifyVerifiedAccessGroupPolicy
  where
  hashWithSalt :: Int -> ModifyVerifiedAccessGroupPolicy -> Int
hashWithSalt
    Int
_salt
    ModifyVerifiedAccessGroupPolicy' {Bool
Maybe Bool
Maybe Text
Text
policyEnabled :: Bool
verifiedAccessGroupId :: Text
policyDocument :: Maybe Text
dryRun :: Maybe Bool
clientToken :: Maybe Text
$sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Bool
$sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Text
$sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
$sel:dryRun:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Bool
$sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
policyDocument
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
verifiedAccessGroupId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
policyEnabled

instance
  Prelude.NFData
    ModifyVerifiedAccessGroupPolicy
  where
  rnf :: ModifyVerifiedAccessGroupPolicy -> ()
rnf ModifyVerifiedAccessGroupPolicy' {Bool
Maybe Bool
Maybe Text
Text
policyEnabled :: Bool
verifiedAccessGroupId :: Text
policyDocument :: Maybe Text
dryRun :: Maybe Bool
clientToken :: Maybe Text
$sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Bool
$sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Text
$sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
$sel:dryRun:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Bool
$sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
policyDocument
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
verifiedAccessGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
policyEnabled

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

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

instance Data.ToQuery ModifyVerifiedAccessGroupPolicy where
  toQuery :: ModifyVerifiedAccessGroupPolicy -> QueryString
toQuery ModifyVerifiedAccessGroupPolicy' {Bool
Maybe Bool
Maybe Text
Text
policyEnabled :: Bool
verifiedAccessGroupId :: Text
policyDocument :: Maybe Text
dryRun :: Maybe Bool
clientToken :: Maybe Text
$sel:policyEnabled:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Bool
$sel:verifiedAccessGroupId:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Text
$sel:policyDocument:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
$sel:dryRun:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Bool
$sel:clientToken:ModifyVerifiedAccessGroupPolicy' :: ModifyVerifiedAccessGroupPolicy -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"ModifyVerifiedAccessGroupPolicy" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"ClientToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
clientToken,
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"PolicyDocument" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
policyDocument,
        ByteString
"VerifiedAccessGroupId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
verifiedAccessGroupId,
        ByteString
"PolicyEnabled" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Bool
policyEnabled
      ]

-- | /See:/ 'newModifyVerifiedAccessGroupPolicyResponse' smart constructor.
data ModifyVerifiedAccessGroupPolicyResponse = ModifyVerifiedAccessGroupPolicyResponse'
  { -- | The Amazon Web Services Verified Access policy document.
    ModifyVerifiedAccessGroupPolicyResponse -> Maybe Text
policyDocument :: Prelude.Maybe Prelude.Text,
    -- | The status of the Verified Access policy.
    ModifyVerifiedAccessGroupPolicyResponse -> Maybe Bool
policyEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The response's http status code.
    ModifyVerifiedAccessGroupPolicyResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ModifyVerifiedAccessGroupPolicyResponse
-> ModifyVerifiedAccessGroupPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyVerifiedAccessGroupPolicyResponse
-> ModifyVerifiedAccessGroupPolicyResponse -> Bool
$c/= :: ModifyVerifiedAccessGroupPolicyResponse
-> ModifyVerifiedAccessGroupPolicyResponse -> Bool
== :: ModifyVerifiedAccessGroupPolicyResponse
-> ModifyVerifiedAccessGroupPolicyResponse -> Bool
$c== :: ModifyVerifiedAccessGroupPolicyResponse
-> ModifyVerifiedAccessGroupPolicyResponse -> Bool
Prelude.Eq, ReadPrec [ModifyVerifiedAccessGroupPolicyResponse]
ReadPrec ModifyVerifiedAccessGroupPolicyResponse
Int -> ReadS ModifyVerifiedAccessGroupPolicyResponse
ReadS [ModifyVerifiedAccessGroupPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyVerifiedAccessGroupPolicyResponse]
$creadListPrec :: ReadPrec [ModifyVerifiedAccessGroupPolicyResponse]
readPrec :: ReadPrec ModifyVerifiedAccessGroupPolicyResponse
$creadPrec :: ReadPrec ModifyVerifiedAccessGroupPolicyResponse
readList :: ReadS [ModifyVerifiedAccessGroupPolicyResponse]
$creadList :: ReadS [ModifyVerifiedAccessGroupPolicyResponse]
readsPrec :: Int -> ReadS ModifyVerifiedAccessGroupPolicyResponse
$creadsPrec :: Int -> ReadS ModifyVerifiedAccessGroupPolicyResponse
Prelude.Read, Int -> ModifyVerifiedAccessGroupPolicyResponse -> ShowS
[ModifyVerifiedAccessGroupPolicyResponse] -> ShowS
ModifyVerifiedAccessGroupPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyVerifiedAccessGroupPolicyResponse] -> ShowS
$cshowList :: [ModifyVerifiedAccessGroupPolicyResponse] -> ShowS
show :: ModifyVerifiedAccessGroupPolicyResponse -> String
$cshow :: ModifyVerifiedAccessGroupPolicyResponse -> String
showsPrec :: Int -> ModifyVerifiedAccessGroupPolicyResponse -> ShowS
$cshowsPrec :: Int -> ModifyVerifiedAccessGroupPolicyResponse -> ShowS
Prelude.Show, forall x.
Rep ModifyVerifiedAccessGroupPolicyResponse x
-> ModifyVerifiedAccessGroupPolicyResponse
forall x.
ModifyVerifiedAccessGroupPolicyResponse
-> Rep ModifyVerifiedAccessGroupPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyVerifiedAccessGroupPolicyResponse x
-> ModifyVerifiedAccessGroupPolicyResponse
$cfrom :: forall x.
ModifyVerifiedAccessGroupPolicyResponse
-> Rep ModifyVerifiedAccessGroupPolicyResponse x
Prelude.Generic)

-- |
-- Create a value of 'ModifyVerifiedAccessGroupPolicyResponse' 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:
--
-- 'policyDocument', 'modifyVerifiedAccessGroupPolicyResponse_policyDocument' - The Amazon Web Services Verified Access policy document.
--
-- 'policyEnabled', 'modifyVerifiedAccessGroupPolicyResponse_policyEnabled' - The status of the Verified Access policy.
--
-- 'httpStatus', 'modifyVerifiedAccessGroupPolicyResponse_httpStatus' - The response's http status code.
newModifyVerifiedAccessGroupPolicyResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyVerifiedAccessGroupPolicyResponse
newModifyVerifiedAccessGroupPolicyResponse :: Int -> ModifyVerifiedAccessGroupPolicyResponse
newModifyVerifiedAccessGroupPolicyResponse
  Int
pHttpStatus_ =
    ModifyVerifiedAccessGroupPolicyResponse'
      { $sel:policyDocument:ModifyVerifiedAccessGroupPolicyResponse' :: Maybe Text
policyDocument =
          forall a. Maybe a
Prelude.Nothing,
        $sel:policyEnabled:ModifyVerifiedAccessGroupPolicyResponse' :: Maybe Bool
policyEnabled = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ModifyVerifiedAccessGroupPolicyResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The Amazon Web Services Verified Access policy document.
modifyVerifiedAccessGroupPolicyResponse_policyDocument :: Lens.Lens' ModifyVerifiedAccessGroupPolicyResponse (Prelude.Maybe Prelude.Text)
modifyVerifiedAccessGroupPolicyResponse_policyDocument :: Lens' ModifyVerifiedAccessGroupPolicyResponse (Maybe Text)
modifyVerifiedAccessGroupPolicyResponse_policyDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicyResponse' {Maybe Text
policyDocument :: Maybe Text
$sel:policyDocument:ModifyVerifiedAccessGroupPolicyResponse' :: ModifyVerifiedAccessGroupPolicyResponse -> Maybe Text
policyDocument} -> Maybe Text
policyDocument) (\s :: ModifyVerifiedAccessGroupPolicyResponse
s@ModifyVerifiedAccessGroupPolicyResponse' {} Maybe Text
a -> ModifyVerifiedAccessGroupPolicyResponse
s {$sel:policyDocument:ModifyVerifiedAccessGroupPolicyResponse' :: Maybe Text
policyDocument = Maybe Text
a} :: ModifyVerifiedAccessGroupPolicyResponse)

-- | The status of the Verified Access policy.
modifyVerifiedAccessGroupPolicyResponse_policyEnabled :: Lens.Lens' ModifyVerifiedAccessGroupPolicyResponse (Prelude.Maybe Prelude.Bool)
modifyVerifiedAccessGroupPolicyResponse_policyEnabled :: Lens' ModifyVerifiedAccessGroupPolicyResponse (Maybe Bool)
modifyVerifiedAccessGroupPolicyResponse_policyEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyVerifiedAccessGroupPolicyResponse' {Maybe Bool
policyEnabled :: Maybe Bool
$sel:policyEnabled:ModifyVerifiedAccessGroupPolicyResponse' :: ModifyVerifiedAccessGroupPolicyResponse -> Maybe Bool
policyEnabled} -> Maybe Bool
policyEnabled) (\s :: ModifyVerifiedAccessGroupPolicyResponse
s@ModifyVerifiedAccessGroupPolicyResponse' {} Maybe Bool
a -> ModifyVerifiedAccessGroupPolicyResponse
s {$sel:policyEnabled:ModifyVerifiedAccessGroupPolicyResponse' :: Maybe Bool
policyEnabled = Maybe Bool
a} :: ModifyVerifiedAccessGroupPolicyResponse)

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

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