packages feed

amazonka-appflow-2.0: gen/Amazonka/AppFlow/UnregisterConnector.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.AppFlow.UnregisterConnector
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Unregisters the custom connector registered in your account that matches
-- the connector label provided in the request.
module Amazonka.AppFlow.UnregisterConnector
  ( -- * Creating a Request
    UnregisterConnector (..),
    newUnregisterConnector,

    -- * Request Lenses
    unregisterConnector_forceDelete,
    unregisterConnector_connectorLabel,

    -- * Destructuring the Response
    UnregisterConnectorResponse (..),
    newUnregisterConnectorResponse,

    -- * Response Lenses
    unregisterConnectorResponse_httpStatus,
  )
where

import Amazonka.AppFlow.Types
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

-- | /See:/ 'newUnregisterConnector' smart constructor.
data UnregisterConnector = UnregisterConnector'
  { -- | Indicates whether Amazon AppFlow should unregister the connector, even
    -- if it is currently in use in one or more connector profiles. The default
    -- value is false.
    forceDelete :: Prelude.Maybe Prelude.Bool,
    -- | The label of the connector. The label is unique for each
    -- @ConnectorRegistration@ in your Amazon Web Services account.
    connectorLabel :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'UnregisterConnector' 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:
--
-- 'forceDelete', 'unregisterConnector_forceDelete' - Indicates whether Amazon AppFlow should unregister the connector, even
-- if it is currently in use in one or more connector profiles. The default
-- value is false.
--
-- 'connectorLabel', 'unregisterConnector_connectorLabel' - The label of the connector. The label is unique for each
-- @ConnectorRegistration@ in your Amazon Web Services account.
newUnregisterConnector ::
  -- | 'connectorLabel'
  Prelude.Text ->
  UnregisterConnector
newUnregisterConnector pConnectorLabel_ =
  UnregisterConnector'
    { forceDelete = Prelude.Nothing,
      connectorLabel = pConnectorLabel_
    }

-- | Indicates whether Amazon AppFlow should unregister the connector, even
-- if it is currently in use in one or more connector profiles. The default
-- value is false.
unregisterConnector_forceDelete :: Lens.Lens' UnregisterConnector (Prelude.Maybe Prelude.Bool)
unregisterConnector_forceDelete = Lens.lens (\UnregisterConnector' {forceDelete} -> forceDelete) (\s@UnregisterConnector' {} a -> s {forceDelete = a} :: UnregisterConnector)

-- | The label of the connector. The label is unique for each
-- @ConnectorRegistration@ in your Amazon Web Services account.
unregisterConnector_connectorLabel :: Lens.Lens' UnregisterConnector Prelude.Text
unregisterConnector_connectorLabel = Lens.lens (\UnregisterConnector' {connectorLabel} -> connectorLabel) (\s@UnregisterConnector' {} a -> s {connectorLabel = a} :: UnregisterConnector)

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

instance Prelude.Hashable UnregisterConnector where
  hashWithSalt _salt UnregisterConnector' {..} =
    _salt
      `Prelude.hashWithSalt` forceDelete
      `Prelude.hashWithSalt` connectorLabel

instance Prelude.NFData UnregisterConnector where
  rnf UnregisterConnector' {..} =
    Prelude.rnf forceDelete
      `Prelude.seq` Prelude.rnf connectorLabel

instance Data.ToHeaders UnregisterConnector where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UnregisterConnector where
  toJSON UnregisterConnector' {..} =
    Data.object
      ( Prelude.catMaybes
          [ ("forceDelete" Data..=) Prelude.<$> forceDelete,
            Prelude.Just
              ("connectorLabel" Data..= connectorLabel)
          ]
      )

instance Data.ToPath UnregisterConnector where
  toPath = Prelude.const "/unregister-connector"

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

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

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

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

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