{-# 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.LexV2Models.DeleteResourcePolicyStatement
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deletes a policy statement from a resource policy. If you delete the
-- last statement from a policy, the policy is deleted. If you specify a
-- statement ID that doesn\'t exist in the policy, or if the bot or bot
-- alias doesn\'t have a policy attached, Amazon Lex returns an exception.
module Amazonka.LexV2Models.DeleteResourcePolicyStatement
  ( -- * Creating a Request
    DeleteResourcePolicyStatement (..),
    newDeleteResourcePolicyStatement,

    -- * Request Lenses
    deleteResourcePolicyStatement_expectedRevisionId,
    deleteResourcePolicyStatement_resourceArn,
    deleteResourcePolicyStatement_statementId,

    -- * Destructuring the Response
    DeleteResourcePolicyStatementResponse (..),
    newDeleteResourcePolicyStatementResponse,

    -- * Response Lenses
    deleteResourcePolicyStatementResponse_resourceArn,
    deleteResourcePolicyStatementResponse_revisionId,
    deleteResourcePolicyStatementResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDeleteResourcePolicyStatement' smart constructor.
data DeleteResourcePolicyStatement = DeleteResourcePolicyStatement'
  { -- | The identifier of the revision of the policy to delete the statement
    -- from. If this revision ID doesn\'t match the current revision ID, Amazon
    -- Lex throws an exception.
    --
    -- If you don\'t specify a revision, Amazon Lex removes the current
    -- contents of the statement.
    DeleteResourcePolicyStatement -> Maybe Text
expectedRevisionId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource
    -- policy is attached to.
    DeleteResourcePolicyStatement -> Text
resourceArn :: Prelude.Text,
    -- | The name of the statement (SID) to delete from the policy.
    DeleteResourcePolicyStatement -> Text
statementId :: Prelude.Text
  }
  deriving (DeleteResourcePolicyStatement
-> DeleteResourcePolicyStatement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteResourcePolicyStatement
-> DeleteResourcePolicyStatement -> Bool
$c/= :: DeleteResourcePolicyStatement
-> DeleteResourcePolicyStatement -> Bool
== :: DeleteResourcePolicyStatement
-> DeleteResourcePolicyStatement -> Bool
$c== :: DeleteResourcePolicyStatement
-> DeleteResourcePolicyStatement -> Bool
Prelude.Eq, ReadPrec [DeleteResourcePolicyStatement]
ReadPrec DeleteResourcePolicyStatement
Int -> ReadS DeleteResourcePolicyStatement
ReadS [DeleteResourcePolicyStatement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteResourcePolicyStatement]
$creadListPrec :: ReadPrec [DeleteResourcePolicyStatement]
readPrec :: ReadPrec DeleteResourcePolicyStatement
$creadPrec :: ReadPrec DeleteResourcePolicyStatement
readList :: ReadS [DeleteResourcePolicyStatement]
$creadList :: ReadS [DeleteResourcePolicyStatement]
readsPrec :: Int -> ReadS DeleteResourcePolicyStatement
$creadsPrec :: Int -> ReadS DeleteResourcePolicyStatement
Prelude.Read, Int -> DeleteResourcePolicyStatement -> ShowS
[DeleteResourcePolicyStatement] -> ShowS
DeleteResourcePolicyStatement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteResourcePolicyStatement] -> ShowS
$cshowList :: [DeleteResourcePolicyStatement] -> ShowS
show :: DeleteResourcePolicyStatement -> String
$cshow :: DeleteResourcePolicyStatement -> String
showsPrec :: Int -> DeleteResourcePolicyStatement -> ShowS
$cshowsPrec :: Int -> DeleteResourcePolicyStatement -> ShowS
Prelude.Show, forall x.
Rep DeleteResourcePolicyStatement x
-> DeleteResourcePolicyStatement
forall x.
DeleteResourcePolicyStatement
-> Rep DeleteResourcePolicyStatement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteResourcePolicyStatement x
-> DeleteResourcePolicyStatement
$cfrom :: forall x.
DeleteResourcePolicyStatement
-> Rep DeleteResourcePolicyStatement x
Prelude.Generic)

-- |
-- Create a value of 'DeleteResourcePolicyStatement' 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:
--
-- 'expectedRevisionId', 'deleteResourcePolicyStatement_expectedRevisionId' - The identifier of the revision of the policy to delete the statement
-- from. If this revision ID doesn\'t match the current revision ID, Amazon
-- Lex throws an exception.
--
-- If you don\'t specify a revision, Amazon Lex removes the current
-- contents of the statement.
--
-- 'resourceArn', 'deleteResourcePolicyStatement_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource
-- policy is attached to.
--
-- 'statementId', 'deleteResourcePolicyStatement_statementId' - The name of the statement (SID) to delete from the policy.
newDeleteResourcePolicyStatement ::
  -- | 'resourceArn'
  Prelude.Text ->
  -- | 'statementId'
  Prelude.Text ->
  DeleteResourcePolicyStatement
newDeleteResourcePolicyStatement :: Text -> Text -> DeleteResourcePolicyStatement
newDeleteResourcePolicyStatement
  Text
pResourceArn_
  Text
pStatementId_ =
    DeleteResourcePolicyStatement'
      { $sel:expectedRevisionId:DeleteResourcePolicyStatement' :: Maybe Text
expectedRevisionId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:resourceArn:DeleteResourcePolicyStatement' :: Text
resourceArn = Text
pResourceArn_,
        $sel:statementId:DeleteResourcePolicyStatement' :: Text
statementId = Text
pStatementId_
      }

-- | The identifier of the revision of the policy to delete the statement
-- from. If this revision ID doesn\'t match the current revision ID, Amazon
-- Lex throws an exception.
--
-- If you don\'t specify a revision, Amazon Lex removes the current
-- contents of the statement.
deleteResourcePolicyStatement_expectedRevisionId :: Lens.Lens' DeleteResourcePolicyStatement (Prelude.Maybe Prelude.Text)
deleteResourcePolicyStatement_expectedRevisionId :: Lens' DeleteResourcePolicyStatement (Maybe Text)
deleteResourcePolicyStatement_expectedRevisionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourcePolicyStatement' {Maybe Text
expectedRevisionId :: Maybe Text
$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Maybe Text
expectedRevisionId} -> Maybe Text
expectedRevisionId) (\s :: DeleteResourcePolicyStatement
s@DeleteResourcePolicyStatement' {} Maybe Text
a -> DeleteResourcePolicyStatement
s {$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: Maybe Text
expectedRevisionId = Maybe Text
a} :: DeleteResourcePolicyStatement)

-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource
-- policy is attached to.
deleteResourcePolicyStatement_resourceArn :: Lens.Lens' DeleteResourcePolicyStatement Prelude.Text
deleteResourcePolicyStatement_resourceArn :: Lens' DeleteResourcePolicyStatement Text
deleteResourcePolicyStatement_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourcePolicyStatement' {Text
resourceArn :: Text
$sel:resourceArn:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
resourceArn} -> Text
resourceArn) (\s :: DeleteResourcePolicyStatement
s@DeleteResourcePolicyStatement' {} Text
a -> DeleteResourcePolicyStatement
s {$sel:resourceArn:DeleteResourcePolicyStatement' :: Text
resourceArn = Text
a} :: DeleteResourcePolicyStatement)

-- | The name of the statement (SID) to delete from the policy.
deleteResourcePolicyStatement_statementId :: Lens.Lens' DeleteResourcePolicyStatement Prelude.Text
deleteResourcePolicyStatement_statementId :: Lens' DeleteResourcePolicyStatement Text
deleteResourcePolicyStatement_statementId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourcePolicyStatement' {Text
statementId :: Text
$sel:statementId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
statementId} -> Text
statementId) (\s :: DeleteResourcePolicyStatement
s@DeleteResourcePolicyStatement' {} Text
a -> DeleteResourcePolicyStatement
s {$sel:statementId:DeleteResourcePolicyStatement' :: Text
statementId = Text
a} :: DeleteResourcePolicyStatement)

instance
  Core.AWSRequest
    DeleteResourcePolicyStatement
  where
  type
    AWSResponse DeleteResourcePolicyStatement =
      DeleteResourcePolicyStatementResponse
  request :: (Service -> Service)
-> DeleteResourcePolicyStatement
-> Request DeleteResourcePolicyStatement
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.delete (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DeleteResourcePolicyStatement
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteResourcePolicyStatement)))
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 Text -> Int -> DeleteResourcePolicyStatementResponse
DeleteResourcePolicyStatementResponse'
            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
"resourceArn")
            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
"revisionId")
            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
    DeleteResourcePolicyStatement
  where
  hashWithSalt :: Int -> DeleteResourcePolicyStatement -> Int
hashWithSalt Int
_salt DeleteResourcePolicyStatement' {Maybe Text
Text
statementId :: Text
resourceArn :: Text
expectedRevisionId :: Maybe Text
$sel:statementId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:resourceArn:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedRevisionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
statementId

instance Prelude.NFData DeleteResourcePolicyStatement where
  rnf :: DeleteResourcePolicyStatement -> ()
rnf DeleteResourcePolicyStatement' {Maybe Text
Text
statementId :: Text
resourceArn :: Text
expectedRevisionId :: Maybe Text
$sel:statementId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:resourceArn:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
expectedRevisionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
statementId

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

instance Data.ToPath DeleteResourcePolicyStatement where
  toPath :: DeleteResourcePolicyStatement -> ByteString
toPath DeleteResourcePolicyStatement' {Maybe Text
Text
statementId :: Text
resourceArn :: Text
expectedRevisionId :: Maybe Text
$sel:statementId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:resourceArn:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/policy/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
resourceArn,
        ByteString
"/statements/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
statementId,
        ByteString
"/"
      ]

instance Data.ToQuery DeleteResourcePolicyStatement where
  toQuery :: DeleteResourcePolicyStatement -> QueryString
toQuery DeleteResourcePolicyStatement' {Maybe Text
Text
statementId :: Text
resourceArn :: Text
expectedRevisionId :: Maybe Text
$sel:statementId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:resourceArn:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Text
$sel:expectedRevisionId:DeleteResourcePolicyStatement' :: DeleteResourcePolicyStatement -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"expectedRevisionId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
expectedRevisionId]

-- | /See:/ 'newDeleteResourcePolicyStatementResponse' smart constructor.
data DeleteResourcePolicyStatementResponse = DeleteResourcePolicyStatementResponse'
  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource
    -- policy statement was removed from.
    DeleteResourcePolicyStatementResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | The current revision of the resource policy. Use the revision ID to make
    -- sure that you are updating the most current version of a resource policy
    -- when you add a policy statement to a resource, delete a resource, or
    -- update a resource.
    DeleteResourcePolicyStatementResponse -> Maybe Text
revisionId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DeleteResourcePolicyStatementResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DeleteResourcePolicyStatementResponse
-> DeleteResourcePolicyStatementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteResourcePolicyStatementResponse
-> DeleteResourcePolicyStatementResponse -> Bool
$c/= :: DeleteResourcePolicyStatementResponse
-> DeleteResourcePolicyStatementResponse -> Bool
== :: DeleteResourcePolicyStatementResponse
-> DeleteResourcePolicyStatementResponse -> Bool
$c== :: DeleteResourcePolicyStatementResponse
-> DeleteResourcePolicyStatementResponse -> Bool
Prelude.Eq, ReadPrec [DeleteResourcePolicyStatementResponse]
ReadPrec DeleteResourcePolicyStatementResponse
Int -> ReadS DeleteResourcePolicyStatementResponse
ReadS [DeleteResourcePolicyStatementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteResourcePolicyStatementResponse]
$creadListPrec :: ReadPrec [DeleteResourcePolicyStatementResponse]
readPrec :: ReadPrec DeleteResourcePolicyStatementResponse
$creadPrec :: ReadPrec DeleteResourcePolicyStatementResponse
readList :: ReadS [DeleteResourcePolicyStatementResponse]
$creadList :: ReadS [DeleteResourcePolicyStatementResponse]
readsPrec :: Int -> ReadS DeleteResourcePolicyStatementResponse
$creadsPrec :: Int -> ReadS DeleteResourcePolicyStatementResponse
Prelude.Read, Int -> DeleteResourcePolicyStatementResponse -> ShowS
[DeleteResourcePolicyStatementResponse] -> ShowS
DeleteResourcePolicyStatementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteResourcePolicyStatementResponse] -> ShowS
$cshowList :: [DeleteResourcePolicyStatementResponse] -> ShowS
show :: DeleteResourcePolicyStatementResponse -> String
$cshow :: DeleteResourcePolicyStatementResponse -> String
showsPrec :: Int -> DeleteResourcePolicyStatementResponse -> ShowS
$cshowsPrec :: Int -> DeleteResourcePolicyStatementResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteResourcePolicyStatementResponse x
-> DeleteResourcePolicyStatementResponse
forall x.
DeleteResourcePolicyStatementResponse
-> Rep DeleteResourcePolicyStatementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteResourcePolicyStatementResponse x
-> DeleteResourcePolicyStatementResponse
$cfrom :: forall x.
DeleteResourcePolicyStatementResponse
-> Rep DeleteResourcePolicyStatementResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteResourcePolicyStatementResponse' 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:
--
-- 'resourceArn', 'deleteResourcePolicyStatementResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource
-- policy statement was removed from.
--
-- 'revisionId', 'deleteResourcePolicyStatementResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make
-- sure that you are updating the most current version of a resource policy
-- when you add a policy statement to a resource, delete a resource, or
-- update a resource.
--
-- 'httpStatus', 'deleteResourcePolicyStatementResponse_httpStatus' - The response's http status code.
newDeleteResourcePolicyStatementResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteResourcePolicyStatementResponse
newDeleteResourcePolicyStatementResponse :: Int -> DeleteResourcePolicyStatementResponse
newDeleteResourcePolicyStatementResponse Int
pHttpStatus_ =
  DeleteResourcePolicyStatementResponse'
    { $sel:resourceArn:DeleteResourcePolicyStatementResponse' :: Maybe Text
resourceArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:revisionId:DeleteResourcePolicyStatementResponse' :: Maybe Text
revisionId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DeleteResourcePolicyStatementResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource
-- policy statement was removed from.
deleteResourcePolicyStatementResponse_resourceArn :: Lens.Lens' DeleteResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)
deleteResourcePolicyStatementResponse_resourceArn :: Lens' DeleteResourcePolicyStatementResponse (Maybe Text)
deleteResourcePolicyStatementResponse_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourcePolicyStatementResponse' {Maybe Text
resourceArn :: Maybe Text
$sel:resourceArn:DeleteResourcePolicyStatementResponse' :: DeleteResourcePolicyStatementResponse -> Maybe Text
resourceArn} -> Maybe Text
resourceArn) (\s :: DeleteResourcePolicyStatementResponse
s@DeleteResourcePolicyStatementResponse' {} Maybe Text
a -> DeleteResourcePolicyStatementResponse
s {$sel:resourceArn:DeleteResourcePolicyStatementResponse' :: Maybe Text
resourceArn = Maybe Text
a} :: DeleteResourcePolicyStatementResponse)

-- | The current revision of the resource policy. Use the revision ID to make
-- sure that you are updating the most current version of a resource policy
-- when you add a policy statement to a resource, delete a resource, or
-- update a resource.
deleteResourcePolicyStatementResponse_revisionId :: Lens.Lens' DeleteResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)
deleteResourcePolicyStatementResponse_revisionId :: Lens' DeleteResourcePolicyStatementResponse (Maybe Text)
deleteResourcePolicyStatementResponse_revisionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteResourcePolicyStatementResponse' {Maybe Text
revisionId :: Maybe Text
$sel:revisionId:DeleteResourcePolicyStatementResponse' :: DeleteResourcePolicyStatementResponse -> Maybe Text
revisionId} -> Maybe Text
revisionId) (\s :: DeleteResourcePolicyStatementResponse
s@DeleteResourcePolicyStatementResponse' {} Maybe Text
a -> DeleteResourcePolicyStatementResponse
s {$sel:revisionId:DeleteResourcePolicyStatementResponse' :: Maybe Text
revisionId = Maybe Text
a} :: DeleteResourcePolicyStatementResponse)

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

instance
  Prelude.NFData
    DeleteResourcePolicyStatementResponse
  where
  rnf :: DeleteResourcePolicyStatementResponse -> ()
rnf DeleteResourcePolicyStatementResponse' {Int
Maybe Text
httpStatus :: Int
revisionId :: Maybe Text
resourceArn :: Maybe Text
$sel:httpStatus:DeleteResourcePolicyStatementResponse' :: DeleteResourcePolicyStatementResponse -> Int
$sel:revisionId:DeleteResourcePolicyStatementResponse' :: DeleteResourcePolicyStatementResponse -> Maybe Text
$sel:resourceArn:DeleteResourcePolicyStatementResponse' :: DeleteResourcePolicyStatementResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
revisionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus