{-# 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.IAM.DeleteAccountPasswordPolicy
-- 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 the password policy for the Amazon Web Services account. There
-- are no parameters.
module Amazonka.IAM.DeleteAccountPasswordPolicy
  ( -- * Creating a Request
    DeleteAccountPasswordPolicy (..),
    newDeleteAccountPasswordPolicy,

    -- * Destructuring the Response
    DeleteAccountPasswordPolicyResponse (..),
    newDeleteAccountPasswordPolicyResponse,
  )
where

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

-- | /See:/ 'newDeleteAccountPasswordPolicy' smart constructor.
data DeleteAccountPasswordPolicy = DeleteAccountPasswordPolicy'
  {
  }
  deriving (DeleteAccountPasswordPolicy -> DeleteAccountPasswordPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteAccountPasswordPolicy -> DeleteAccountPasswordPolicy -> Bool
$c/= :: DeleteAccountPasswordPolicy -> DeleteAccountPasswordPolicy -> Bool
== :: DeleteAccountPasswordPolicy -> DeleteAccountPasswordPolicy -> Bool
$c== :: DeleteAccountPasswordPolicy -> DeleteAccountPasswordPolicy -> Bool
Prelude.Eq, ReadPrec [DeleteAccountPasswordPolicy]
ReadPrec DeleteAccountPasswordPolicy
Int -> ReadS DeleteAccountPasswordPolicy
ReadS [DeleteAccountPasswordPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteAccountPasswordPolicy]
$creadListPrec :: ReadPrec [DeleteAccountPasswordPolicy]
readPrec :: ReadPrec DeleteAccountPasswordPolicy
$creadPrec :: ReadPrec DeleteAccountPasswordPolicy
readList :: ReadS [DeleteAccountPasswordPolicy]
$creadList :: ReadS [DeleteAccountPasswordPolicy]
readsPrec :: Int -> ReadS DeleteAccountPasswordPolicy
$creadsPrec :: Int -> ReadS DeleteAccountPasswordPolicy
Prelude.Read, Int -> DeleteAccountPasswordPolicy -> ShowS
[DeleteAccountPasswordPolicy] -> ShowS
DeleteAccountPasswordPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteAccountPasswordPolicy] -> ShowS
$cshowList :: [DeleteAccountPasswordPolicy] -> ShowS
show :: DeleteAccountPasswordPolicy -> String
$cshow :: DeleteAccountPasswordPolicy -> String
showsPrec :: Int -> DeleteAccountPasswordPolicy -> ShowS
$cshowsPrec :: Int -> DeleteAccountPasswordPolicy -> ShowS
Prelude.Show, forall x.
Rep DeleteAccountPasswordPolicy x -> DeleteAccountPasswordPolicy
forall x.
DeleteAccountPasswordPolicy -> Rep DeleteAccountPasswordPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteAccountPasswordPolicy x -> DeleteAccountPasswordPolicy
$cfrom :: forall x.
DeleteAccountPasswordPolicy -> Rep DeleteAccountPasswordPolicy x
Prelude.Generic)

-- |
-- Create a value of 'DeleteAccountPasswordPolicy' 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.
newDeleteAccountPasswordPolicy ::
  DeleteAccountPasswordPolicy
newDeleteAccountPasswordPolicy :: DeleteAccountPasswordPolicy
newDeleteAccountPasswordPolicy =
  DeleteAccountPasswordPolicy
DeleteAccountPasswordPolicy'

instance Core.AWSRequest DeleteAccountPasswordPolicy where
  type
    AWSResponse DeleteAccountPasswordPolicy =
      DeleteAccountPasswordPolicyResponse
  request :: (Service -> Service)
-> DeleteAccountPasswordPolicy
-> Request DeleteAccountPasswordPolicy
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 DeleteAccountPasswordPolicy
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteAccountPasswordPolicy)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
      DeleteAccountPasswordPolicyResponse
DeleteAccountPasswordPolicyResponse'

instance Prelude.Hashable DeleteAccountPasswordPolicy where
  hashWithSalt :: Int -> DeleteAccountPasswordPolicy -> Int
hashWithSalt Int
_salt DeleteAccountPasswordPolicy
_ =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ()

instance Prelude.NFData DeleteAccountPasswordPolicy where
  rnf :: DeleteAccountPasswordPolicy -> ()
rnf DeleteAccountPasswordPolicy
_ = ()

instance Data.ToHeaders DeleteAccountPasswordPolicy where
  toHeaders :: DeleteAccountPasswordPolicy -> [Header]
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

instance Data.ToQuery DeleteAccountPasswordPolicy where
  toQuery :: DeleteAccountPasswordPolicy -> QueryString
toQuery =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ ByteString
"Action"
              forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"DeleteAccountPasswordPolicy" ::
                          Prelude.ByteString
                      ),
            ByteString
"Version"
              forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-05-08" :: Prelude.ByteString)
          ]
      )

-- | /See:/ 'newDeleteAccountPasswordPolicyResponse' smart constructor.
data DeleteAccountPasswordPolicyResponse = DeleteAccountPasswordPolicyResponse'
  {
  }
  deriving (DeleteAccountPasswordPolicyResponse
-> DeleteAccountPasswordPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteAccountPasswordPolicyResponse
-> DeleteAccountPasswordPolicyResponse -> Bool
$c/= :: DeleteAccountPasswordPolicyResponse
-> DeleteAccountPasswordPolicyResponse -> Bool
== :: DeleteAccountPasswordPolicyResponse
-> DeleteAccountPasswordPolicyResponse -> Bool
$c== :: DeleteAccountPasswordPolicyResponse
-> DeleteAccountPasswordPolicyResponse -> Bool
Prelude.Eq, ReadPrec [DeleteAccountPasswordPolicyResponse]
ReadPrec DeleteAccountPasswordPolicyResponse
Int -> ReadS DeleteAccountPasswordPolicyResponse
ReadS [DeleteAccountPasswordPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteAccountPasswordPolicyResponse]
$creadListPrec :: ReadPrec [DeleteAccountPasswordPolicyResponse]
readPrec :: ReadPrec DeleteAccountPasswordPolicyResponse
$creadPrec :: ReadPrec DeleteAccountPasswordPolicyResponse
readList :: ReadS [DeleteAccountPasswordPolicyResponse]
$creadList :: ReadS [DeleteAccountPasswordPolicyResponse]
readsPrec :: Int -> ReadS DeleteAccountPasswordPolicyResponse
$creadsPrec :: Int -> ReadS DeleteAccountPasswordPolicyResponse
Prelude.Read, Int -> DeleteAccountPasswordPolicyResponse -> ShowS
[DeleteAccountPasswordPolicyResponse] -> ShowS
DeleteAccountPasswordPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteAccountPasswordPolicyResponse] -> ShowS
$cshowList :: [DeleteAccountPasswordPolicyResponse] -> ShowS
show :: DeleteAccountPasswordPolicyResponse -> String
$cshow :: DeleteAccountPasswordPolicyResponse -> String
showsPrec :: Int -> DeleteAccountPasswordPolicyResponse -> ShowS
$cshowsPrec :: Int -> DeleteAccountPasswordPolicyResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteAccountPasswordPolicyResponse x
-> DeleteAccountPasswordPolicyResponse
forall x.
DeleteAccountPasswordPolicyResponse
-> Rep DeleteAccountPasswordPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteAccountPasswordPolicyResponse x
-> DeleteAccountPasswordPolicyResponse
$cfrom :: forall x.
DeleteAccountPasswordPolicyResponse
-> Rep DeleteAccountPasswordPolicyResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteAccountPasswordPolicyResponse' 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.
newDeleteAccountPasswordPolicyResponse ::
  DeleteAccountPasswordPolicyResponse
newDeleteAccountPasswordPolicyResponse :: DeleteAccountPasswordPolicyResponse
newDeleteAccountPasswordPolicyResponse =
  DeleteAccountPasswordPolicyResponse
DeleteAccountPasswordPolicyResponse'

instance
  Prelude.NFData
    DeleteAccountPasswordPolicyResponse
  where
  rnf :: DeleteAccountPasswordPolicyResponse -> ()
rnf DeleteAccountPasswordPolicyResponse
_ = ()