amazonka-chime-2.0: gen/Amazonka/Chime/TagAttendee.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.Chime.TagAttendee
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Applies the specified tags to the specified Amazon Chime SDK attendee.
module Amazonka.Chime.TagAttendee
( -- * Creating a Request
TagAttendee (..),
newTagAttendee,
-- * Request Lenses
tagAttendee_meetingId,
tagAttendee_attendeeId,
tagAttendee_tags,
-- * Destructuring the Response
TagAttendeeResponse (..),
newTagAttendeeResponse,
)
where
import Amazonka.Chime.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:/ 'newTagAttendee' smart constructor.
data TagAttendee = TagAttendee'
{ -- | The Amazon Chime SDK meeting ID.
meetingId :: Prelude.Text,
-- | The Amazon Chime SDK attendee ID.
attendeeId :: Prelude.Text,
-- | The tag key-value pairs.
tags :: Prelude.NonEmpty Tag
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TagAttendee' 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:
--
-- 'meetingId', 'tagAttendee_meetingId' - The Amazon Chime SDK meeting ID.
--
-- 'attendeeId', 'tagAttendee_attendeeId' - The Amazon Chime SDK attendee ID.
--
-- 'tags', 'tagAttendee_tags' - The tag key-value pairs.
newTagAttendee ::
-- | 'meetingId'
Prelude.Text ->
-- | 'attendeeId'
Prelude.Text ->
-- | 'tags'
Prelude.NonEmpty Tag ->
TagAttendee
newTagAttendee pMeetingId_ pAttendeeId_ pTags_ =
TagAttendee'
{ meetingId = pMeetingId_,
attendeeId = pAttendeeId_,
tags = Lens.coerced Lens.# pTags_
}
-- | The Amazon Chime SDK meeting ID.
tagAttendee_meetingId :: Lens.Lens' TagAttendee Prelude.Text
tagAttendee_meetingId = Lens.lens (\TagAttendee' {meetingId} -> meetingId) (\s@TagAttendee' {} a -> s {meetingId = a} :: TagAttendee)
-- | The Amazon Chime SDK attendee ID.
tagAttendee_attendeeId :: Lens.Lens' TagAttendee Prelude.Text
tagAttendee_attendeeId = Lens.lens (\TagAttendee' {attendeeId} -> attendeeId) (\s@TagAttendee' {} a -> s {attendeeId = a} :: TagAttendee)
-- | The tag key-value pairs.
tagAttendee_tags :: Lens.Lens' TagAttendee (Prelude.NonEmpty Tag)
tagAttendee_tags = Lens.lens (\TagAttendee' {tags} -> tags) (\s@TagAttendee' {} a -> s {tags = a} :: TagAttendee) Prelude.. Lens.coerced
instance Core.AWSRequest TagAttendee where
type AWSResponse TagAttendee = TagAttendeeResponse
request overrides =
Request.postJSON (overrides defaultService)
response = Response.receiveNull TagAttendeeResponse'
instance Prelude.Hashable TagAttendee where
hashWithSalt _salt TagAttendee' {..} =
_salt
`Prelude.hashWithSalt` meetingId
`Prelude.hashWithSalt` attendeeId
`Prelude.hashWithSalt` tags
instance Prelude.NFData TagAttendee where
rnf TagAttendee' {..} =
Prelude.rnf meetingId
`Prelude.seq` Prelude.rnf attendeeId
`Prelude.seq` Prelude.rnf tags
instance Data.ToHeaders TagAttendee where
toHeaders = Prelude.const Prelude.mempty
instance Data.ToJSON TagAttendee where
toJSON TagAttendee' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("Tags" Data..= tags)]
)
instance Data.ToPath TagAttendee where
toPath TagAttendee' {..} =
Prelude.mconcat
[ "/meetings/",
Data.toBS meetingId,
"/attendees/",
Data.toBS attendeeId,
"/tags"
]
instance Data.ToQuery TagAttendee where
toQuery =
Prelude.const (Prelude.mconcat ["operation=add"])
-- | /See:/ 'newTagAttendeeResponse' smart constructor.
data TagAttendeeResponse = TagAttendeeResponse'
{
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TagAttendeeResponse' 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.
newTagAttendeeResponse ::
TagAttendeeResponse
newTagAttendeeResponse = TagAttendeeResponse'
instance Prelude.NFData TagAttendeeResponse where
rnf _ = ()