packages feed

amazonka-wellarchitected-2.0: gen/Amazonka/WellArchitected/DeleteWorkloadShare.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.WellArchitected.DeleteWorkloadShare
-- 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 a workload share.
module Amazonka.WellArchitected.DeleteWorkloadShare
  ( -- * Creating a Request
    DeleteWorkloadShare (..),
    newDeleteWorkloadShare,

    -- * Request Lenses
    deleteWorkloadShare_shareId,
    deleteWorkloadShare_workloadId,
    deleteWorkloadShare_clientRequestToken,

    -- * Destructuring the Response
    DeleteWorkloadShareResponse (..),
    newDeleteWorkloadShareResponse,
  )
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.WellArchitected.Types

-- | Input for Delete Workload Share
--
-- /See:/ 'newDeleteWorkloadShare' smart constructor.
data DeleteWorkloadShare = DeleteWorkloadShare'
  { shareId :: Prelude.Text,
    workloadId :: Prelude.Text,
    clientRequestToken :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteWorkloadShare' 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:
--
-- 'shareId', 'deleteWorkloadShare_shareId' - Undocumented member.
--
-- 'workloadId', 'deleteWorkloadShare_workloadId' - Undocumented member.
--
-- 'clientRequestToken', 'deleteWorkloadShare_clientRequestToken' - Undocumented member.
newDeleteWorkloadShare ::
  -- | 'shareId'
  Prelude.Text ->
  -- | 'workloadId'
  Prelude.Text ->
  -- | 'clientRequestToken'
  Prelude.Text ->
  DeleteWorkloadShare
newDeleteWorkloadShare
  pShareId_
  pWorkloadId_
  pClientRequestToken_ =
    DeleteWorkloadShare'
      { shareId = pShareId_,
        workloadId = pWorkloadId_,
        clientRequestToken = pClientRequestToken_
      }

-- | Undocumented member.
deleteWorkloadShare_shareId :: Lens.Lens' DeleteWorkloadShare Prelude.Text
deleteWorkloadShare_shareId = Lens.lens (\DeleteWorkloadShare' {shareId} -> shareId) (\s@DeleteWorkloadShare' {} a -> s {shareId = a} :: DeleteWorkloadShare)

-- | Undocumented member.
deleteWorkloadShare_workloadId :: Lens.Lens' DeleteWorkloadShare Prelude.Text
deleteWorkloadShare_workloadId = Lens.lens (\DeleteWorkloadShare' {workloadId} -> workloadId) (\s@DeleteWorkloadShare' {} a -> s {workloadId = a} :: DeleteWorkloadShare)

-- | Undocumented member.
deleteWorkloadShare_clientRequestToken :: Lens.Lens' DeleteWorkloadShare Prelude.Text
deleteWorkloadShare_clientRequestToken = Lens.lens (\DeleteWorkloadShare' {clientRequestToken} -> clientRequestToken) (\s@DeleteWorkloadShare' {} a -> s {clientRequestToken = a} :: DeleteWorkloadShare)

instance Core.AWSRequest DeleteWorkloadShare where
  type
    AWSResponse DeleteWorkloadShare =
      DeleteWorkloadShareResponse
  request overrides =
    Request.delete (overrides defaultService)
  response =
    Response.receiveNull DeleteWorkloadShareResponse'

instance Prelude.Hashable DeleteWorkloadShare where
  hashWithSalt _salt DeleteWorkloadShare' {..} =
    _salt
      `Prelude.hashWithSalt` shareId
      `Prelude.hashWithSalt` workloadId
      `Prelude.hashWithSalt` clientRequestToken

instance Prelude.NFData DeleteWorkloadShare where
  rnf DeleteWorkloadShare' {..} =
    Prelude.rnf shareId
      `Prelude.seq` Prelude.rnf workloadId
      `Prelude.seq` Prelude.rnf clientRequestToken

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

instance Data.ToPath DeleteWorkloadShare where
  toPath DeleteWorkloadShare' {..} =
    Prelude.mconcat
      [ "/workloads/",
        Data.toBS workloadId,
        "/shares/",
        Data.toBS shareId
      ]

instance Data.ToQuery DeleteWorkloadShare where
  toQuery DeleteWorkloadShare' {..} =
    Prelude.mconcat
      ["ClientRequestToken" Data.=: clientRequestToken]

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

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

instance Prelude.NFData DeleteWorkloadShareResponse where
  rnf _ = ()