-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A Haskell bindings for Webex Teams API
--
-- Please see the README on Github at
-- https://github.com/nshimaza/webex-teams-api#readme
@package webex-teams-api
@version 0.2.0.1
-- | Implements some internal functions for Cisco Webex Teams API.
module Network.WebexTeams.Internal
-- | Drop given number of characters from the given String then
-- change first character of the remaining string to lowercase. This
-- function is intended to be used for fieldLabelModifier and
-- constructorTagModifier argument of DeriveJSON from
-- DATA.Aeson.TH. You can find how this function is used in
-- WebexTeams source code.
dropAndLow :: Int -> String -> String
-- | Parsed Link header parameter. Convert only rel param to Rel and
-- keeps other params as-is.
data LinkParam
Rel :: LinkParam
Other :: ByteString -> LinkParam
-- | Parsed entire Link header value. It keeps URI-Reference part untouched
-- for farther processing in different way.
data LinkHeader
LinkHeader :: ByteString -> [(LinkParam, ByteString)] -> LinkHeader
[linkHeaderUrl] :: LinkHeader -> ByteString
[linkHeaderParams] :: LinkHeader -> [(LinkParam, ByteString)]
-- | Matches to double quote.
dQuote :: Parser Word8
-- | Matches to semicolon.
semicolon :: Parser Word8
-- | Matches to equal character.
equalChar :: Parser Word8
-- | Matches to less-than character.
lessThan :: Parser Word8
-- | Matches to greater-than character.
greaterThan :: Parser Word8
-- | Skips white spaces.
skipSpace :: Parser ()
-- | Parse RFC7230 token.
token :: Parser ByteString
-- | Parse RFC7230 quoted-pair.
quotedPair :: Parser Word8
-- | Parse RFC7230 quoted-string.
quotedString :: Parser ByteString
-- | Parse a parameter value in Link header.
paramValue :: Parser ByteString
-- | Convert parameter name string to LinkParam.
paramName :: ByteString -> LinkParam
-- | Parse parameter part of Link header.
param :: Parser (LinkParam, ByteString)
-- | Attoparsec parser of RFC5988 HTTP Link Header. Link header is defined
-- in RFC5988 https://tools.ietf.org/html/rfc5988. This parser
-- doesn't parse complete spec of RFC5988 but only parses rel="next" link
-- for simple pagination. It doesn't parse obs-fold defined in RFC7230
-- https://tools.ietf.org/html/rfc7230. It assumes Header in
-- Response never contains CRLF or LF.
linkHeader :: Parser LinkHeader
-- | Accept all RFC5988 Link HTTP header, filter first header containing
-- rel="next" param, parse URL part.
extractNextUrl :: [ByteString] -> [ByteString]
-- | Return URL for next page if it exists in given response.
getNextUrl :: Response a -> Maybe ByteString
-- | Validate extracted URL from HTTP Link Header by getNextUrl.
-- Check if it has same scheme and URI authority as original request.
validateUrl :: String -> URIAuth -> ByteString -> Maybe ByteString
instance GHC.Show.Show Network.WebexTeams.Internal.LinkHeader
instance GHC.Classes.Eq Network.WebexTeams.Internal.LinkHeader
instance GHC.Show.Show Network.WebexTeams.Internal.LinkParam
instance GHC.Classes.Eq Network.WebexTeams.Internal.LinkParam
-- | Deprecated: Use Network.WebexTeams.Internal
module Network.CiscoSpark.Internal
-- | This module defines most of types and records used in webex-teams-api
-- package. Records used for REST communications are designed to be
-- converted from / to JSON using Aeson package. Those records are also
-- designed to allow create lenses by Control.Lens.TH.makeFields.
--
-- Following example creates overloaded accessors for Person,
-- Room and Team.
--
--
-- makeFields ''Person
-- makeFields ''Room
-- makeFields ''Team
--
--
-- You can access personId, roomId and teamId via
-- overloaded accessor function id like this.
--
--
-- let yourPersonId = yourPerson ^. id
-- yourRoomId = yourRoom ^. id
-- yourTeamId = yourTeam ^. id
--
--
-- This package doesn't pre-generate those lenses for you because it is
-- so easy. Please create them by yourself as needed.
module Network.WebexTeams.Types
-- | URL path for people API.
peoplePath :: ByteString
-- | URL path for rooms API.
roomsPath :: ByteString
-- | URL path for memberships API.
membershipsPath :: ByteString
-- | URL path for messages API.
messagesPath :: ByteString
-- | URL path for teams API.
teamsPath :: ByteString
-- | URL path for team memberships API.
teamMembershipsPath :: ByteString
-- | URL path for organizations API.
organizationsPath :: ByteString
-- | URL path for licenes API.
licensesPath :: ByteString
-- | URL path for roles API.
rolesPath :: ByteString
-- | URL path for webhooks API.
webhooksPath :: ByteString
-- | WebexTeamsListItem is a type class grouping types with following
-- common usage.
--
--
-- - It is used for return value of get-detail APIs.
-- - It is used for element of return value of list APIs.
--
--
-- WebexTeamsListItem also associates the above type to wrapping list
-- type (e.g. associates Person to PersonList). Wrapping
-- type (PersonList in this case) is necessary for parsing JSON from REST
-- API but what we are interested in is bare list such like [Person].
-- Type family association defined in this class is used for type
-- translation from type of items to type of wrapper.
class FromJSON (ToList i) => WebexTeamsListItem i where {
-- | Associate item type to wrapping list type.
type family ToList i :: *;
}
-- | Get bare list from wrapped type which can be parsed directly from
-- JSON.
unwrap :: WebexTeamsListItem i => ToList i -> [i]
-- | Type class for getting URL path of API category from given type of
-- value.
class WebexTeamsApiPath a
apiPath :: WebexTeamsApiPath a => a -> ByteString
-- | Type family to associate a type appears in an argument to response
-- type.
class FromJSON (ToResponse a) => WebexTeamsResponse a where {
-- | Associate response type to input parameter type such as filter
-- criteria, entity key or create / update parameters.
type family ToResponse a :: *;
}
-- | Extract containing entity ID string from given type of value.
class (WebexTeamsApiPath a, WebexTeamsResponse a) => WebexTeamsDetail a
toIdStr :: WebexTeamsDetail a => a -> Text
-- | Convert given filter condition parameter in a concrete type to HTTP
-- query strings.
class (WebexTeamsApiPath a, WebexTeamsResponse a) => WebexTeamsFilter a
toFilterList :: WebexTeamsFilter a => a -> [(ByteString, Maybe ByteString)]
-- | Type class for parameter type for create entity API.
class (WebexTeamsApiPath a, WebexTeamsResponse a, ToJSON a) => WebexTeamsCreate a
-- | Type class for parameter type for update entity API.
class (WebexTeamsApiPath a, WebexTeamsResponse a, ToJSON a) => WebexTeamsUpdate a
-- | Type representing timestamp. For now, it is just copied from API
-- response JSON.
newtype Timestamp
Timestamp :: Text -> Timestamp
-- | Error code for element level error potentially contained in List API
-- responses.
newtype ErrorCode
ErrorCode :: Text -> ErrorCode
-- | ErrorTitle represent concrete error code and reason. It appears
-- in Errors.
data ErrorTitle
ErrorTitle :: ErrorCode -> Text -> ErrorTitle
-- | Error code of element level error in List API response.
[errorTitleCode] :: ErrorTitle -> ErrorCode
-- | Reason explanation of the error.
[errorTitleReason] :: ErrorTitle -> Text
-- | Errors is used for element level error in List API. When list
-- API failed to retrieve an element, it returns this object for the
-- element and response API status as successful instead of failing
-- entire API request.
--
-- Refer to API Document for more detail.
newtype Errors
Errors :: ErrorTitle -> Errors
[errorsTitle] :: Errors -> ErrorTitle
-- | Identifying Person describing detail of Webex Teams user or
-- bot.
newtype PersonId
PersonId :: Text -> PersonId
-- | Email address of user.
newtype Email
Email :: Text -> Email
-- | Display name of user.
newtype DisplayName
DisplayName :: Text -> DisplayName
-- | Nickname of user.
newtype NickName
NickName :: Text -> NickName
-- | First name of user.
newtype FirstName
FirstName :: Text -> FirstName
-- | Last name of user.
newtype LastName
LastName :: Text -> LastName
-- | URL pointing to image file of Avatar.
newtype AvatarUrl
AvatarUrl :: Text -> AvatarUrl
-- | Organization identifier which user or team belongs to.
newtype OrganizationId
OrganizationId :: Text -> OrganizationId
-- | Role identifier which can be assigned to user. See Role
-- too.
newtype RoleId
RoleId :: Text -> RoleId
-- | License identifier which can be enabled on user. See
-- License too.
newtype LicenseId
LicenseId :: Text -> LicenseId
-- | Timezone in timezone name.
newtype Timezone
Timezone :: Text -> Timezone
-- | Current status of Person. It can be updated automatically by
-- recent activity or explicitly updated by user's operation or
-- propagated from vacation setting on email system.
data PersonStatus
-- | The Person is currently active. Decoded from "active".
PersonStatusActive :: PersonStatus
-- | The Person is currently not active. Decoded from "inactive".
PersonStatusInactive :: PersonStatus
-- | Email system of the Person currently sets vacation. Decoded
-- from "OutOfOffice".
PersonStatusOutOfOffice :: PersonStatus
-- | The Person is explicitly indicated do-not-disturb. Decoded from
-- "DoNotDisturb".
PersonStatusDoNotDisturb :: PersonStatus
-- | The status of the Person is unknown. Decoded from "unknown".
PersonStatusUnknown :: PersonStatus
-- | PersonType indicates whether the Person is real human or bot.
data PersonType
-- | The Person is a real human. Decoded from "person".
PersonTypePerson :: PersonType
-- | The Person is a bot. Decoded from "bot".
PersonTypeBot :: PersonType
-- | Person is detail description of Webex Teams user or bot. Person
-- is decoded from response JSON of Get Person Details REST call. It is
-- also element type of response of List People call.
data Person
Person :: PersonId -> Maybe Errors -> Maybe [Email] -> Maybe DisplayName -> Maybe NickName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> Maybe Timestamp -> Maybe Timezone -> Maybe Timestamp -> Maybe PersonStatus -> Maybe Bool -> Maybe Bool -> Maybe PersonType -> Person
-- | Identifier of the Person.
[personId] :: Person -> PersonId
-- | Element level error possibly contained in List API response.
[personErrors] :: Person -> Maybe Errors
-- | List of email addresses which the Person has.
[personEmails] :: Person -> Maybe [Email]
-- | Display name of the Person.
[personDisplayName] :: Person -> Maybe DisplayName
-- | Nickname of the Person.
[personNickName] :: Person -> Maybe NickName
-- | First name of the Person.
[personFirstName] :: Person -> Maybe FirstName
-- | Last name of the Person.
[personLastName] :: Person -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[personAvatar] :: Person -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[personOrgId] :: Person -> Maybe OrganizationId
-- | List of roles assigned to the Person.
[personRoles] :: Person -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[personLicenses] :: Person -> Maybe [LicenseId]
-- | Timestamp when the Person was created.
[personCreated] :: Person -> Maybe Timestamp
-- | Timezone of the Person.
[personTimezone] :: Person -> Maybe Timezone
-- | Timestamp of the latest activity of the Person.
[personLastActivity] :: Person -> Maybe Timestamp
-- | Current status of the Person
[personStatus] :: Person -> Maybe PersonStatus
-- | True if invitation for the Person is pending.
[personInvitePending] :: Person -> Maybe Bool
-- | True if login of the Person is enabled.
[personLoginEnabled] :: Person -> Maybe Bool
-- | Indicating if the Person is real human or bot.
[personType] :: Person -> Maybe PersonType
-- | PersonList is decoded from response JSON of List People REST
-- call. It is list of Person.
newtype PersonList
PersonList :: [Person] -> PersonList
[personListItems] :: PersonList -> [Person]
-- | Optional query strings for people list API.
data PersonFilter
PersonFilter :: Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> PersonFilter
-- | Find person who has given email address.
[personFilterEmail] :: PersonFilter -> Maybe Email
-- | Find person who has given display name.
[personFilterDisplayName] :: PersonFilter -> Maybe DisplayName
-- | Find person who belongs to given organization.
[personFilterOrgId] :: PersonFilter -> Maybe OrganizationId
-- | CreatePerson is encoded to request body JSON of Create a Person
-- REST call.
data CreatePerson
CreatePerson :: Maybe [Email] -> Maybe DisplayName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> CreatePerson
-- | List of email addresses which the Person has.
[createPersonEmails] :: CreatePerson -> Maybe [Email]
-- | Display name of the Person.
[createPersonDisplayName] :: CreatePerson -> Maybe DisplayName
-- | First name of the Person.
[createPersonFirstName] :: CreatePerson -> Maybe FirstName
-- | Last name of the Person.
[createPersonLastName] :: CreatePerson -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[createPersonAvatar] :: CreatePerson -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[createPersonOrgId] :: CreatePerson -> Maybe OrganizationId
-- | List of roles assigned to the person.
[createPersonRoles] :: CreatePerson -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[createPersonLicenses] :: CreatePerson -> Maybe [LicenseId]
-- | UpdatePerson is encoded to request body JSON of Update a Person
-- REST call.
data UpdatePerson
UpdatePerson :: Maybe DisplayName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> UpdatePerson
-- | Display name of the Person.
[updatePersonDisplayName] :: UpdatePerson -> Maybe DisplayName
-- | First name of the Person.
[updatePersonFirstName] :: UpdatePerson -> Maybe FirstName
-- | Last name of the Person.
[updatePersonLastName] :: UpdatePerson -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[updatePersonAvatar] :: UpdatePerson -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[updatePersonOrgId] :: UpdatePerson -> Maybe OrganizationId
-- | List of roles assigned to the person.
[updatePersonRoles] :: UpdatePerson -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[updatePersonLicenses] :: UpdatePerson -> Maybe [LicenseId]
-- | Identifying Team.
newtype TeamId
TeamId :: Text -> TeamId
-- | Name of Team
newtype TeamName
TeamName :: Text -> TeamName
-- | Team is group of Person and group of Room. A
-- Person can belong to multiple Team but a Room can belong to at most
-- one Team. Team is decoded from response JSON of Get Team Details REST
-- call. It is also element type of response of List Teams call.
data Team
Team :: TeamId -> Maybe Errors -> Maybe TeamName -> Maybe PersonId -> Maybe Timestamp -> Team
-- | Identifier of the Team.
[teamId] :: Team -> TeamId
-- | Element level error possibly contained in List API response.
[teamErrors] :: Team -> Maybe Errors
-- | Name of the Team.
[teamName] :: Team -> Maybe TeamName
-- | Identifier of the Person who created the Team.
[teamCreatorId] :: Team -> Maybe PersonId
-- | Timestamp when the Team was created.
[teamCreated] :: Team -> Maybe Timestamp
-- | TeamList is decoded from response JSON of List Teams REST call.
-- It is list of Team.
newtype TeamList
TeamList :: [Team] -> TeamList
[teamListItems] :: TeamList -> [Team]
-- | CreateTeam is encoded to request body JSON of Create a Team
-- REST call.
newtype CreateTeam
CreateTeam :: TeamName -> CreateTeam
[createTeamName] :: CreateTeam -> TeamName
-- | UpdateTeam is encoded to request body JSON of Update a Team
-- REST call.
newtype UpdateTeam
UpdateTeam :: TeamName -> UpdateTeam
[updateTeamName] :: UpdateTeam -> TeamName
-- | Identifying TeamMembership.
newtype TeamMembershipId
TeamMembershipId :: Text -> TeamMembershipId
-- | TeamMembership is association between Team and
-- Person. It can be N:N relation. A Person can belong to multiple
-- Team. TeamMembership is decoded from response JSON of Get Team
-- Membership Details REST call. It is also element type of response of
-- List Team Memberships call.
data TeamMembership
TeamMembership :: TeamMembershipId -> Maybe Errors -> Maybe TeamId -> Maybe PersonId -> Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> Maybe Bool -> Maybe Timestamp -> TeamMembership
-- | Identifier of the TeamMembership entry.
[teamMembershipId] :: TeamMembership -> TeamMembershipId
-- | Element level error possibly contained in List API response.
[teamMembershipErrors] :: TeamMembership -> Maybe Errors
-- | Identifier of the Team which the Person belongs to.
[teamMembershipTeamId] :: TeamMembership -> Maybe TeamId
-- | Identifier of user who belongs to the Team.
[teamMembershipPersonId] :: TeamMembership -> Maybe PersonId
-- | Email address of the user identified by the PersonId.
[teamMembershipPersonEmail] :: TeamMembership -> Maybe Email
-- | Display name of the user identified by the PersonId.
[teamMembershipPersonDisplayName] :: TeamMembership -> Maybe DisplayName
-- | Identifier of Organization which the Team blongs to.
[teamMembershipPersonOrgId] :: TeamMembership -> Maybe OrganizationId
-- | The Person is moderator of the Team when True.
[teamMembershipIsModerator] :: TeamMembership -> Maybe Bool
-- | Timestamp when the TeamMembership entry created.
[teamMembershipCreated] :: TeamMembership -> Maybe Timestamp
-- | TeamMembershipList is decoded from response JSON of List Team
-- Memberships REST call. It is list of TeamMembership.
newtype TeamMembershipList
TeamMembershipList :: [TeamMembership] -> TeamMembershipList
[teamMembershipListItems] :: TeamMembershipList -> [TeamMembership]
-- | Optional query strings for team membership list API
newtype TeamMembershipFilter
TeamMembershipFilter :: TeamId -> TeamMembershipFilter
-- | List membership only in given team.
[teamMembershipFilterTeamId] :: TeamMembershipFilter -> TeamId
-- | Default value of query strings for team membership list API. Because
-- TeamId is mandatory, user have to supply it in order to get
-- rest of defaults. As of writing, there is no filter parameter other
-- than TeamId but TeamMembershipFilter is used for providing
-- consistent API like streamEntityWithFilter.
defaultTeamMembershipFilter :: TeamId -> TeamMembershipFilter
-- | CreateTeamMembership is encoded to request body JSON of Create
-- a Team Membership REST call.
data CreateTeamMembership
CreateTeamMembership :: TeamId -> Maybe PersonId -> Maybe Email -> Maybe Bool -> CreateTeamMembership
-- | Identifier of Team which the user will be added to.
[createTeamMembershipTeamId] :: CreateTeamMembership -> TeamId
-- | Identifier of Person who will be added to the Team.
[createTeamMembershipPersonId] :: CreateTeamMembership -> Maybe PersonId
-- | Email of the Person to be added.
[createTeamMembershipPersonEmail] :: CreateTeamMembership -> Maybe Email
-- | The user becomes a moderator of the team if True.
[createTeamMembershipIsModerator] :: CreateTeamMembership -> Maybe Bool
-- | UpdateTeamMembership is encoded to request body JSON of Update
-- a Team Membership REST call.
newtype UpdateTeamMembership
UpdateTeamMembership :: Bool -> UpdateTeamMembership
[updateTeamMembershipIsModerator] :: UpdateTeamMembership -> Bool
-- | Identifying Room.
newtype RoomId
RoomId :: Text -> RoomId
-- | Title text of Room.
newtype RoomTitle
RoomTitle :: Text -> RoomTitle
-- | SIP address.
newtype SipAddr
SipAddr :: Text -> SipAddr
-- | RoomType indicates if the Room is for 1:1 user or group
-- of users.
data RoomType
-- | The Room is for 1:1. Decoded from "direct".
RoomTypeDirect :: RoomType
-- | The Room is for group. Decoded from "group".
RoomTypeGroup :: RoomType
-- | Room is communication space in Webex Teams and called "Space"
-- on UI. Historically it was called Room on UI too but UI has been
-- changed to "Space" in order to avoid confusion with the concept "Room"
-- associated to hardware facility of video conferencing on Webex Teams.
-- The name of Room is kept unchanged for backward compatibility.
--
-- Room is decoded from response JSON of Get Room Details REST call. It
-- is also element type of response of List Rooms call.
data Room
Room :: RoomId -> Maybe Errors -> Maybe RoomTitle -> Maybe RoomType -> Maybe Bool -> Maybe SipAddr -> Maybe Timestamp -> Maybe TeamId -> Maybe PersonId -> Maybe Timestamp -> Room
-- | Identifier of the Room.
[roomId] :: Room -> RoomId
-- | Element level error possibly contained in List API response.
[roomErrors] :: Room -> Maybe Errors
-- | Title text of the Room.
[roomTitle] :: Room -> Maybe RoomTitle
-- | Indicates if the Room is for 1:1 or group.
[roomType] :: Room -> Maybe RoomType
-- | True if the Room is locked.
[roomIsLocked] :: Room -> Maybe Bool
-- | SIP address of the Room.
[roomSipAddress] :: Room -> Maybe SipAddr
-- | Timestamp when the last activity was happen on the Room.
[roomLastActivity] :: Room -> Maybe Timestamp
-- | Identifier of the Team which the Room belongs to.
[roomTeamId] :: Room -> Maybe TeamId
-- | Identifier of Person who created the Room.
[roomCreatorId] :: Room -> Maybe PersonId
-- | Timestamp when the Room was created.
[roomCreated] :: Room -> Maybe Timestamp
-- | RoomList is decoded from response JSON of List Rooms REST call.
-- It is list of Room.
newtype RoomList
RoomList :: [Room] -> RoomList
[roomListItems] :: RoomList -> [Room]
-- | Sorting option for room list API.
data RoomFilterSortBy
RoomFilterSortById :: RoomFilterSortBy
RoomFilterSortByLastActivity :: RoomFilterSortBy
RoomFilterSortByCreated :: RoomFilterSortBy
-- | Optional query strings for room list API
data RoomFilter
RoomFilter :: Maybe TeamId -> Maybe RoomType -> Maybe RoomFilterSortBy -> RoomFilter
-- | List rooms only in given team.
[roomFilterTeamId] :: RoomFilter -> Maybe TeamId
-- | List given type rooms only.
[roomFilterRoomType] :: RoomFilter -> Maybe RoomType
-- | Sort response by given option.
[roomFilterSortBy] :: RoomFilter -> Maybe RoomFilterSortBy
-- | Sum type to ByteString converter for RoomType.
roomTypeToFilterString :: RoomType -> ByteString
-- | Sum type to ByteString converter for RoomFilterSortBy.
roomFilterSortByToFilterString :: RoomFilterSortBy -> ByteString
-- | CreateRoom is encoded to request body JSON of Create a Room
-- REST call.
data CreateRoom
CreateRoom :: RoomTitle -> Maybe TeamId -> CreateRoom
-- | Title text of newly created Room.
[createRoomTitle] :: CreateRoom -> RoomTitle
-- | Identifier of Team which the Room will belong to. If Nothing,
-- the new Room will be standalone.
[createRoomTeamId] :: CreateRoom -> Maybe TeamId
-- | UpdateRoom is encoded to request body JSON of Update a Room
-- REST call.
newtype UpdateRoom
UpdateRoom :: RoomTitle -> UpdateRoom
[updateRoomTitle] :: UpdateRoom -> RoomTitle
-- | Identifying Membership.
newtype MembershipId
MembershipId :: Text -> MembershipId
-- | Membership is association between Room and
-- Person. It can be N:N relation. A Person can belong to multiple
-- Room. Membership is decoded from response JSON of Get Membership
-- Details REST call. It is also element type of response of List
-- Memberships call.
data Membership
Membership :: MembershipId -> Maybe Errors -> Maybe RoomId -> Maybe PersonId -> Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> Maybe Bool -> Maybe Bool -> Maybe Timestamp -> Membership
-- | Identifier of the Membership entry.
[membershipId] :: Membership -> MembershipId
-- | Element level error possibly contained in List API response.
[membershipErrors] :: Membership -> Maybe Errors
-- | Identifier of the Room associated to the Person
[membershipRoomId] :: Membership -> Maybe RoomId
-- | Identifier of the Person associated to the Room
[membershipPersonId] :: Membership -> Maybe PersonId
-- | Email of the Person
[membershipPersonEmail] :: Membership -> Maybe Email
-- | Display name of the Person
[membershipPersonDisplayName] :: Membership -> Maybe DisplayName
-- | Identifier of Organization which the Person belongs to.
[membershipPersonOrgId] :: Membership -> Maybe OrganizationId
-- | True if the Person is a moderator of the room.
[membershipIsModerator] :: Membership -> Maybe Bool
-- | True if the Person is monitoring the Room.
[membershipIsMonitor] :: Membership -> Maybe Bool
-- | Timestamp when the Membership was created.
[membershipCreated] :: Membership -> Maybe Timestamp
-- | MembershipList is decoded from response JSON of List
-- Memberships REST call. It is list of Membership.
newtype MembershipList
MembershipList :: [Membership] -> MembershipList
[membershipListItems] :: MembershipList -> [Membership]
-- | Optional query strings for room membership list API
data MembershipFilter
MembershipFilter :: Maybe RoomId -> Maybe PersonId -> Maybe Email -> MembershipFilter
-- | List membership only in given room.
[membershipFilterRoomId] :: MembershipFilter -> Maybe RoomId
-- | List membership related to given person of personId.
[membershipFilterPersonId] :: MembershipFilter -> Maybe PersonId
-- | List membership related to given person of email.
[membershipFilterPersonEmail] :: MembershipFilter -> Maybe Email
-- | CreateMembership is encoded to request body JSON of Create a
-- Membership REST call.
data CreateMembership
CreateMembership :: RoomId -> Maybe PersonId -> Maybe Email -> Maybe Bool -> CreateMembership
-- | Identifier of Room which the Person will be added to.
[createMembershipRoomId] :: CreateMembership -> RoomId
-- | Identifier of Person who will be added to the Room.
[createMembershipPersonId] :: CreateMembership -> Maybe PersonId
-- | Email of the Person to be added.
[createMembershipPersonEmail] :: CreateMembership -> Maybe Email
-- | The Person becomes a moderator of the Room if True.
[createMembershipIsModerator] :: CreateMembership -> Maybe Bool
-- | UpdateMembership is encoded to request body JSON of Update a
-- Membership REST call.
newtype UpdateMembership
UpdateMembership :: Bool -> UpdateMembership
[updateMembershipIsModerator] :: UpdateMembership -> Bool
-- | Identifying Message.
newtype MessageId
MessageId :: Text -> MessageId
-- | Body of message in plain text.
newtype MessageText
MessageText :: Text -> MessageText
-- | Body of message in html.
newtype MessageHtml
MessageHtml :: Text -> MessageHtml
-- | Body of message in markdown.
newtype MessageMarkdown
MessageMarkdown :: Text -> MessageMarkdown
-- | URL pointing attached file of message.
newtype FileUrl
FileUrl :: Text -> FileUrl
-- | Message is a message posted to a Room by some
-- Person. Room is decoded from response JSON of Get Message
-- Details REST call. It is also element type of response of List
-- Messages call.
data Message
Message :: MessageId -> Maybe Errors -> Maybe RoomId -> Maybe RoomType -> Maybe PersonId -> Maybe Email -> Maybe MessageText -> Maybe MessageHtml -> Maybe [FileUrl] -> Maybe PersonId -> Maybe Email -> Maybe Timestamp -> Maybe [PersonId] -> Message
-- | Identifier of the Message.
[messageId] :: Message -> MessageId
-- | Element level error possibly contained in List API response.
[messageErrors] :: Message -> Maybe Errors
-- | Identifier of the room where the Message was sent.
[messageRoomId] :: Message -> Maybe RoomId
-- | Type of Room the message was sent to.
[messageRoomType] :: Message -> Maybe RoomType
-- | Presents in documentation but doesn't appear in actual API response.
[messageToPersonId] :: Message -> Maybe PersonId
-- | Presents in documentation but doesn't appear in actual API response.
[messageToPersonEmail] :: Message -> Maybe Email
-- | Message body in plain text.
[messageText] :: Message -> Maybe MessageText
-- | Message body in HTML.
[messageHtml] :: Message -> Maybe MessageHtml
-- | URL to files attached to the message.
[messageFiles] :: Message -> Maybe [FileUrl]
-- | Identifier of Person who sent the message.
[messagePersonId] :: Message -> Maybe PersonId
-- | Email of Person who sent the message.
[messagePersonEmail] :: Message -> Maybe Email
-- | Timestamp when the massage was sent.
[messageCreated] :: Message -> Maybe Timestamp
-- | List of identifiers of Person were mentioned in the message.
[messageMentionedPeople] :: Message -> Maybe [PersonId]
-- | MessageList is decoded from response JSON of List Messages REST
-- call. It is list of Message.
newtype MessageList
MessageList :: [Message] -> MessageList
[messageListItems] :: MessageList -> [Message]
-- | Sum type for mentionedPeople query string. It can be "me" or
-- PersonId.
data MentionedPeople
MentionedPeopleMe :: MentionedPeople
MentionedPeople :: PersonId -> MentionedPeople
-- | Optional query strings for message list API
data MessageFilter
MessageFilter :: RoomId -> Maybe MentionedPeople -> Maybe Timestamp -> Maybe MessageId -> MessageFilter
-- | Mandatory parameter which room to search.
[messageFilterRoomId] :: MessageFilter -> RoomId
-- | List messages only mentioned to given person.
[messageFilterMentionedPeople] :: MessageFilter -> Maybe MentionedPeople
-- | List messages posted before given timestamp.
[messageFilterBefore] :: MessageFilter -> Maybe Timestamp
-- | List messages posted before given message.
[messageFilterBeforeMessage] :: MessageFilter -> Maybe MessageId
-- | Default value of query strings for message list API. Because
-- RoomId is mandatory, user have to supply it in order to get
-- rest of defaults.
defaultMessageFilter :: RoomId -> MessageFilter
-- | Sum type to ByteString converter for mentionedPeople query string.
mentionedPeopleToFilterString :: MentionedPeople -> ByteString
-- | CreateMessage is encoded to request body JSON of Create a
-- Message REST call.
data CreateMessage
CreateMessage :: Maybe RoomId -> Maybe PersonId -> Maybe Email -> Maybe MessageText -> Maybe MessageMarkdown -> Maybe [FileUrl] -> CreateMessage
-- | Identifier of the Room the message will be posted to.
[createMessageRoomId] :: CreateMessage -> Maybe RoomId
-- | Identifier of the Person to whom the direct message will be
-- sent.
[createMessageToPersonId] :: CreateMessage -> Maybe PersonId
-- | Email of Person who receives the Message.
[createMessageToPersonEmail] :: CreateMessage -> Maybe Email
-- | Message body in plain text.
[createMessageText] :: CreateMessage -> Maybe MessageText
-- | Message body in markdown format.
[createMessageMarkdown] :: CreateMessage -> Maybe MessageMarkdown
-- | URLs of Attached files to the message.
[createMessageFiles] :: CreateMessage -> Maybe [FileUrl]
-- | Display name of Organization
newtype OrganizationDisplayName
OrganizationDisplayName :: Text -> OrganizationDisplayName
-- | Organization is an administrative group of Webex Teams users.
-- Each Person belongs to one Organization. Organization is
-- decoded from response JSON of Get Organization Details REST call. It
-- is also element type of response of List Organizations call.
data Organization
Organization :: OrganizationId -> Maybe Errors -> Maybe OrganizationDisplayName -> Maybe Timestamp -> Organization
-- | Identifier of the Organization.
[organizationId] :: Organization -> OrganizationId
-- | Element level error possibly contained in List API response.
[organizationErrors] :: Organization -> Maybe Errors
-- | Display name of the Organization.
[organizationDisplayName] :: Organization -> Maybe OrganizationDisplayName
-- | Timestamp when the Organization was created.
[organizationCreated] :: Organization -> Maybe Timestamp
-- | OrganizationList is decoded from response JSON of List
-- Organizations REST call. It is list of Organization.
newtype OrganizationList
OrganizationList :: [Organization] -> OrganizationList
[organizationListItems] :: OrganizationList -> [Organization]
-- | Display name of License
newtype LicenseName
LicenseName :: Text -> LicenseName
-- | Counting number of granted or consumed License
newtype LicenseUnit
LicenseUnit :: Integer -> LicenseUnit
-- | License is allowance for features and services of Webex Teams
-- subscription. License is decoded from response JSON of Get License
-- Details REST call. It is also element type of response of List
-- Licenses call.
data License
License :: LicenseId -> Maybe Errors -> Maybe LicenseName -> Maybe LicenseUnit -> Maybe LicenseUnit -> License
-- | Identifier of the License.
[licenseId] :: License -> LicenseId
-- | Element level error possibly contained in List API response.
[licenseErrors] :: License -> Maybe Errors
-- | Name of the License.
[licenseName] :: License -> Maybe LicenseName
-- | Number of granted License.
[licenseTotalUnits] :: License -> Maybe LicenseUnit
-- | Number of currently consumed License.
[licenseConsumedUnits] :: License -> Maybe LicenseUnit
-- | LicenseList is decoded from response JSON of List Licenses REST
-- call. It is list of License.
newtype LicenseList
LicenseList :: [License] -> LicenseList
[licenseListItems] :: LicenseList -> [License]
-- | Optional query strings for license list API
newtype LicenseFilter
LicenseFilter :: Maybe OrganizationId -> LicenseFilter
-- | List licenses only applicable to given organization.
[licenseFilterOrgId] :: LicenseFilter -> Maybe OrganizationId
-- | Name of Role.
newtype RoleName
RoleName :: Text -> RoleName
-- | A persona for an authenticated user, corresponding to a set of
-- privileges within an organization. Role is decoded from response JSON
-- of Get Role Details REST call. It is also element type of response of
-- List Roles call.
data Role
Role :: RoleId -> Maybe Errors -> Maybe RoleName -> Role
-- | Identifier of the Role
[roleId] :: Role -> RoleId
-- | Element level error possibly contained in List API response.
[roleErrors] :: Role -> Maybe Errors
-- | Name of the Role
[roleName] :: Role -> Maybe RoleName
-- | RoleList is decoded from response JSON of List Role REST call.
-- It is list of Role.
newtype RoleList
RoleList :: [Role] -> RoleList
[roleListItems] :: RoleList -> [Role]
-- | Webhook identifier which can be assigned to user. See
-- Webhook too.
newtype WebhookId
WebhookId :: Text -> WebhookId
-- | Name of Webhook.
newtype WebhookName
WebhookName :: Text -> WebhookName
-- | URL pointing to webhook target.
newtype WebhookUrl
WebhookUrl :: Text -> WebhookUrl
-- | URL-encoded set of webhook filtering criteria.
newtype WebhookFilter
WebhookFilter :: Text -> WebhookFilter
-- | Shared secret supplied by user to authenticate Webex Cloud by webhook
-- receiver.
newtype WebhookSecret
WebhookSecret :: Text -> WebhookSecret
-- | WebhookResource indicates source of event which triggered
-- webhook access.
data WebhookResource
WebhookResourceAll :: WebhookResource
WebhookResourceTeams :: WebhookResource
WebhookResourceMemberships :: WebhookResource
WebhookResourceMessages :: WebhookResource
WebhookResourceRooms :: WebhookResource
-- | WebhookEvent indicates which event triggered Webhook access.
data WebhookEvent
WebhookEventAll :: WebhookEvent
WebhookEventCreated :: WebhookEvent
WebhookEventUpdated :: WebhookEvent
WebhookEventDeleted :: WebhookEvent
-- | Webhook allow your app to be notified via HTTP when a specific
-- event occurs on Webex Teams. For example, your app can register a
-- webhook to be notified when a new message is posted into a specific
-- room.
data Webhook
Webhook :: WebhookId -> Maybe Errors -> Maybe WebhookName -> Maybe WebhookUrl -> Maybe WebhookResource -> Maybe WebhookEvent -> Maybe WebhookFilter -> Maybe WebhookSecret -> Maybe Timestamp -> Webhook
-- | Identifier of the Webhook.
[webhookId] :: Webhook -> WebhookId
-- | Element level error possibly contained in List API response.
[webhookErrors] :: Webhook -> Maybe Errors
-- | Name of the Webhook.
[webhookName] :: Webhook -> Maybe WebhookName
-- | URL pointing to webhook target.
[webhookTargetUrl] :: Webhook -> Maybe WebhookUrl
-- | Resource type where events are monitored.
[webhookResource] :: Webhook -> Maybe WebhookResource
-- | Event type which will be monitored.
[webhookEvent] :: Webhook -> Maybe WebhookEvent
-- | URL-encoded set of webhook filtering criteria.
[webhookFilter] :: Webhook -> Maybe WebhookFilter
-- | User supplied shared secret for authentication.
[webhookSecret] :: Webhook -> Maybe WebhookSecret
-- | Timestamp when the Webhook was created.
[webhookCreated] :: Webhook -> Maybe Timestamp
-- | WebhookList is decoded from response JSON of List Webhook REST
-- call. It is list of Webhook.
newtype WebhookList
WebhookList :: [Webhook] -> WebhookList
[webhookListItems] :: WebhookList -> [Webhook]
-- | CreateWebhook is encoded to request body JSON of Create a
-- Webhook REST call.
data CreateWebhook
CreateWebhook :: WebhookName -> WebhookUrl -> WebhookResource -> WebhookEvent -> Maybe WebhookFilter -> Maybe WebhookSecret -> CreateWebhook
-- | Name of Webhook to be created.
[createWebhookName] :: CreateWebhook -> WebhookName
-- | URL pointing to webhook target.
[createWebhookTargetUrl] :: CreateWebhook -> WebhookUrl
-- | Resource type where events will be monitored.
[createWebhookResource] :: CreateWebhook -> WebhookResource
-- | Event type which will be monitored.
[createWebhookEvent] :: CreateWebhook -> WebhookEvent
-- | URL-encoded set of webhook filtering criteria.
[createWebhookFilter] :: CreateWebhook -> Maybe WebhookFilter
-- | User supplied shared secret for authentication.
[createWebhookSecret] :: CreateWebhook -> Maybe WebhookSecret
-- | UpdateWebhook is encoded to request body JSON of Update a
-- Webhook REST call.
data UpdateWebhook
UpdateWebhook :: WebhookName -> WebhookUrl -> UpdateWebhook
-- | Name of Webhook to be created.
[updateWebhookName] :: UpdateWebhook -> WebhookName
-- | URL pointing to webhook target.
[updateWebhookTargetUrl] :: UpdateWebhook -> WebhookUrl
-- | Optional query strings for membership event.
data WebhookMembershipFilter
WebhookMembershipFilter :: Maybe RoomId -> Maybe PersonId -> Maybe Email -> Maybe Bool -> WebhookMembershipFilter
-- | Feed events only for given room.
[webhookFilterMembershipRoomId] :: WebhookMembershipFilter -> Maybe RoomId
-- | Feed events only for given person.
[webhookFilterMembershipPersonId] :: WebhookMembershipFilter -> Maybe PersonId
-- | Feed events only person who has given email.
[webhookFilterMembershipPersonEmail] :: WebhookMembershipFilter -> Maybe Email
-- | Feed events only for moderator membership changes.
[webhookFilterMembershipIsModerator] :: WebhookMembershipFilter -> Maybe Bool
-- | Optional query strings for message event.
data WebhookMessageFilter
WebhookMessageFilter :: Maybe RoomId -> Maybe RoomType -> Maybe PersonId -> Maybe Email -> Maybe MentionedPeople -> Maybe Bool -> WebhookMessageFilter
-- | Feed events only for given room.
[webhookFilterMessageRoomId] :: WebhookMessageFilter -> Maybe RoomId
-- | Feed events only for given room type.
[webhookFilterMessageRoomType] :: WebhookMessageFilter -> Maybe RoomType
-- | Feed events only for given person.
[webhookFilterMessagePersonId] :: WebhookMessageFilter -> Maybe PersonId
-- | Feed events only person who has given email.
[webhookFilterMessagePersonEmail] :: WebhookMessageFilter -> Maybe Email
-- | Feed events only mentioned for given person.
[webhookFilterMessagememtionedPeople] :: WebhookMessageFilter -> Maybe MentionedPeople
-- | Feed events only messages with attached file.
[webhookFilterMessageHasFiles] :: WebhookMessageFilter -> Maybe Bool
-- | Optional query strings for room event.
data WebhookRoomFilter
WebhookRoomFilter :: Maybe RoomType -> Maybe Bool -> WebhookRoomFilter
-- | Feed events only for given room type.
[webhookFilterRoomType] :: WebhookRoomFilter -> Maybe RoomType
-- | Feed events only locked unlocked rooms when true.
[webhookFilterRoomIsLocked] :: WebhookRoomFilter -> Maybe Bool
-- | Identifier of app.
newtype AppId
AppId :: Text -> AppId
-- | WebhookNotifyOwnedBy indicates if the webhook is owned by the
-- org or the creator.
data WebhookNotifyOwnedBy
WebhookNotifyOwnedByOrg :: WebhookNotifyOwnedBy
WebhookNotifyOwnedByCreator :: WebhookNotifyOwnedBy
-- | WebhookNotifyStatus indicates if the webhook is active.
data WebhookNotifyStatus
WebhookNotifyStatusActive :: WebhookNotifyStatus
WebhookNotifyStatusDesabled :: WebhookNotifyStatus
-- | Webhook decodes webhook notification from Webex Cloud except
-- data field. Data field can be one of Membership, Message
-- or Room. Type of data field is shown as value of resource
-- field.
data WebhookNotify
WebhookNotify :: WebhookId -> WebhookName -> WebhookResource -> WebhookEvent -> WebhookFilter -> Organization -> PersonId -> AppId -> WebhookNotifyOwnedBy -> WebhookNotifyStatus -> PersonId -> WebhookNotify
[webhookNotifyId] :: WebhookNotify -> WebhookId
[webhookNotifyName] :: WebhookNotify -> WebhookName
[webhookNotifyResource] :: WebhookNotify -> WebhookResource
[webhookNotifyEvent] :: WebhookNotify -> WebhookEvent
[webhookNotifyFilter] :: WebhookNotify -> WebhookFilter
[webhookNotifyOrgId] :: WebhookNotify -> Organization
[webhookNotifyCreatedBy] :: WebhookNotify -> PersonId
[webhookNotifyAppId] :: WebhookNotify -> AppId
[webhookNotifyOwnedBy] :: WebhookNotify -> WebhookNotifyOwnedBy
[webhookNotifyStatus] :: WebhookNotify -> WebhookNotifyStatus
[webhookNotifyActorId] :: WebhookNotify -> PersonId
-- | Data part of webhook notification is decoded to Membership when
-- resource field value is "memberships".
newtype WebhookNotifyMembership
WebhookNotifyMembership :: Membership -> WebhookNotifyMembership
[webhookNotifyMembershipData] :: WebhookNotifyMembership -> Membership
-- | Data part of webhook notification is decoded to Message when
-- resource field value is "messages".
newtype WebhookNotifyMessage
WebhookNotifyMessage :: Message -> WebhookNotifyMessage
[webhookNotifyMessageData] :: WebhookNotifyMessage -> Message
-- | Data part of webhook notification is decoded to Room when
-- resource field value is "rooms".
newtype WebhookNotifyRoom
WebhookNotifyRoom :: Room -> WebhookNotifyRoom
[webhookNotifyRoomData] :: WebhookNotifyRoom -> Room
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotifyRoom
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotifyRoom
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotifyRoom
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotifyRoom
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotifyMessage
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotifyMessage
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotifyMessage
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotifyMessage
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotifyMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotifyMembership
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotifyMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotifyMembership
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotify
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotify
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotify
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotify
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotifyStatus
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotifyStatus
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotifyStatus
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotifyStatus
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookNotifyOwnedBy
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookNotifyOwnedBy
instance GHC.Show.Show Network.WebexTeams.Types.WebhookNotifyOwnedBy
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookNotifyOwnedBy
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.AppId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.AppId
instance GHC.Generics.Generic Network.WebexTeams.Types.AppId
instance GHC.Show.Show Network.WebexTeams.Types.AppId
instance GHC.Classes.Eq Network.WebexTeams.Types.AppId
instance GHC.Show.Show Network.WebexTeams.Types.WebhookRoomFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookRoomFilter
instance GHC.Show.Show Network.WebexTeams.Types.WebhookMessageFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookMessageFilter
instance GHC.Show.Show Network.WebexTeams.Types.WebhookMembershipFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.WebhookRoomFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.WebhookRoomFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.WebhookRoomFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.WebhookMessageFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.WebhookMessageFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.WebhookMessageFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.WebhookMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.WebhookMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.WebhookMembershipFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdateWebhook
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdateWebhook
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdateWebhook
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdateWebhook
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdateWebhook
instance GHC.Show.Show Network.WebexTeams.Types.UpdateWebhook
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdateWebhook
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateWebhook
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateWebhook
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateWebhook
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateWebhook
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateWebhook
instance GHC.Show.Show Network.WebexTeams.Types.CreateWebhook
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateWebhook
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Webhook
instance GHC.Show.Show Network.WebexTeams.Types.WebhookList
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Webhook
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Webhook
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.WebhookId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.WebhookId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.WebhookId
instance GHC.Show.Show Network.WebexTeams.Types.Webhook
instance GHC.Classes.Eq Network.WebexTeams.Types.Webhook
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookEvent
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookEvent
instance GHC.Show.Show Network.WebexTeams.Types.WebhookEvent
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookEvent
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookResource
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookResource
instance GHC.Show.Show Network.WebexTeams.Types.WebhookResource
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookResource
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookSecret
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookSecret
instance GHC.Generics.Generic Network.WebexTeams.Types.WebhookSecret
instance GHC.Show.Show Network.WebexTeams.Types.WebhookSecret
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookSecret
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookFilter
instance GHC.Generics.Generic Network.WebexTeams.Types.WebhookFilter
instance GHC.Show.Show Network.WebexTeams.Types.WebhookFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookFilter
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookUrl
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookUrl
instance GHC.Generics.Generic Network.WebexTeams.Types.WebhookUrl
instance GHC.Show.Show Network.WebexTeams.Types.WebhookUrl
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookUrl
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookName
instance GHC.Generics.Generic Network.WebexTeams.Types.WebhookName
instance GHC.Show.Show Network.WebexTeams.Types.WebhookName
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.WebhookId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.WebhookId
instance GHC.Generics.Generic Network.WebexTeams.Types.WebhookId
instance GHC.Show.Show Network.WebexTeams.Types.WebhookId
instance GHC.Classes.Eq Network.WebexTeams.Types.WebhookId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoleList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoleList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Role
instance GHC.Show.Show Network.WebexTeams.Types.RoleList
instance GHC.Classes.Eq Network.WebexTeams.Types.RoleList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Role
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Role
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.RoleId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.RoleId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.RoleId
instance GHC.Show.Show Network.WebexTeams.Types.Role
instance GHC.Classes.Eq Network.WebexTeams.Types.Role
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoleName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoleName
instance GHC.Generics.Generic Network.WebexTeams.Types.RoleName
instance GHC.Show.Show Network.WebexTeams.Types.RoleName
instance GHC.Classes.Eq Network.WebexTeams.Types.RoleName
instance GHC.Show.Show Network.WebexTeams.Types.LicenseFilter
instance GHC.Generics.Generic Network.WebexTeams.Types.LicenseFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.LicenseFilter
instance Data.Default.Class.Default Network.WebexTeams.Types.LicenseFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.LicenseFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.LicenseFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.LicenseFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.LicenseList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.LicenseList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.License
instance GHC.Show.Show Network.WebexTeams.Types.LicenseList
instance GHC.Classes.Eq Network.WebexTeams.Types.LicenseList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.License
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.License
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.LicenseId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.LicenseId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.LicenseId
instance GHC.Show.Show Network.WebexTeams.Types.License
instance GHC.Classes.Eq Network.WebexTeams.Types.License
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.LicenseUnit
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.LicenseUnit
instance GHC.Generics.Generic Network.WebexTeams.Types.LicenseUnit
instance GHC.Show.Show Network.WebexTeams.Types.LicenseUnit
instance GHC.Classes.Eq Network.WebexTeams.Types.LicenseUnit
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.LicenseName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.LicenseName
instance GHC.Generics.Generic Network.WebexTeams.Types.LicenseName
instance GHC.Show.Show Network.WebexTeams.Types.LicenseName
instance GHC.Classes.Eq Network.WebexTeams.Types.LicenseName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.OrganizationList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.OrganizationList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Organization
instance GHC.Show.Show Network.WebexTeams.Types.OrganizationList
instance GHC.Classes.Eq Network.WebexTeams.Types.OrganizationList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Organization
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Organization
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.OrganizationId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.OrganizationId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.OrganizationId
instance GHC.Show.Show Network.WebexTeams.Types.Organization
instance GHC.Classes.Eq Network.WebexTeams.Types.Organization
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.OrganizationDisplayName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.OrganizationDisplayName
instance GHC.Generics.Generic Network.WebexTeams.Types.OrganizationDisplayName
instance GHC.Show.Show Network.WebexTeams.Types.OrganizationDisplayName
instance GHC.Classes.Eq Network.WebexTeams.Types.OrganizationDisplayName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateMessage
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateMessage
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateMessage
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateMessage
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateMessage
instance GHC.Show.Show Network.WebexTeams.Types.CreateMessage
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateMessage
instance GHC.Show.Show Network.WebexTeams.Types.MessageFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageFilter
instance GHC.Show.Show Network.WebexTeams.Types.MentionedPeople
instance GHC.Classes.Eq Network.WebexTeams.Types.MentionedPeople
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.MessageFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.MessageFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.MessageFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MessageList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MessageList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Message
instance GHC.Show.Show Network.WebexTeams.Types.MessageList
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Message
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Message
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.MessageId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.MessageId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.MessageId
instance GHC.Show.Show Network.WebexTeams.Types.Message
instance GHC.Classes.Eq Network.WebexTeams.Types.Message
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.FileUrl
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.FileUrl
instance GHC.Generics.Generic Network.WebexTeams.Types.FileUrl
instance GHC.Show.Show Network.WebexTeams.Types.FileUrl
instance GHC.Classes.Eq Network.WebexTeams.Types.FileUrl
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MessageMarkdown
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MessageMarkdown
instance GHC.Generics.Generic Network.WebexTeams.Types.MessageMarkdown
instance GHC.Show.Show Network.WebexTeams.Types.MessageMarkdown
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageMarkdown
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MessageHtml
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MessageHtml
instance GHC.Generics.Generic Network.WebexTeams.Types.MessageHtml
instance GHC.Show.Show Network.WebexTeams.Types.MessageHtml
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageHtml
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MessageText
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MessageText
instance GHC.Generics.Generic Network.WebexTeams.Types.MessageText
instance GHC.Show.Show Network.WebexTeams.Types.MessageText
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageText
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MessageId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MessageId
instance GHC.Generics.Generic Network.WebexTeams.Types.MessageId
instance GHC.Show.Show Network.WebexTeams.Types.MessageId
instance GHC.Classes.Eq Network.WebexTeams.Types.MessageId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdateMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdateMembership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdateMembership
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdateMembership
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdateMembership
instance GHC.Show.Show Network.WebexTeams.Types.UpdateMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdateMembership
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateMembership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateMembership
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateMembership
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateMembership
instance GHC.Show.Show Network.WebexTeams.Types.CreateMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateMembership
instance GHC.Show.Show Network.WebexTeams.Types.MembershipFilter
instance GHC.Generics.Generic Network.WebexTeams.Types.MembershipFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.MembershipFilter
instance Data.Default.Class.Default Network.WebexTeams.Types.MembershipFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.MembershipFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.MembershipFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.MembershipFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MembershipList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MembershipList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Membership
instance GHC.Show.Show Network.WebexTeams.Types.MembershipList
instance GHC.Classes.Eq Network.WebexTeams.Types.MembershipList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Membership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Membership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.MembershipId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.MembershipId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.MembershipId
instance GHC.Show.Show Network.WebexTeams.Types.Membership
instance GHC.Classes.Eq Network.WebexTeams.Types.Membership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.MembershipId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.MembershipId
instance GHC.Generics.Generic Network.WebexTeams.Types.MembershipId
instance GHC.Show.Show Network.WebexTeams.Types.MembershipId
instance GHC.Classes.Eq Network.WebexTeams.Types.MembershipId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdateRoom
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdateRoom
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdateRoom
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdateRoom
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdateRoom
instance GHC.Show.Show Network.WebexTeams.Types.UpdateRoom
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdateRoom
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateRoom
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateRoom
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateRoom
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateRoom
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateRoom
instance GHC.Show.Show Network.WebexTeams.Types.CreateRoom
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateRoom
instance GHC.Show.Show Network.WebexTeams.Types.RoomFilter
instance GHC.Generics.Generic Network.WebexTeams.Types.RoomFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomFilter
instance Data.Default.Class.Default Network.WebexTeams.Types.RoomFilter
instance GHC.Show.Show Network.WebexTeams.Types.RoomFilterSortBy
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomFilterSortBy
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.RoomFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.RoomFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.RoomFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoomList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoomList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Room
instance GHC.Show.Show Network.WebexTeams.Types.RoomList
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Room
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Room
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.RoomId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.RoomId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.RoomId
instance GHC.Show.Show Network.WebexTeams.Types.Room
instance GHC.Classes.Eq Network.WebexTeams.Types.Room
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoomType
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoomType
instance GHC.Show.Show Network.WebexTeams.Types.RoomType
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomType
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.SipAddr
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.SipAddr
instance GHC.Generics.Generic Network.WebexTeams.Types.SipAddr
instance GHC.Show.Show Network.WebexTeams.Types.SipAddr
instance GHC.Classes.Eq Network.WebexTeams.Types.SipAddr
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoomTitle
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoomTitle
instance GHC.Generics.Generic Network.WebexTeams.Types.RoomTitle
instance GHC.Show.Show Network.WebexTeams.Types.RoomTitle
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomTitle
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoomId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoomId
instance GHC.Generics.Generic Network.WebexTeams.Types.RoomId
instance GHC.Show.Show Network.WebexTeams.Types.RoomId
instance GHC.Classes.Eq Network.WebexTeams.Types.RoomId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdateTeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdateTeamMembership
instance GHC.Show.Show Network.WebexTeams.Types.UpdateTeamMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdateTeamMembership
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateTeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateTeamMembership
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateTeamMembership
instance GHC.Show.Show Network.WebexTeams.Types.CreateTeamMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateTeamMembership
instance GHC.Show.Show Network.WebexTeams.Types.TeamMembershipFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.TeamMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.TeamMembershipFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.TeamMembershipFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamMembershipList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamMembershipList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.TeamMembership
instance GHC.Show.Show Network.WebexTeams.Types.TeamMembershipList
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamMembershipList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamMembership
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.TeamMembershipId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.TeamMembershipId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.TeamMembershipId
instance GHC.Show.Show Network.WebexTeams.Types.TeamMembership
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamMembership
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamMembershipId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamMembershipId
instance GHC.Generics.Generic Network.WebexTeams.Types.TeamMembershipId
instance GHC.Show.Show Network.WebexTeams.Types.TeamMembershipId
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamMembershipId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdateTeam
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdateTeam
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdateTeam
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdateTeam
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdateTeam
instance GHC.Show.Show Network.WebexTeams.Types.UpdateTeam
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdateTeam
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreateTeam
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreateTeam
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreateTeam
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreateTeam
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreateTeam
instance GHC.Show.Show Network.WebexTeams.Types.CreateTeam
instance GHC.Classes.Eq Network.WebexTeams.Types.CreateTeam
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Team
instance GHC.Show.Show Network.WebexTeams.Types.TeamList
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Team
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Team
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.TeamId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.TeamId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.TeamId
instance GHC.Show.Show Network.WebexTeams.Types.Team
instance GHC.Classes.Eq Network.WebexTeams.Types.Team
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamName
instance GHC.Generics.Generic Network.WebexTeams.Types.TeamName
instance GHC.Show.Show Network.WebexTeams.Types.TeamName
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.TeamId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.TeamId
instance GHC.Generics.Generic Network.WebexTeams.Types.TeamId
instance GHC.Show.Show Network.WebexTeams.Types.TeamId
instance GHC.Classes.Eq Network.WebexTeams.Types.TeamId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.UpdatePerson
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.UpdatePerson
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.UpdatePerson
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.UpdatePerson
instance Network.WebexTeams.Types.WebexTeamsUpdate Network.WebexTeams.Types.UpdatePerson
instance GHC.Show.Show Network.WebexTeams.Types.UpdatePerson
instance GHC.Classes.Eq Network.WebexTeams.Types.UpdatePerson
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.CreatePerson
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.CreatePerson
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.CreatePerson
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.CreatePerson
instance Network.WebexTeams.Types.WebexTeamsCreate Network.WebexTeams.Types.CreatePerson
instance GHC.Show.Show Network.WebexTeams.Types.CreatePerson
instance GHC.Classes.Eq Network.WebexTeams.Types.CreatePerson
instance GHC.Show.Show Network.WebexTeams.Types.PersonFilter
instance GHC.Generics.Generic Network.WebexTeams.Types.PersonFilter
instance GHC.Classes.Eq Network.WebexTeams.Types.PersonFilter
instance Data.Default.Class.Default Network.WebexTeams.Types.PersonFilter
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.PersonFilter
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.PersonFilter
instance Network.WebexTeams.Types.WebexTeamsFilter Network.WebexTeams.Types.PersonFilter
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.PersonList
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.PersonList
instance Network.WebexTeams.Types.WebexTeamsListItem Network.WebexTeams.Types.Person
instance GHC.Show.Show Network.WebexTeams.Types.PersonList
instance GHC.Classes.Eq Network.WebexTeams.Types.PersonList
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Person
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Person
instance Network.WebexTeams.Types.WebexTeamsApiPath Network.WebexTeams.Types.PersonId
instance Network.WebexTeams.Types.WebexTeamsResponse Network.WebexTeams.Types.PersonId
instance Network.WebexTeams.Types.WebexTeamsDetail Network.WebexTeams.Types.PersonId
instance GHC.Show.Show Network.WebexTeams.Types.Person
instance GHC.Classes.Eq Network.WebexTeams.Types.Person
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.PersonType
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.PersonType
instance GHC.Show.Show Network.WebexTeams.Types.PersonType
instance GHC.Classes.Eq Network.WebexTeams.Types.PersonType
instance GHC.Show.Show Network.WebexTeams.Types.PersonStatus
instance GHC.Generics.Generic Network.WebexTeams.Types.PersonStatus
instance GHC.Classes.Eq Network.WebexTeams.Types.PersonStatus
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Timezone
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Timezone
instance GHC.Generics.Generic Network.WebexTeams.Types.Timezone
instance GHC.Show.Show Network.WebexTeams.Types.Timezone
instance GHC.Classes.Eq Network.WebexTeams.Types.Timezone
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.LicenseId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.LicenseId
instance GHC.Generics.Generic Network.WebexTeams.Types.LicenseId
instance GHC.Show.Show Network.WebexTeams.Types.LicenseId
instance GHC.Classes.Eq Network.WebexTeams.Types.LicenseId
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.RoleId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.RoleId
instance GHC.Generics.Generic Network.WebexTeams.Types.RoleId
instance GHC.Show.Show Network.WebexTeams.Types.RoleId
instance GHC.Classes.Eq Network.WebexTeams.Types.RoleId
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.OrganizationId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.OrganizationId
instance GHC.Generics.Generic Network.WebexTeams.Types.OrganizationId
instance GHC.Show.Show Network.WebexTeams.Types.OrganizationId
instance GHC.Classes.Eq Network.WebexTeams.Types.OrganizationId
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.AvatarUrl
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.AvatarUrl
instance GHC.Generics.Generic Network.WebexTeams.Types.AvatarUrl
instance GHC.Show.Show Network.WebexTeams.Types.AvatarUrl
instance GHC.Classes.Eq Network.WebexTeams.Types.AvatarUrl
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.LastName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.LastName
instance GHC.Generics.Generic Network.WebexTeams.Types.LastName
instance GHC.Show.Show Network.WebexTeams.Types.LastName
instance GHC.Classes.Eq Network.WebexTeams.Types.LastName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.FirstName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.FirstName
instance GHC.Generics.Generic Network.WebexTeams.Types.FirstName
instance GHC.Show.Show Network.WebexTeams.Types.FirstName
instance GHC.Classes.Eq Network.WebexTeams.Types.FirstName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.NickName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.NickName
instance GHC.Generics.Generic Network.WebexTeams.Types.NickName
instance GHC.Show.Show Network.WebexTeams.Types.NickName
instance GHC.Classes.Eq Network.WebexTeams.Types.NickName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.DisplayName
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.DisplayName
instance GHC.Generics.Generic Network.WebexTeams.Types.DisplayName
instance GHC.Show.Show Network.WebexTeams.Types.DisplayName
instance GHC.Classes.Eq Network.WebexTeams.Types.DisplayName
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Email
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Email
instance GHC.Generics.Generic Network.WebexTeams.Types.Email
instance GHC.Show.Show Network.WebexTeams.Types.Email
instance GHC.Classes.Eq Network.WebexTeams.Types.Email
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.PersonId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.PersonId
instance GHC.Generics.Generic Network.WebexTeams.Types.PersonId
instance GHC.Show.Show Network.WebexTeams.Types.PersonId
instance GHC.Classes.Eq Network.WebexTeams.Types.PersonId
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.PersonStatus
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.PersonStatus
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Errors
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Errors
instance GHC.Show.Show Network.WebexTeams.Types.Errors
instance GHC.Classes.Eq Network.WebexTeams.Types.Errors
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.ErrorTitle
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.ErrorTitle
instance GHC.Show.Show Network.WebexTeams.Types.ErrorTitle
instance GHC.Classes.Eq Network.WebexTeams.Types.ErrorTitle
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.ErrorCode
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.ErrorCode
instance GHC.Generics.Generic Network.WebexTeams.Types.ErrorCode
instance GHC.Show.Show Network.WebexTeams.Types.ErrorCode
instance GHC.Classes.Eq Network.WebexTeams.Types.ErrorCode
instance Data.Aeson.Types.FromJSON.FromJSON Network.WebexTeams.Types.Timestamp
instance Data.Aeson.Types.ToJSON.ToJSON Network.WebexTeams.Types.Timestamp
instance GHC.Generics.Generic Network.WebexTeams.Types.Timestamp
instance GHC.Show.Show Network.WebexTeams.Types.Timestamp
instance GHC.Classes.Eq Network.WebexTeams.Types.Timestamp
-- | This module provides types and functions for accessing Cisco Webex
-- Teams REST API.
--
-- The module is designed to improve type safety over the API. Each
-- entity is separately typed. JSON messages contained in REST responses
-- are decoded into appropriate type of Haskell record. JSON messages
-- sent in REST requests are encoded only from correct type of record.
--
-- Some Webex Teams REST API return list of objects. Those APIs require
-- HTTP Link Header based pagination. Haskell functions for those APIs
-- automatically request subsequent pages as needed.
--
-- Examples
--
--
-- -- Sending a message to a room.
-- let auth = Authorization "your authorization token"
-- roomId = RoomId "Room ID your message to be sent"
-- messageText = MessageText "your message"
-- message = CreateMessage (Just roomId) Nothing Nothing (Just messageText) Nothing Nothing
-- createEntity auth def createMessage >>= print . getResponseBody
--
-- -- Obtaining detail of a user.
-- let personId = PersonId "your person ID"
-- getDetail auth def personId >>= print . getResponseBody
--
-- -- Obtaining membership of a room as stream of object representing each membership relation.
-- let filter = MembershipFilter yourRoomId Nothing Nothing
-- runConduit $ streamListWithFilter auth def filter .| takeC 200 .| mapM_C print
--
-- -- Create a room.
-- let createRoom = CreateRoom "Title of the new room" Nothing
-- createEntity auth def createRoom >>= print . getResponseBody
--
-- -- Delete a room.
-- deleteRoom auth def roomId >>= print . getResponseBody
--
--
-- List and steaming
--
-- The WebexTeams module doesn't provide streaming API for REST
-- response returning list of entities. It is because the author of the
-- package wants to keep it streaming library agnostic. Instead, it
-- provides ListReader IO action to read list responses with
-- automatic pagenation. Streaming APIs can be found in separate packages
-- like webex-teams-pipes or webex-teams-conduit.
--
-- Support for Lens
--
-- This package provides many of records representing objects
-- communicated via Webex Teams REST API. Those records are designed to
-- allow create lenses by Control.Lens.TH.makeFields.
--
-- Following example creates overloaded accessors for Person,
-- Room and Team.
--
--
-- makeFields ''Person
-- makeFields ''Room
-- makeFields ''Team
--
--
-- You can access personId, roomId and teamId via
-- overloaded accessor function id like this.
--
--
-- let yourPersonId = yourPerson ^. id
-- yourRoomId = yourRoom ^. id
-- yourTeamId = yourTeam ^. id
--
--
-- This package does not provide pre-generated lenses for you because not
-- everyone need it but you can make it by yourself so easily as
-- described.
module Network.WebexTeams
-- | Convert given filter condition parameter in a concrete type to HTTP
-- query strings.
class (WebexTeamsApiPath a, WebexTeamsResponse a) => WebexTeamsFilter a
-- | WebexTeamsListItem is a type class grouping types with following
-- common usage.
--
--
-- - It is used for return value of get-detail APIs.
-- - It is used for element of return value of list APIs.
--
--
-- WebexTeamsListItem also associates the above type to wrapping list
-- type (e.g. associates Person to PersonList). Wrapping
-- type (PersonList in this case) is necessary for parsing JSON from REST
-- API but what we are interested in is bare list such like [Person].
-- Type family association defined in this class is used for type
-- translation from type of items to type of wrapper.
class FromJSON (ToList i) => WebexTeamsListItem i
-- | Associate response type to input parameter type such as filter
-- criteria, entity key or create / update parameters.
type family ToResponse a :: *
-- | Authorization string against Webex Teams API to be contained in HTTP
-- Authorization header of every request.
newtype Authorization
Authorization :: ByteString -> Authorization
-- | Type synonym for backward compatibility.
type CiscoSparkRequest = WebexTeamsRequest
-- | Wrapping Request in order to provide easy default value
-- specifically for Webex Teams public API.
data WebexTeamsRequest
WebexTeamsRequest :: Request -> String -> URIAuth -> WebexTeamsRequest
-- | Holds pre-set Request for REST API.
[webexTeamsRequestRequest] :: WebexTeamsRequest -> Request
-- | Should be "https:" in production.
[webexTeamsRequestScheme] :: WebexTeamsRequest -> String
-- | Authority part of request URI.
[webexTeamsRequestAuthority] :: WebexTeamsRequest -> URIAuth
-- | Type representing timestamp. For now, it is just copied from API
-- response JSON.
newtype Timestamp
Timestamp :: Text -> Timestamp
-- | Error code for element level error potentially contained in List API
-- responses.
newtype ErrorCode
ErrorCode :: Text -> ErrorCode
-- | ErrorTitle represent concrete error code and reason. It appears
-- in Errors.
data ErrorTitle
ErrorTitle :: ErrorCode -> Text -> ErrorTitle
-- | Error code of element level error in List API response.
[errorTitleCode] :: ErrorTitle -> ErrorCode
-- | Reason explanation of the error.
[errorTitleReason] :: ErrorTitle -> Text
-- | Errors is used for element level error in List API. When list
-- API failed to retrieve an element, it returns this object for the
-- element and response API status as successful instead of failing
-- entire API request.
--
-- Refer to API Document for more detail.
newtype Errors
Errors :: ErrorTitle -> Errors
[errorsTitle] :: Errors -> ErrorTitle
-- | Person is detail description of Webex Teams user or bot. Person
-- is decoded from response JSON of Get Person Details REST call. It is
-- also element type of response of List People call.
data Person
Person :: PersonId -> Maybe Errors -> Maybe [Email] -> Maybe DisplayName -> Maybe NickName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> Maybe Timestamp -> Maybe Timezone -> Maybe Timestamp -> Maybe PersonStatus -> Maybe Bool -> Maybe Bool -> Maybe PersonType -> Person
-- | Identifier of the Person.
[personId] :: Person -> PersonId
-- | Element level error possibly contained in List API response.
[personErrors] :: Person -> Maybe Errors
-- | List of email addresses which the Person has.
[personEmails] :: Person -> Maybe [Email]
-- | Display name of the Person.
[personDisplayName] :: Person -> Maybe DisplayName
-- | Nickname of the Person.
[personNickName] :: Person -> Maybe NickName
-- | First name of the Person.
[personFirstName] :: Person -> Maybe FirstName
-- | Last name of the Person.
[personLastName] :: Person -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[personAvatar] :: Person -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[personOrgId] :: Person -> Maybe OrganizationId
-- | List of roles assigned to the Person.
[personRoles] :: Person -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[personLicenses] :: Person -> Maybe [LicenseId]
-- | Timestamp when the Person was created.
[personCreated] :: Person -> Maybe Timestamp
-- | Timezone of the Person.
[personTimezone] :: Person -> Maybe Timezone
-- | Timestamp of the latest activity of the Person.
[personLastActivity] :: Person -> Maybe Timestamp
-- | Current status of the Person
[personStatus] :: Person -> Maybe PersonStatus
-- | True if invitation for the Person is pending.
[personInvitePending] :: Person -> Maybe Bool
-- | True if login of the Person is enabled.
[personLoginEnabled] :: Person -> Maybe Bool
-- | Indicating if the Person is real human or bot.
[personType] :: Person -> Maybe PersonType
-- | Identifying Person describing detail of Webex Teams user or
-- bot.
newtype PersonId
PersonId :: Text -> PersonId
-- | Email address of user.
newtype Email
Email :: Text -> Email
-- | Display name of user.
newtype DisplayName
DisplayName :: Text -> DisplayName
-- | Nickname of user.
newtype NickName
NickName :: Text -> NickName
-- | First name of user.
newtype FirstName
FirstName :: Text -> FirstName
-- | Last name of user.
newtype LastName
LastName :: Text -> LastName
-- | URL pointing to image file of Avatar.
newtype AvatarUrl
AvatarUrl :: Text -> AvatarUrl
-- | Timezone in timezone name.
newtype Timezone
Timezone :: Text -> Timezone
-- | Current status of Person. It can be updated automatically by
-- recent activity or explicitly updated by user's operation or
-- propagated from vacation setting on email system.
data PersonStatus
-- | The Person is currently active. Decoded from "active".
PersonStatusActive :: PersonStatus
-- | The Person is currently not active. Decoded from "inactive".
PersonStatusInactive :: PersonStatus
-- | Email system of the Person currently sets vacation. Decoded
-- from "OutOfOffice".
PersonStatusOutOfOffice :: PersonStatus
-- | The Person is explicitly indicated do-not-disturb. Decoded from
-- "DoNotDisturb".
PersonStatusDoNotDisturb :: PersonStatus
-- | The status of the Person is unknown. Decoded from "unknown".
PersonStatusUnknown :: PersonStatus
-- | PersonType indicates whether the Person is real human or bot.
data PersonType
-- | The Person is a real human. Decoded from "person".
PersonTypePerson :: PersonType
-- | The Person is a bot. Decoded from "bot".
PersonTypeBot :: PersonType
-- | PersonList is decoded from response JSON of List People REST
-- call. It is list of Person.
newtype PersonList
PersonList :: [Person] -> PersonList
[personListItems] :: PersonList -> [Person]
-- | Optional query strings for people list API.
data PersonFilter
PersonFilter :: Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> PersonFilter
-- | Find person who has given email address.
[personFilterEmail] :: PersonFilter -> Maybe Email
-- | Find person who has given display name.
[personFilterDisplayName] :: PersonFilter -> Maybe DisplayName
-- | Find person who belongs to given organization.
[personFilterOrgId] :: PersonFilter -> Maybe OrganizationId
-- | CreatePerson is encoded to request body JSON of Create a Person
-- REST call.
data CreatePerson
CreatePerson :: Maybe [Email] -> Maybe DisplayName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> CreatePerson
-- | List of email addresses which the Person has.
[createPersonEmails] :: CreatePerson -> Maybe [Email]
-- | Display name of the Person.
[createPersonDisplayName] :: CreatePerson -> Maybe DisplayName
-- | First name of the Person.
[createPersonFirstName] :: CreatePerson -> Maybe FirstName
-- | Last name of the Person.
[createPersonLastName] :: CreatePerson -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[createPersonAvatar] :: CreatePerson -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[createPersonOrgId] :: CreatePerson -> Maybe OrganizationId
-- | List of roles assigned to the person.
[createPersonRoles] :: CreatePerson -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[createPersonLicenses] :: CreatePerson -> Maybe [LicenseId]
-- | UpdatePerson is encoded to request body JSON of Update a Person
-- REST call.
data UpdatePerson
UpdatePerson :: Maybe DisplayName -> Maybe FirstName -> Maybe LastName -> Maybe AvatarUrl -> Maybe OrganizationId -> Maybe [RoleId] -> Maybe [LicenseId] -> UpdatePerson
-- | Display name of the Person.
[updatePersonDisplayName] :: UpdatePerson -> Maybe DisplayName
-- | First name of the Person.
[updatePersonFirstName] :: UpdatePerson -> Maybe FirstName
-- | Last name of the Person.
[updatePersonLastName] :: UpdatePerson -> Maybe LastName
-- | URL pointing a image used for Avatar of the Person.
[updatePersonAvatar] :: UpdatePerson -> Maybe AvatarUrl
-- | Organization which the Person belongs to.
[updatePersonOrgId] :: UpdatePerson -> Maybe OrganizationId
-- | List of roles assigned to the person.
[updatePersonRoles] :: UpdatePerson -> Maybe [RoleId]
-- | List of licenses effective on the Person.
[updatePersonLicenses] :: UpdatePerson -> Maybe [LicenseId]
-- | Room is communication space in Webex Teams and called "Space"
-- on UI. Historically it was called Room on UI too but UI has been
-- changed to "Space" in order to avoid confusion with the concept "Room"
-- associated to hardware facility of video conferencing on Webex Teams.
-- The name of Room is kept unchanged for backward compatibility.
--
-- Room is decoded from response JSON of Get Room Details REST call. It
-- is also element type of response of List Rooms call.
data Room
Room :: RoomId -> Maybe Errors -> Maybe RoomTitle -> Maybe RoomType -> Maybe Bool -> Maybe SipAddr -> Maybe Timestamp -> Maybe TeamId -> Maybe PersonId -> Maybe Timestamp -> Room
-- | Identifier of the Room.
[roomId] :: Room -> RoomId
-- | Element level error possibly contained in List API response.
[roomErrors] :: Room -> Maybe Errors
-- | Title text of the Room.
[roomTitle] :: Room -> Maybe RoomTitle
-- | Indicates if the Room is for 1:1 or group.
[roomType] :: Room -> Maybe RoomType
-- | True if the Room is locked.
[roomIsLocked] :: Room -> Maybe Bool
-- | SIP address of the Room.
[roomSipAddress] :: Room -> Maybe SipAddr
-- | Timestamp when the last activity was happen on the Room.
[roomLastActivity] :: Room -> Maybe Timestamp
-- | Identifier of the Team which the Room belongs to.
[roomTeamId] :: Room -> Maybe TeamId
-- | Identifier of Person who created the Room.
[roomCreatorId] :: Room -> Maybe PersonId
-- | Timestamp when the Room was created.
[roomCreated] :: Room -> Maybe Timestamp
-- | Identifying Room.
newtype RoomId
RoomId :: Text -> RoomId
-- | Title text of Room.
newtype RoomTitle
RoomTitle :: Text -> RoomTitle
-- | RoomType indicates if the Room is for 1:1 user or group
-- of users.
data RoomType
-- | The Room is for 1:1. Decoded from "direct".
RoomTypeDirect :: RoomType
-- | The Room is for group. Decoded from "group".
RoomTypeGroup :: RoomType
-- | SIP address.
newtype SipAddr
SipAddr :: Text -> SipAddr
-- | RoomList is decoded from response JSON of List Rooms REST call.
-- It is list of Room.
newtype RoomList
RoomList :: [Room] -> RoomList
[roomListItems] :: RoomList -> [Room]
-- | Optional query strings for room list API
data RoomFilter
RoomFilter :: Maybe TeamId -> Maybe RoomType -> Maybe RoomFilterSortBy -> RoomFilter
-- | List rooms only in given team.
[roomFilterTeamId] :: RoomFilter -> Maybe TeamId
-- | List given type rooms only.
[roomFilterRoomType] :: RoomFilter -> Maybe RoomType
-- | Sort response by given option.
[roomFilterSortBy] :: RoomFilter -> Maybe RoomFilterSortBy
-- | Sorting option for room list API.
data RoomFilterSortBy
RoomFilterSortById :: RoomFilterSortBy
RoomFilterSortByLastActivity :: RoomFilterSortBy
RoomFilterSortByCreated :: RoomFilterSortBy
-- | CreateRoom is encoded to request body JSON of Create a Room
-- REST call.
data CreateRoom
CreateRoom :: RoomTitle -> Maybe TeamId -> CreateRoom
-- | Title text of newly created Room.
[createRoomTitle] :: CreateRoom -> RoomTitle
-- | Identifier of Team which the Room will belong to. If Nothing,
-- the new Room will be standalone.
[createRoomTeamId] :: CreateRoom -> Maybe TeamId
-- | UpdateRoom is encoded to request body JSON of Update a Room
-- REST call.
newtype UpdateRoom
UpdateRoom :: RoomTitle -> UpdateRoom
[updateRoomTitle] :: UpdateRoom -> RoomTitle
-- | Membership is association between Room and
-- Person. It can be N:N relation. A Person can belong to multiple
-- Room. Membership is decoded from response JSON of Get Membership
-- Details REST call. It is also element type of response of List
-- Memberships call.
data Membership
Membership :: MembershipId -> Maybe Errors -> Maybe RoomId -> Maybe PersonId -> Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> Maybe Bool -> Maybe Bool -> Maybe Timestamp -> Membership
-- | Identifier of the Membership entry.
[membershipId] :: Membership -> MembershipId
-- | Element level error possibly contained in List API response.
[membershipErrors] :: Membership -> Maybe Errors
-- | Identifier of the Room associated to the Person
[membershipRoomId] :: Membership -> Maybe RoomId
-- | Identifier of the Person associated to the Room
[membershipPersonId] :: Membership -> Maybe PersonId
-- | Email of the Person
[membershipPersonEmail] :: Membership -> Maybe Email
-- | Display name of the Person
[membershipPersonDisplayName] :: Membership -> Maybe DisplayName
-- | Identifier of Organization which the Person belongs to.
[membershipPersonOrgId] :: Membership -> Maybe OrganizationId
-- | True if the Person is a moderator of the room.
[membershipIsModerator] :: Membership -> Maybe Bool
-- | True if the Person is monitoring the Room.
[membershipIsMonitor] :: Membership -> Maybe Bool
-- | Timestamp when the Membership was created.
[membershipCreated] :: Membership -> Maybe Timestamp
-- | Identifying Membership.
newtype MembershipId
MembershipId :: Text -> MembershipId
-- | MembershipList is decoded from response JSON of List
-- Memberships REST call. It is list of Membership.
newtype MembershipList
MembershipList :: [Membership] -> MembershipList
[membershipListItems] :: MembershipList -> [Membership]
-- | Optional query strings for room membership list API
data MembershipFilter
MembershipFilter :: Maybe RoomId -> Maybe PersonId -> Maybe Email -> MembershipFilter
-- | List membership only in given room.
[membershipFilterRoomId] :: MembershipFilter -> Maybe RoomId
-- | List membership related to given person of personId.
[membershipFilterPersonId] :: MembershipFilter -> Maybe PersonId
-- | List membership related to given person of email.
[membershipFilterPersonEmail] :: MembershipFilter -> Maybe Email
-- | CreateMembership is encoded to request body JSON of Create a
-- Membership REST call.
data CreateMembership
CreateMembership :: RoomId -> Maybe PersonId -> Maybe Email -> Maybe Bool -> CreateMembership
-- | Identifier of Room which the Person will be added to.
[createMembershipRoomId] :: CreateMembership -> RoomId
-- | Identifier of Person who will be added to the Room.
[createMembershipPersonId] :: CreateMembership -> Maybe PersonId
-- | Email of the Person to be added.
[createMembershipPersonEmail] :: CreateMembership -> Maybe Email
-- | The Person becomes a moderator of the Room if True.
[createMembershipIsModerator] :: CreateMembership -> Maybe Bool
-- | UpdateMembership is encoded to request body JSON of Update a
-- Membership REST call.
newtype UpdateMembership
UpdateMembership :: Bool -> UpdateMembership
[updateMembershipIsModerator] :: UpdateMembership -> Bool
-- | Message is a message posted to a Room by some
-- Person. Room is decoded from response JSON of Get Message
-- Details REST call. It is also element type of response of List
-- Messages call.
data Message
Message :: MessageId -> Maybe Errors -> Maybe RoomId -> Maybe RoomType -> Maybe PersonId -> Maybe Email -> Maybe MessageText -> Maybe MessageHtml -> Maybe [FileUrl] -> Maybe PersonId -> Maybe Email -> Maybe Timestamp -> Maybe [PersonId] -> Message
-- | Identifier of the Message.
[messageId] :: Message -> MessageId
-- | Element level error possibly contained in List API response.
[messageErrors] :: Message -> Maybe Errors
-- | Identifier of the room where the Message was sent.
[messageRoomId] :: Message -> Maybe RoomId
-- | Type of Room the message was sent to.
[messageRoomType] :: Message -> Maybe RoomType
-- | Presents in documentation but doesn't appear in actual API response.
[messageToPersonId] :: Message -> Maybe PersonId
-- | Presents in documentation but doesn't appear in actual API response.
[messageToPersonEmail] :: Message -> Maybe Email
-- | Message body in plain text.
[messageText] :: Message -> Maybe MessageText
-- | Message body in HTML.
[messageHtml] :: Message -> Maybe MessageHtml
-- | URL to files attached to the message.
[messageFiles] :: Message -> Maybe [FileUrl]
-- | Identifier of Person who sent the message.
[messagePersonId] :: Message -> Maybe PersonId
-- | Email of Person who sent the message.
[messagePersonEmail] :: Message -> Maybe Email
-- | Timestamp when the massage was sent.
[messageCreated] :: Message -> Maybe Timestamp
-- | List of identifiers of Person were mentioned in the message.
[messageMentionedPeople] :: Message -> Maybe [PersonId]
-- | Identifying Message.
newtype MessageId
MessageId :: Text -> MessageId
-- | Body of message in plain text.
newtype MessageText
MessageText :: Text -> MessageText
-- | Body of message in html.
newtype MessageHtml
MessageHtml :: Text -> MessageHtml
-- | Body of message in markdown.
newtype MessageMarkdown
MessageMarkdown :: Text -> MessageMarkdown
-- | URL pointing attached file of message.
newtype FileUrl
FileUrl :: Text -> FileUrl
-- | MessageList is decoded from response JSON of List Messages REST
-- call. It is list of Message.
newtype MessageList
MessageList :: [Message] -> MessageList
[messageListItems] :: MessageList -> [Message]
-- | Optional query strings for message list API
data MessageFilter
MessageFilter :: RoomId -> Maybe MentionedPeople -> Maybe Timestamp -> Maybe MessageId -> MessageFilter
-- | Mandatory parameter which room to search.
[messageFilterRoomId] :: MessageFilter -> RoomId
-- | List messages only mentioned to given person.
[messageFilterMentionedPeople] :: MessageFilter -> Maybe MentionedPeople
-- | List messages posted before given timestamp.
[messageFilterBefore] :: MessageFilter -> Maybe Timestamp
-- | List messages posted before given message.
[messageFilterBeforeMessage] :: MessageFilter -> Maybe MessageId
-- | Sum type for mentionedPeople query string. It can be "me" or
-- PersonId.
data MentionedPeople
MentionedPeopleMe :: MentionedPeople
MentionedPeople :: PersonId -> MentionedPeople
-- | CreateMessage is encoded to request body JSON of Create a
-- Message REST call.
data CreateMessage
CreateMessage :: Maybe RoomId -> Maybe PersonId -> Maybe Email -> Maybe MessageText -> Maybe MessageMarkdown -> Maybe [FileUrl] -> CreateMessage
-- | Identifier of the Room the message will be posted to.
[createMessageRoomId] :: CreateMessage -> Maybe RoomId
-- | Identifier of the Person to whom the direct message will be
-- sent.
[createMessageToPersonId] :: CreateMessage -> Maybe PersonId
-- | Email of Person who receives the Message.
[createMessageToPersonEmail] :: CreateMessage -> Maybe Email
-- | Message body in plain text.
[createMessageText] :: CreateMessage -> Maybe MessageText
-- | Message body in markdown format.
[createMessageMarkdown] :: CreateMessage -> Maybe MessageMarkdown
-- | URLs of Attached files to the message.
[createMessageFiles] :: CreateMessage -> Maybe [FileUrl]
-- | Name of Team
newtype TeamName
TeamName :: Text -> TeamName
-- | Identifying Team.
newtype TeamId
TeamId :: Text -> TeamId
-- | Team is group of Person and group of Room. A
-- Person can belong to multiple Team but a Room can belong to at most
-- one Team. Team is decoded from response JSON of Get Team Details REST
-- call. It is also element type of response of List Teams call.
data Team
Team :: TeamId -> Maybe Errors -> Maybe TeamName -> Maybe PersonId -> Maybe Timestamp -> Team
-- | Identifier of the Team.
[teamId] :: Team -> TeamId
-- | Element level error possibly contained in List API response.
[teamErrors] :: Team -> Maybe Errors
-- | Name of the Team.
[teamName] :: Team -> Maybe TeamName
-- | Identifier of the Person who created the Team.
[teamCreatorId] :: Team -> Maybe PersonId
-- | Timestamp when the Team was created.
[teamCreated] :: Team -> Maybe Timestamp
-- | TeamList is decoded from response JSON of List Teams REST call.
-- It is list of Team.
newtype TeamList
TeamList :: [Team] -> TeamList
[teamListItems] :: TeamList -> [Team]
-- | CreateTeam is encoded to request body JSON of Create a Team
-- REST call.
newtype CreateTeam
CreateTeam :: TeamName -> CreateTeam
[createTeamName] :: CreateTeam -> TeamName
-- | UpdateTeam is encoded to request body JSON of Update a Team
-- REST call.
newtype UpdateTeam
UpdateTeam :: TeamName -> UpdateTeam
[updateTeamName] :: UpdateTeam -> TeamName
-- | TeamMembership is association between Team and
-- Person. It can be N:N relation. A Person can belong to multiple
-- Team. TeamMembership is decoded from response JSON of Get Team
-- Membership Details REST call. It is also element type of response of
-- List Team Memberships call.
data TeamMembership
TeamMembership :: TeamMembershipId -> Maybe Errors -> Maybe TeamId -> Maybe PersonId -> Maybe Email -> Maybe DisplayName -> Maybe OrganizationId -> Maybe Bool -> Maybe Timestamp -> TeamMembership
-- | Identifier of the TeamMembership entry.
[teamMembershipId] :: TeamMembership -> TeamMembershipId
-- | Element level error possibly contained in List API response.
[teamMembershipErrors] :: TeamMembership -> Maybe Errors
-- | Identifier of the Team which the Person belongs to.
[teamMembershipTeamId] :: TeamMembership -> Maybe TeamId
-- | Identifier of user who belongs to the Team.
[teamMembershipPersonId] :: TeamMembership -> Maybe PersonId
-- | Email address of the user identified by the PersonId.
[teamMembershipPersonEmail] :: TeamMembership -> Maybe Email
-- | Display name of the user identified by the PersonId.
[teamMembershipPersonDisplayName] :: TeamMembership -> Maybe DisplayName
-- | Identifier of Organization which the Team blongs to.
[teamMembershipPersonOrgId] :: TeamMembership -> Maybe OrganizationId
-- | The Person is moderator of the Team when True.
[teamMembershipIsModerator] :: TeamMembership -> Maybe Bool
-- | Timestamp when the TeamMembership entry created.
[teamMembershipCreated] :: TeamMembership -> Maybe Timestamp
-- | Identifying TeamMembership.
newtype TeamMembershipId
TeamMembershipId :: Text -> TeamMembershipId
-- | TeamMembershipList is decoded from response JSON of List Team
-- Memberships REST call. It is list of TeamMembership.
newtype TeamMembershipList
TeamMembershipList :: [TeamMembership] -> TeamMembershipList
[teamMembershipListItems] :: TeamMembershipList -> [TeamMembership]
-- | Optional query strings for team membership list API
newtype TeamMembershipFilter
TeamMembershipFilter :: TeamId -> TeamMembershipFilter
-- | List membership only in given team.
[teamMembershipFilterTeamId] :: TeamMembershipFilter -> TeamId
-- | CreateTeamMembership is encoded to request body JSON of Create
-- a Team Membership REST call.
data CreateTeamMembership
CreateTeamMembership :: TeamId -> Maybe PersonId -> Maybe Email -> Maybe Bool -> CreateTeamMembership
-- | Identifier of Team which the user will be added to.
[createTeamMembershipTeamId] :: CreateTeamMembership -> TeamId
-- | Identifier of Person who will be added to the Team.
[createTeamMembershipPersonId] :: CreateTeamMembership -> Maybe PersonId
-- | Email of the Person to be added.
[createTeamMembershipPersonEmail] :: CreateTeamMembership -> Maybe Email
-- | The user becomes a moderator of the team if True.
[createTeamMembershipIsModerator] :: CreateTeamMembership -> Maybe Bool
-- | UpdateTeamMembership is encoded to request body JSON of Update
-- a Team Membership REST call.
newtype UpdateTeamMembership
UpdateTeamMembership :: Bool -> UpdateTeamMembership
[updateTeamMembershipIsModerator] :: UpdateTeamMembership -> Bool
-- | Organization is an administrative group of Webex Teams users.
-- Each Person belongs to one Organization. Organization is
-- decoded from response JSON of Get Organization Details REST call. It
-- is also element type of response of List Organizations call.
data Organization
Organization :: OrganizationId -> Maybe Errors -> Maybe OrganizationDisplayName -> Maybe Timestamp -> Organization
-- | Identifier of the Organization.
[organizationId] :: Organization -> OrganizationId
-- | Element level error possibly contained in List API response.
[organizationErrors] :: Organization -> Maybe Errors
-- | Display name of the Organization.
[organizationDisplayName] :: Organization -> Maybe OrganizationDisplayName
-- | Timestamp when the Organization was created.
[organizationCreated] :: Organization -> Maybe Timestamp
-- | Organization identifier which user or team belongs to.
newtype OrganizationId
OrganizationId :: Text -> OrganizationId
-- | Display name of Organization
newtype OrganizationDisplayName
OrganizationDisplayName :: Text -> OrganizationDisplayName
-- | OrganizationList is decoded from response JSON of List
-- Organizations REST call. It is list of Organization.
newtype OrganizationList
OrganizationList :: [Organization] -> OrganizationList
[organizationListItems] :: OrganizationList -> [Organization]
-- | License is allowance for features and services of Webex Teams
-- subscription. License is decoded from response JSON of Get License
-- Details REST call. It is also element type of response of List
-- Licenses call.
data License
License :: LicenseId -> Maybe Errors -> Maybe LicenseName -> Maybe LicenseUnit -> Maybe LicenseUnit -> License
-- | Identifier of the License.
[licenseId] :: License -> LicenseId
-- | Element level error possibly contained in List API response.
[licenseErrors] :: License -> Maybe Errors
-- | Name of the License.
[licenseName] :: License -> Maybe LicenseName
-- | Number of granted License.
[licenseTotalUnits] :: License -> Maybe LicenseUnit
-- | Number of currently consumed License.
[licenseConsumedUnits] :: License -> Maybe LicenseUnit
-- | License identifier which can be enabled on user. See
-- License too.
newtype LicenseId
LicenseId :: Text -> LicenseId
-- | Display name of License
newtype LicenseName
LicenseName :: Text -> LicenseName
-- | Counting number of granted or consumed License
newtype LicenseUnit
LicenseUnit :: Integer -> LicenseUnit
-- | LicenseList is decoded from response JSON of List Licenses REST
-- call. It is list of License.
newtype LicenseList
LicenseList :: [License] -> LicenseList
[licenseListItems] :: LicenseList -> [License]
-- | Optional query strings for license list API
newtype LicenseFilter
LicenseFilter :: Maybe OrganizationId -> LicenseFilter
-- | List licenses only applicable to given organization.
[licenseFilterOrgId] :: LicenseFilter -> Maybe OrganizationId
-- | A persona for an authenticated user, corresponding to a set of
-- privileges within an organization. Role is decoded from response JSON
-- of Get Role Details REST call. It is also element type of response of
-- List Roles call.
data Role
Role :: RoleId -> Maybe Errors -> Maybe RoleName -> Role
-- | Identifier of the Role
[roleId] :: Role -> RoleId
-- | Element level error possibly contained in List API response.
[roleErrors] :: Role -> Maybe Errors
-- | Name of the Role
[roleName] :: Role -> Maybe RoleName
-- | Role identifier which can be assigned to user. See Role
-- too.
newtype RoleId
RoleId :: Text -> RoleId
-- | Name of Role.
newtype RoleName
RoleName :: Text -> RoleName
-- | RoleList is decoded from response JSON of List Role REST call.
-- It is list of Role.
newtype RoleList
RoleList :: [Role] -> RoleList
[roleListItems] :: RoleList -> [Role]
-- | Get details of a Webex Teams entity.
--
-- Obtaining detail of an entity identified by key. The key can be a
-- value in one of following types: PersonId, RoomId,
-- MembershipId, MessageId, TeamId,
-- TeamMembershipId, OrganizationId, LicenseId,
-- RoleId. API is automatically selected by type of the key. A
-- JSONException runtime exception will be thrown on an JSON parse
-- errors.
getDetail :: (MonadIO m, WebexTeamsDetail key) => Authorization -> WebexTeamsRequest -> key -> m (Response (ToResponse key))
-- | Get details of a Webex Teams entity. A Left value will be returned on
-- an JSON parse errors.
getDetailEither :: (MonadIO m, WebexTeamsDetail key) => Authorization -> WebexTeamsRequest -> key -> m (Response (Either JSONException (ToResponse key)))
-- | ListReader is IO action returned by functions for list API
-- (getListWithFilter, getTeamList etc). It is containing
-- URL inside to be accessed. When you call the IO action, it accesses to
-- Webex Teams REST API, parse next page URL if available, then return
-- new IO action. The new IO action contains list of responded items and
-- new URL for next page so you can call the new IO action to get the
-- next page.
--
-- Following example demonstrates how you can get all items into single
-- list.
--
--
-- readAllList :: ListReader i -> IO [i]
-- readAllList reader = go []
-- where
-- go xs = reader >>= chunk -> case chunk of
-- [] -> pure xs
-- ys -> go (xs <> ys)
--
--
-- Note that this example is only for explaining how ListReader
-- works. Practically you should not do the above because it eagerly
-- creates entire list. You should use streaming APIs instead. Streaming
-- APIs are available via webex-teams-conduit and webex-teams-pipes
-- package.
type ListReader a = IO [a]
-- | Get list with query parameter.
getListWithFilter :: (MonadIO m, WebexTeamsFilter filter, WebexTeamsListItem (ToResponse filter)) => Authorization -> WebexTeamsRequest -> filter -> m (ListReader (ToResponse filter))
-- | Return ListReader for Team.
getTeamList :: MonadIO m => Authorization -> WebexTeamsRequest -> m (ListReader Team)
-- | Return ListReader for Team.
getOrganizationList :: MonadIO m => Authorization -> WebexTeamsRequest -> m (ListReader Organization)
-- | Return ListReader for Team.
getRoleList :: MonadIO m => Authorization -> WebexTeamsRequest -> m (ListReader Role)
-- | Get list of entities with query parameter and stream it into Conduit
-- pipe. It automatically performs pagination.
-- | Deprecated: Use getListWithFilter or streamListWithFilter of
-- webex-teams-conduit
streamEntityWithFilter :: (MonadIO m, WebexTeamsFilter filter, WebexTeamsListItem (ToResponse filter)) => Authorization -> WebexTeamsRequest -> filter -> ConduitT () (ToResponse filter) m ()
-- | List of Team and stream it into Conduit pipe. It automatically
-- performs pagination.
-- | Deprecated: Use getTeamList or streamTeamList of
-- webex-teams-conduit
streamTeamList :: MonadIO m => Authorization -> WebexTeamsRequest -> ConduitT () Team m ()
-- | Filter list of Organization and stream it into Conduit pipe. It
-- automatically performs pagination.
-- | Deprecated: Use getOrganizationList or streamOrganizationList of
-- webex-teams-conduit
streamOrganizationList :: MonadIO m => Authorization -> WebexTeamsRequest -> ConduitT () Organization m ()
-- | List of Role and stream it into Conduit pipe. It automatically
-- performs pagination.
-- | Deprecated: Use getRoleList or streamRoleList of
-- webex-teams-conduit
streamRoleList :: MonadIO m => Authorization -> WebexTeamsRequest -> ConduitT () Role m ()
-- | Create a Webex Teams entity with given parameters.
--
-- Creating a new entity of Webex Teams such as space, team, membership
-- or message. REST API path is automatically selected by type of
-- createParams. A JSONException runtime exception will be thrown on an
-- JSON parse errors.
createEntity :: (MonadIO m, WebexTeamsCreate createParams) => Authorization -> WebexTeamsRequest -> createParams -> m (Response (ToResponse createParams))
-- | Create a Webex Teams entity with given parameters. A Left value will
-- be returned on an JSON parse errors.
createEntityEither :: (MonadIO m, WebexTeamsCreate createParams) => Authorization -> WebexTeamsRequest -> createParams -> m (Response (Either JSONException (ToResponse createParams)))
-- | Update a Webex Teams entity with given parameters.
--
-- Creating a new entity of Webex Teams such as space, team, or
-- membership. REST API path is automatically selected by type of
-- updateParams. A JSONException runtime exception will be thrown on an
-- JSON parse errors.
updateEntity :: (MonadIO m, WebexTeamsUpdate updateParams) => Authorization -> WebexTeamsRequest -> updateParams -> m (Response (ToResponse updateParams))
-- | Update a Webex Teams entity with given parameters. A Left value will
-- be returned on an JSON parse errors.
updateEntityEither :: (MonadIO m, WebexTeamsUpdate updateParams) => Authorization -> WebexTeamsRequest -> updateParams -> m (Response (Either JSONException (ToResponse updateParams)))
-- | Default value of query strings for message list API. Because
-- RoomId is mandatory, user have to supply it in order to get
-- rest of defaults.
defaultMessageFilter :: RoomId -> MessageFilter
-- | Default value of query strings for team membership list API. Because
-- TeamId is mandatory, user have to supply it in order to get
-- rest of defaults. As of writing, there is no filter parameter other
-- than TeamId but TeamMembershipFilter is used for providing
-- consistent API like streamEntityWithFilter.
defaultTeamMembershipFilter :: TeamId -> TeamMembershipFilter
-- | Deletes a room, by ID.
deleteRoom :: MonadIO m => Authorization -> WebexTeamsRequest -> RoomId -> m (Response ())
-- | Deletes a membership, by ID.
deleteMembership :: MonadIO m => Authorization -> WebexTeamsRequest -> MembershipId -> m (Response ())
-- | Deletes a message, by ID.
deleteMessage :: MonadIO m => Authorization -> WebexTeamsRequest -> MessageId -> m (Response ())
-- | Deletes a team, by ID.
deleteTeam :: MonadIO m => Authorization -> WebexTeamsRequest -> TeamId -> m (Response ())
-- | Deletes a teamMembership, by ID.
deleteTeamMembership :: MonadIO m => Authorization -> WebexTeamsRequest -> TeamMembershipId -> m (Response ())
instance GHC.Show.Show Network.WebexTeams.WebexTeamsRequest
instance GHC.Show.Show Network.WebexTeams.Authorization
instance GHC.Classes.Eq Network.WebexTeams.Authorization
instance Data.Default.Class.Default Network.WebexTeams.WebexTeamsRequest
-- | Deprecated: Use Network.WebexTeams
module Network.CiscoSpark
-- | Deprecated: Use Network.WebexTeams.Types
module Network.CiscoSpark.Types