packages feed

amazonka-connect-2.0: gen/Amazonka/Connect/DeleteTrafficDistributionGroup.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.Connect.DeleteTrafficDistributionGroup
-- 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 traffic distribution group. This API can be called only in the
-- Region where the traffic distribution group is created.
--
-- For more information about deleting traffic distribution groups, see
-- <https://docs.aws.amazon.com/connect/latest/adminguide/delete-traffic-distribution-groups.html Delete traffic distribution groups>
-- in the /Amazon Connect Administrator Guide/.
module Amazonka.Connect.DeleteTrafficDistributionGroup
  ( -- * Creating a Request
    DeleteTrafficDistributionGroup (..),
    newDeleteTrafficDistributionGroup,

    -- * Request Lenses
    deleteTrafficDistributionGroup_trafficDistributionGroupId,

    -- * Destructuring the Response
    DeleteTrafficDistributionGroupResponse (..),
    newDeleteTrafficDistributionGroupResponse,

    -- * Response Lenses
    deleteTrafficDistributionGroupResponse_httpStatus,
  )
where

import Amazonka.Connect.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:/ 'newDeleteTrafficDistributionGroup' smart constructor.
data DeleteTrafficDistributionGroup = DeleteTrafficDistributionGroup'
  { -- | The identifier of the traffic distribution group. This can be the ID or
    -- the ARN if the API is being called in the Region where the traffic
    -- distribution group was created. The ARN must be provided if the call is
    -- from the replicated Region.
    trafficDistributionGroupId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteTrafficDistributionGroup' 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:
--
-- 'trafficDistributionGroupId', 'deleteTrafficDistributionGroup_trafficDistributionGroupId' - The identifier of the traffic distribution group. This can be the ID or
-- the ARN if the API is being called in the Region where the traffic
-- distribution group was created. The ARN must be provided if the call is
-- from the replicated Region.
newDeleteTrafficDistributionGroup ::
  -- | 'trafficDistributionGroupId'
  Prelude.Text ->
  DeleteTrafficDistributionGroup
newDeleteTrafficDistributionGroup
  pTrafficDistributionGroupId_ =
    DeleteTrafficDistributionGroup'
      { trafficDistributionGroupId =
          pTrafficDistributionGroupId_
      }

-- | The identifier of the traffic distribution group. This can be the ID or
-- the ARN if the API is being called in the Region where the traffic
-- distribution group was created. The ARN must be provided if the call is
-- from the replicated Region.
deleteTrafficDistributionGroup_trafficDistributionGroupId :: Lens.Lens' DeleteTrafficDistributionGroup Prelude.Text
deleteTrafficDistributionGroup_trafficDistributionGroupId = Lens.lens (\DeleteTrafficDistributionGroup' {trafficDistributionGroupId} -> trafficDistributionGroupId) (\s@DeleteTrafficDistributionGroup' {} a -> s {trafficDistributionGroupId = a} :: DeleteTrafficDistributionGroup)

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

instance
  Prelude.Hashable
    DeleteTrafficDistributionGroup
  where
  hashWithSalt
    _salt
    DeleteTrafficDistributionGroup' {..} =
      _salt
        `Prelude.hashWithSalt` trafficDistributionGroupId

instance
  Prelude.NFData
    DeleteTrafficDistributionGroup
  where
  rnf DeleteTrafficDistributionGroup' {..} =
    Prelude.rnf trafficDistributionGroupId

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

instance Data.ToPath DeleteTrafficDistributionGroup where
  toPath DeleteTrafficDistributionGroup' {..} =
    Prelude.mconcat
      [ "/traffic-distribution-group/",
        Data.toBS trafficDistributionGroupId
      ]

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

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

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

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

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