{-# 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 #-}
module Amazonka.IoT.DeleteAccountAuditConfiguration
  ( 
    DeleteAccountAuditConfiguration (..),
    newDeleteAccountAuditConfiguration,
    
    deleteAccountAuditConfiguration_deleteScheduledAudits,
    
    DeleteAccountAuditConfigurationResponse (..),
    newDeleteAccountAuditConfigurationResponse,
    
    deleteAccountAuditConfigurationResponse_httpStatus,
  )
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DeleteAccountAuditConfiguration = DeleteAccountAuditConfiguration'
  { 
    DeleteAccountAuditConfiguration -> Maybe Bool
deleteScheduledAudits :: Prelude.Maybe Prelude.Bool
  }
  deriving (DeleteAccountAuditConfiguration
-> DeleteAccountAuditConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteAccountAuditConfiguration
-> DeleteAccountAuditConfiguration -> Bool
$c/= :: DeleteAccountAuditConfiguration
-> DeleteAccountAuditConfiguration -> Bool
== :: DeleteAccountAuditConfiguration
-> DeleteAccountAuditConfiguration -> Bool
$c== :: DeleteAccountAuditConfiguration
-> DeleteAccountAuditConfiguration -> Bool
Prelude.Eq, ReadPrec [DeleteAccountAuditConfiguration]
ReadPrec DeleteAccountAuditConfiguration
Int -> ReadS DeleteAccountAuditConfiguration
ReadS [DeleteAccountAuditConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteAccountAuditConfiguration]
$creadListPrec :: ReadPrec [DeleteAccountAuditConfiguration]
readPrec :: ReadPrec DeleteAccountAuditConfiguration
$creadPrec :: ReadPrec DeleteAccountAuditConfiguration
readList :: ReadS [DeleteAccountAuditConfiguration]
$creadList :: ReadS [DeleteAccountAuditConfiguration]
readsPrec :: Int -> ReadS DeleteAccountAuditConfiguration
$creadsPrec :: Int -> ReadS DeleteAccountAuditConfiguration
Prelude.Read, Int -> DeleteAccountAuditConfiguration -> ShowS
[DeleteAccountAuditConfiguration] -> ShowS
DeleteAccountAuditConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteAccountAuditConfiguration] -> ShowS
$cshowList :: [DeleteAccountAuditConfiguration] -> ShowS
show :: DeleteAccountAuditConfiguration -> String
$cshow :: DeleteAccountAuditConfiguration -> String
showsPrec :: Int -> DeleteAccountAuditConfiguration -> ShowS
$cshowsPrec :: Int -> DeleteAccountAuditConfiguration -> ShowS
Prelude.Show, forall x.
Rep DeleteAccountAuditConfiguration x
-> DeleteAccountAuditConfiguration
forall x.
DeleteAccountAuditConfiguration
-> Rep DeleteAccountAuditConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteAccountAuditConfiguration x
-> DeleteAccountAuditConfiguration
$cfrom :: forall x.
DeleteAccountAuditConfiguration
-> Rep DeleteAccountAuditConfiguration x
Prelude.Generic)
newDeleteAccountAuditConfiguration ::
  DeleteAccountAuditConfiguration
newDeleteAccountAuditConfiguration :: DeleteAccountAuditConfiguration
newDeleteAccountAuditConfiguration =
  DeleteAccountAuditConfiguration'
    { $sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: Maybe Bool
deleteScheduledAudits =
        forall a. Maybe a
Prelude.Nothing
    }
deleteAccountAuditConfiguration_deleteScheduledAudits :: Lens.Lens' DeleteAccountAuditConfiguration (Prelude.Maybe Prelude.Bool)
deleteAccountAuditConfiguration_deleteScheduledAudits :: Lens' DeleteAccountAuditConfiguration (Maybe Bool)
deleteAccountAuditConfiguration_deleteScheduledAudits = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteAccountAuditConfiguration' {Maybe Bool
deleteScheduledAudits :: Maybe Bool
$sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: DeleteAccountAuditConfiguration -> Maybe Bool
deleteScheduledAudits} -> Maybe Bool
deleteScheduledAudits) (\s :: DeleteAccountAuditConfiguration
s@DeleteAccountAuditConfiguration' {} Maybe Bool
a -> DeleteAccountAuditConfiguration
s {$sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: Maybe Bool
deleteScheduledAudits = Maybe Bool
a} :: DeleteAccountAuditConfiguration)
instance
  Core.AWSRequest
    DeleteAccountAuditConfiguration
  where
  type
    AWSResponse DeleteAccountAuditConfiguration =
      DeleteAccountAuditConfigurationResponse
  request :: (Service -> Service)
-> DeleteAccountAuditConfiguration
-> Request DeleteAccountAuditConfiguration
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 DeleteAccountAuditConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DeleteAccountAuditConfiguration)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
      ( \Int
s ResponseHeaders
h ()
x ->
          Int -> DeleteAccountAuditConfigurationResponse
DeleteAccountAuditConfigurationResponse'
            forall (f :: * -> *) a b. Functor 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
    DeleteAccountAuditConfiguration
  where
  hashWithSalt :: Int -> DeleteAccountAuditConfiguration -> Int
hashWithSalt
    Int
_salt
    DeleteAccountAuditConfiguration' {Maybe Bool
deleteScheduledAudits :: Maybe Bool
$sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: DeleteAccountAuditConfiguration -> Maybe Bool
..} =
      Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
deleteScheduledAudits
instance
  Prelude.NFData
    DeleteAccountAuditConfiguration
  where
  rnf :: DeleteAccountAuditConfiguration -> ()
rnf DeleteAccountAuditConfiguration' {Maybe Bool
deleteScheduledAudits :: Maybe Bool
$sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: DeleteAccountAuditConfiguration -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
deleteScheduledAudits
instance
  Data.ToHeaders
    DeleteAccountAuditConfiguration
  where
  toHeaders :: DeleteAccountAuditConfiguration -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DeleteAccountAuditConfiguration where
  toPath :: DeleteAccountAuditConfiguration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/audit/configuration"
instance Data.ToQuery DeleteAccountAuditConfiguration where
  toQuery :: DeleteAccountAuditConfiguration -> QueryString
toQuery DeleteAccountAuditConfiguration' {Maybe Bool
deleteScheduledAudits :: Maybe Bool
$sel:deleteScheduledAudits:DeleteAccountAuditConfiguration' :: DeleteAccountAuditConfiguration -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"deleteScheduledAudits"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
deleteScheduledAudits
      ]
data DeleteAccountAuditConfigurationResponse = DeleteAccountAuditConfigurationResponse'
  { 
    DeleteAccountAuditConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DeleteAccountAuditConfigurationResponse
-> DeleteAccountAuditConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteAccountAuditConfigurationResponse
-> DeleteAccountAuditConfigurationResponse -> Bool
$c/= :: DeleteAccountAuditConfigurationResponse
-> DeleteAccountAuditConfigurationResponse -> Bool
== :: DeleteAccountAuditConfigurationResponse
-> DeleteAccountAuditConfigurationResponse -> Bool
$c== :: DeleteAccountAuditConfigurationResponse
-> DeleteAccountAuditConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [DeleteAccountAuditConfigurationResponse]
ReadPrec DeleteAccountAuditConfigurationResponse
Int -> ReadS DeleteAccountAuditConfigurationResponse
ReadS [DeleteAccountAuditConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteAccountAuditConfigurationResponse]
$creadListPrec :: ReadPrec [DeleteAccountAuditConfigurationResponse]
readPrec :: ReadPrec DeleteAccountAuditConfigurationResponse
$creadPrec :: ReadPrec DeleteAccountAuditConfigurationResponse
readList :: ReadS [DeleteAccountAuditConfigurationResponse]
$creadList :: ReadS [DeleteAccountAuditConfigurationResponse]
readsPrec :: Int -> ReadS DeleteAccountAuditConfigurationResponse
$creadsPrec :: Int -> ReadS DeleteAccountAuditConfigurationResponse
Prelude.Read, Int -> DeleteAccountAuditConfigurationResponse -> ShowS
[DeleteAccountAuditConfigurationResponse] -> ShowS
DeleteAccountAuditConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteAccountAuditConfigurationResponse] -> ShowS
$cshowList :: [DeleteAccountAuditConfigurationResponse] -> ShowS
show :: DeleteAccountAuditConfigurationResponse -> String
$cshow :: DeleteAccountAuditConfigurationResponse -> String
showsPrec :: Int -> DeleteAccountAuditConfigurationResponse -> ShowS
$cshowsPrec :: Int -> DeleteAccountAuditConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteAccountAuditConfigurationResponse x
-> DeleteAccountAuditConfigurationResponse
forall x.
DeleteAccountAuditConfigurationResponse
-> Rep DeleteAccountAuditConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteAccountAuditConfigurationResponse x
-> DeleteAccountAuditConfigurationResponse
$cfrom :: forall x.
DeleteAccountAuditConfigurationResponse
-> Rep DeleteAccountAuditConfigurationResponse x
Prelude.Generic)
newDeleteAccountAuditConfigurationResponse ::
  
  Prelude.Int ->
  DeleteAccountAuditConfigurationResponse
newDeleteAccountAuditConfigurationResponse :: Int -> DeleteAccountAuditConfigurationResponse
newDeleteAccountAuditConfigurationResponse
  Int
pHttpStatus_ =
    DeleteAccountAuditConfigurationResponse'
      { $sel:httpStatus:DeleteAccountAuditConfigurationResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }
deleteAccountAuditConfigurationResponse_httpStatus :: Lens.Lens' DeleteAccountAuditConfigurationResponse Prelude.Int
deleteAccountAuditConfigurationResponse_httpStatus :: Lens' DeleteAccountAuditConfigurationResponse Int
deleteAccountAuditConfigurationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteAccountAuditConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteAccountAuditConfigurationResponse' :: DeleteAccountAuditConfigurationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteAccountAuditConfigurationResponse
s@DeleteAccountAuditConfigurationResponse' {} Int
a -> DeleteAccountAuditConfigurationResponse
s {$sel:httpStatus:DeleteAccountAuditConfigurationResponse' :: Int
httpStatus = Int
a} :: DeleteAccountAuditConfigurationResponse)
instance
  Prelude.NFData
    DeleteAccountAuditConfigurationResponse
  where
  rnf :: DeleteAccountAuditConfigurationResponse -> ()
rnf DeleteAccountAuditConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteAccountAuditConfigurationResponse' :: DeleteAccountAuditConfigurationResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus