packages feed

amazonka-workmail-2.0: gen/Amazonka/WorkMail/DeleteMobileDeviceAccessRule.hs

{-# 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.WorkMail.DeleteMobileDeviceAccessRule
-- 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 mobile device access rule for the specified WorkMail
-- organization.
--
-- Deleting already deleted and non-existing rules does not produce an
-- error. In those cases, the service sends back an HTTP 200 response with
-- an empty HTTP body.
module Amazonka.WorkMail.DeleteMobileDeviceAccessRule
  ( -- * Creating a Request
    DeleteMobileDeviceAccessRule (..),
    newDeleteMobileDeviceAccessRule,

    -- * Request Lenses
    deleteMobileDeviceAccessRule_organizationId,
    deleteMobileDeviceAccessRule_mobileDeviceAccessRuleId,

    -- * Destructuring the Response
    DeleteMobileDeviceAccessRuleResponse (..),
    newDeleteMobileDeviceAccessRuleResponse,

    -- * Response Lenses
    deleteMobileDeviceAccessRuleResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDeleteMobileDeviceAccessRule' smart constructor.
data DeleteMobileDeviceAccessRule = DeleteMobileDeviceAccessRule'
  { -- | The WorkMail organization under which the rule will be deleted.
    organizationId :: Prelude.Text,
    -- | The identifier of the rule to be deleted.
    mobileDeviceAccessRuleId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteMobileDeviceAccessRule' 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:
--
-- 'organizationId', 'deleteMobileDeviceAccessRule_organizationId' - The WorkMail organization under which the rule will be deleted.
--
-- 'mobileDeviceAccessRuleId', 'deleteMobileDeviceAccessRule_mobileDeviceAccessRuleId' - The identifier of the rule to be deleted.
newDeleteMobileDeviceAccessRule ::
  -- | 'organizationId'
  Prelude.Text ->
  -- | 'mobileDeviceAccessRuleId'
  Prelude.Text ->
  DeleteMobileDeviceAccessRule
newDeleteMobileDeviceAccessRule
  pOrganizationId_
  pMobileDeviceAccessRuleId_ =
    DeleteMobileDeviceAccessRule'
      { organizationId =
          pOrganizationId_,
        mobileDeviceAccessRuleId =
          pMobileDeviceAccessRuleId_
      }

-- | The WorkMail organization under which the rule will be deleted.
deleteMobileDeviceAccessRule_organizationId :: Lens.Lens' DeleteMobileDeviceAccessRule Prelude.Text
deleteMobileDeviceAccessRule_organizationId = Lens.lens (\DeleteMobileDeviceAccessRule' {organizationId} -> organizationId) (\s@DeleteMobileDeviceAccessRule' {} a -> s {organizationId = a} :: DeleteMobileDeviceAccessRule)

-- | The identifier of the rule to be deleted.
deleteMobileDeviceAccessRule_mobileDeviceAccessRuleId :: Lens.Lens' DeleteMobileDeviceAccessRule Prelude.Text
deleteMobileDeviceAccessRule_mobileDeviceAccessRuleId = Lens.lens (\DeleteMobileDeviceAccessRule' {mobileDeviceAccessRuleId} -> mobileDeviceAccessRuleId) (\s@DeleteMobileDeviceAccessRule' {} a -> s {mobileDeviceAccessRuleId = a} :: DeleteMobileDeviceAccessRule)

instance Core.AWSRequest DeleteMobileDeviceAccessRule where
  type
    AWSResponse DeleteMobileDeviceAccessRule =
      DeleteMobileDeviceAccessRuleResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveEmpty
      ( \s h x ->
          DeleteMobileDeviceAccessRuleResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
      )

instance
  Prelude.Hashable
    DeleteMobileDeviceAccessRule
  where
  hashWithSalt _salt DeleteMobileDeviceAccessRule' {..} =
    _salt
      `Prelude.hashWithSalt` organizationId
      `Prelude.hashWithSalt` mobileDeviceAccessRuleId

instance Prelude.NFData DeleteMobileDeviceAccessRule where
  rnf DeleteMobileDeviceAccessRule' {..} =
    Prelude.rnf organizationId
      `Prelude.seq` Prelude.rnf mobileDeviceAccessRuleId

instance Data.ToHeaders DeleteMobileDeviceAccessRule where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "X-Amz-Target"
              Data.=# ( "WorkMailService.DeleteMobileDeviceAccessRule" ::
                          Prelude.ByteString
                      ),
            "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DeleteMobileDeviceAccessRule where
  toJSON DeleteMobileDeviceAccessRule' {..} =
    Data.object
      ( Prelude.catMaybes
          [ Prelude.Just
              ("OrganizationId" Data..= organizationId),
            Prelude.Just
              ( "MobileDeviceAccessRuleId"
                  Data..= mobileDeviceAccessRuleId
              )
          ]
      )

instance Data.ToPath DeleteMobileDeviceAccessRule where
  toPath = Prelude.const "/"

instance Data.ToQuery DeleteMobileDeviceAccessRule where
  toQuery = Prelude.const Prelude.mempty

-- | /See:/ 'newDeleteMobileDeviceAccessRuleResponse' smart constructor.
data DeleteMobileDeviceAccessRuleResponse = DeleteMobileDeviceAccessRuleResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteMobileDeviceAccessRuleResponse' 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:
--
-- 'httpStatus', 'deleteMobileDeviceAccessRuleResponse_httpStatus' - The response's http status code.
newDeleteMobileDeviceAccessRuleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteMobileDeviceAccessRuleResponse
newDeleteMobileDeviceAccessRuleResponse pHttpStatus_ =
  DeleteMobileDeviceAccessRuleResponse'
    { httpStatus =
        pHttpStatus_
    }

-- | The response's http status code.
deleteMobileDeviceAccessRuleResponse_httpStatus :: Lens.Lens' DeleteMobileDeviceAccessRuleResponse Prelude.Int
deleteMobileDeviceAccessRuleResponse_httpStatus = Lens.lens (\DeleteMobileDeviceAccessRuleResponse' {httpStatus} -> httpStatus) (\s@DeleteMobileDeviceAccessRuleResponse' {} a -> s {httpStatus = a} :: DeleteMobileDeviceAccessRuleResponse)

instance
  Prelude.NFData
    DeleteMobileDeviceAccessRuleResponse
  where
  rnf DeleteMobileDeviceAccessRuleResponse' {..} =
    Prelude.rnf httpStatus