packages feed

amazonka-workspaces-2.0: gen/Amazonka/WorkSpaces/UpdateConnectClientAddIn.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.WorkSpaces.UpdateConnectClientAddIn
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a Amazon Connect client add-in. Use this action to update the
-- name and endpoint URL of a Amazon Connect client add-in.
module Amazonka.WorkSpaces.UpdateConnectClientAddIn
  ( -- * Creating a Request
    UpdateConnectClientAddIn (..),
    newUpdateConnectClientAddIn,

    -- * Request Lenses
    updateConnectClientAddIn_name,
    updateConnectClientAddIn_url,
    updateConnectClientAddIn_addInId,
    updateConnectClientAddIn_resourceId,

    -- * Destructuring the Response
    UpdateConnectClientAddInResponse (..),
    newUpdateConnectClientAddInResponse,

    -- * Response Lenses
    updateConnectClientAddInResponse_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.WorkSpaces.Types

-- | /See:/ 'newUpdateConnectClientAddIn' smart constructor.
data UpdateConnectClientAddIn = UpdateConnectClientAddIn'
  { -- | The name of the client add-in.
    name :: Prelude.Maybe Prelude.Text,
    -- | The endpoint URL of the Amazon Connect client add-in.
    url :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the client add-in to update.
    addInId :: Prelude.Text,
    -- | The directory identifier for which the client add-in is configured.
    resourceId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'UpdateConnectClientAddIn' 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:
--
-- 'name', 'updateConnectClientAddIn_name' - The name of the client add-in.
--
-- 'url', 'updateConnectClientAddIn_url' - The endpoint URL of the Amazon Connect client add-in.
--
-- 'addInId', 'updateConnectClientAddIn_addInId' - The identifier of the client add-in to update.
--
-- 'resourceId', 'updateConnectClientAddIn_resourceId' - The directory identifier for which the client add-in is configured.
newUpdateConnectClientAddIn ::
  -- | 'addInId'
  Prelude.Text ->
  -- | 'resourceId'
  Prelude.Text ->
  UpdateConnectClientAddIn
newUpdateConnectClientAddIn pAddInId_ pResourceId_ =
  UpdateConnectClientAddIn'
    { name = Prelude.Nothing,
      url = Prelude.Nothing,
      addInId = pAddInId_,
      resourceId = pResourceId_
    }

-- | The name of the client add-in.
updateConnectClientAddIn_name :: Lens.Lens' UpdateConnectClientAddIn (Prelude.Maybe Prelude.Text)
updateConnectClientAddIn_name = Lens.lens (\UpdateConnectClientAddIn' {name} -> name) (\s@UpdateConnectClientAddIn' {} a -> s {name = a} :: UpdateConnectClientAddIn)

-- | The endpoint URL of the Amazon Connect client add-in.
updateConnectClientAddIn_url :: Lens.Lens' UpdateConnectClientAddIn (Prelude.Maybe Prelude.Text)
updateConnectClientAddIn_url = Lens.lens (\UpdateConnectClientAddIn' {url} -> url) (\s@UpdateConnectClientAddIn' {} a -> s {url = a} :: UpdateConnectClientAddIn)

-- | The identifier of the client add-in to update.
updateConnectClientAddIn_addInId :: Lens.Lens' UpdateConnectClientAddIn Prelude.Text
updateConnectClientAddIn_addInId = Lens.lens (\UpdateConnectClientAddIn' {addInId} -> addInId) (\s@UpdateConnectClientAddIn' {} a -> s {addInId = a} :: UpdateConnectClientAddIn)

-- | The directory identifier for which the client add-in is configured.
updateConnectClientAddIn_resourceId :: Lens.Lens' UpdateConnectClientAddIn Prelude.Text
updateConnectClientAddIn_resourceId = Lens.lens (\UpdateConnectClientAddIn' {resourceId} -> resourceId) (\s@UpdateConnectClientAddIn' {} a -> s {resourceId = a} :: UpdateConnectClientAddIn)

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

instance Prelude.Hashable UpdateConnectClientAddIn where
  hashWithSalt _salt UpdateConnectClientAddIn' {..} =
    _salt
      `Prelude.hashWithSalt` name
      `Prelude.hashWithSalt` url
      `Prelude.hashWithSalt` addInId
      `Prelude.hashWithSalt` resourceId

instance Prelude.NFData UpdateConnectClientAddIn where
  rnf UpdateConnectClientAddIn' {..} =
    Prelude.rnf name
      `Prelude.seq` Prelude.rnf url
      `Prelude.seq` Prelude.rnf addInId
      `Prelude.seq` Prelude.rnf resourceId

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

instance Data.ToJSON UpdateConnectClientAddIn where
  toJSON UpdateConnectClientAddIn' {..} =
    Data.object
      ( Prelude.catMaybes
          [ ("Name" Data..=) Prelude.<$> name,
            ("URL" Data..=) Prelude.<$> url,
            Prelude.Just ("AddInId" Data..= addInId),
            Prelude.Just ("ResourceId" Data..= resourceId)
          ]
      )

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

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

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

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

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

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