packages feed

amazonka-transfer-2.0: gen/Amazonka/Transfer/DeleteAgreement.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.Transfer.DeleteAgreement
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Delete the agreement that\'s specified in the provided @AgreementId@.
module Amazonka.Transfer.DeleteAgreement
  ( -- * Creating a Request
    DeleteAgreement (..),
    newDeleteAgreement,

    -- * Request Lenses
    deleteAgreement_agreementId,
    deleteAgreement_serverId,

    -- * Destructuring the Response
    DeleteAgreementResponse (..),
    newDeleteAgreementResponse,
  )
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.Transfer.Types

-- | /See:/ 'newDeleteAgreement' smart constructor.
data DeleteAgreement = DeleteAgreement'
  { -- | A unique identifier for the agreement. This identifier is returned when
    -- you create an agreement.
    agreementId :: Prelude.Text,
    -- | The server identifier associated with the agreement that you are
    -- deleting.
    serverId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteAgreement' 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:
--
-- 'agreementId', 'deleteAgreement_agreementId' - A unique identifier for the agreement. This identifier is returned when
-- you create an agreement.
--
-- 'serverId', 'deleteAgreement_serverId' - The server identifier associated with the agreement that you are
-- deleting.
newDeleteAgreement ::
  -- | 'agreementId'
  Prelude.Text ->
  -- | 'serverId'
  Prelude.Text ->
  DeleteAgreement
newDeleteAgreement pAgreementId_ pServerId_ =
  DeleteAgreement'
    { agreementId = pAgreementId_,
      serverId = pServerId_
    }

-- | A unique identifier for the agreement. This identifier is returned when
-- you create an agreement.
deleteAgreement_agreementId :: Lens.Lens' DeleteAgreement Prelude.Text
deleteAgreement_agreementId = Lens.lens (\DeleteAgreement' {agreementId} -> agreementId) (\s@DeleteAgreement' {} a -> s {agreementId = a} :: DeleteAgreement)

-- | The server identifier associated with the agreement that you are
-- deleting.
deleteAgreement_serverId :: Lens.Lens' DeleteAgreement Prelude.Text
deleteAgreement_serverId = Lens.lens (\DeleteAgreement' {serverId} -> serverId) (\s@DeleteAgreement' {} a -> s {serverId = a} :: DeleteAgreement)

instance Core.AWSRequest DeleteAgreement where
  type
    AWSResponse DeleteAgreement =
      DeleteAgreementResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveNull DeleteAgreementResponse'

instance Prelude.Hashable DeleteAgreement where
  hashWithSalt _salt DeleteAgreement' {..} =
    _salt
      `Prelude.hashWithSalt` agreementId
      `Prelude.hashWithSalt` serverId

instance Prelude.NFData DeleteAgreement where
  rnf DeleteAgreement' {..} =
    Prelude.rnf agreementId
      `Prelude.seq` Prelude.rnf serverId

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

instance Data.ToJSON DeleteAgreement where
  toJSON DeleteAgreement' {..} =
    Data.object
      ( Prelude.catMaybes
          [ Prelude.Just ("AgreementId" Data..= agreementId),
            Prelude.Just ("ServerId" Data..= serverId)
          ]
      )

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

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

-- | /See:/ 'newDeleteAgreementResponse' smart constructor.
data DeleteAgreementResponse = DeleteAgreementResponse'
  {
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

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

instance Prelude.NFData DeleteAgreementResponse where
  rnf _ = ()