Copyright | (c) Naoto Shimazaki 2017 |
---|---|
License | MIT (see the file LICENSE) |
Maintainer | https://github.com/nshimaza |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
This module defines most of types and records used in cisco-spark-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.
- peoplePath :: ByteString
- roomsPath :: ByteString
- membershipsPath :: ByteString
- messagesPath :: ByteString
- teamsPath :: ByteString
- teamMembershipsPath :: ByteString
- organizationsPath :: ByteString
- licensesPath :: ByteString
- rolesPath :: ByteString
- webhooksPath :: ByteString
- class FromJSON (ToList i) => SparkListItem i where
- class SparkApiPath a where
- class FromJSON (ToResponse a) => SparkResponse a where
- type ToResponse a :: *
- class (SparkApiPath a, SparkResponse a) => SparkDetail a where
- class (SparkApiPath a, SparkResponse a) => SparkFilter a where
- class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkCreate a
- class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkUpdate a
- newtype Timestamp = Timestamp Text
- newtype ErrorCode = ErrorCode Text
- data ErrorTitle = ErrorTitle {}
- newtype Errors = Errors {}
- newtype PersonId = PersonId Text
- newtype Email = Email Text
- newtype DisplayName = DisplayName Text
- newtype NickName = NickName Text
- newtype FirstName = FirstName Text
- newtype LastName = LastName Text
- newtype AvatarUrl = AvatarUrl Text
- newtype OrganizationId = OrganizationId Text
- newtype RoleId = RoleId Text
- newtype LicenseId = LicenseId Text
- newtype Timezone = Timezone Text
- data PersonStatus
- data PersonType
- data Person = Person {
- personId :: PersonId
- personErrors :: Maybe Errors
- personEmails :: Maybe [Email]
- personDisplayName :: Maybe DisplayName
- personNickName :: Maybe NickName
- personFirstName :: Maybe FirstName
- personLastName :: Maybe LastName
- personAvatar :: Maybe AvatarUrl
- personOrgId :: Maybe OrganizationId
- personRoles :: Maybe [RoleId]
- personLicenses :: Maybe [LicenseId]
- personCreated :: Maybe Timestamp
- personTimezone :: Maybe Timezone
- personLastActivity :: Maybe Timestamp
- personStatus :: Maybe PersonStatus
- personInvitePending :: Maybe Bool
- personLoginEnabled :: Maybe Bool
- personType :: Maybe PersonType
- newtype PersonList = PersonList {
- personListItems :: [Person]
- data PersonFilter = PersonFilter {}
- data CreatePerson = CreatePerson {
- createPersonEmails :: Maybe [Email]
- createPersonDisplayName :: Maybe DisplayName
- createPersonFirstName :: Maybe FirstName
- createPersonLastName :: Maybe LastName
- createPersonAvatar :: Maybe AvatarUrl
- createPersonOrgId :: Maybe OrganizationId
- createPersonRoles :: Maybe [RoleId]
- createPersonLicenses :: Maybe [LicenseId]
- data UpdatePerson = UpdatePerson {}
- newtype TeamId = TeamId Text
- newtype TeamName = TeamName Text
- data Team = Team {}
- newtype TeamList = TeamList {
- teamListItems :: [Team]
- newtype CreateTeam = CreateTeam {}
- newtype UpdateTeam = UpdateTeam {}
- newtype TeamMembershipId = TeamMembershipId Text
- data TeamMembership = TeamMembership {
- teamMembershipId :: TeamMembershipId
- teamMembershipErrors :: Maybe Errors
- teamMembershipTeamId :: Maybe TeamId
- teamMembershipPersonId :: Maybe PersonId
- teamMembershipPersonEmail :: Maybe Email
- teamMembershipPersonDisplayName :: Maybe DisplayName
- teamMembershipPersonOrgId :: Maybe OrganizationId
- teamMembershipIsModerator :: Maybe Bool
- teamMembershipCreated :: Maybe Timestamp
- newtype TeamMembershipList = TeamMembershipList {}
- newtype TeamMembershipFilter = TeamMembershipFilter {}
- defaultTeamMembershipFilter :: TeamId -> TeamMembershipFilter
- data CreateTeamMembership = CreateTeamMembership {}
- newtype UpdateTeamMembership = UpdateTeamMembership {}
- newtype RoomId = RoomId Text
- newtype RoomTitle = RoomTitle Text
- newtype SipAddr = SipAddr Text
- data RoomType
- data Room = Room {}
- newtype RoomList = RoomList {
- roomListItems :: [Room]
- data RoomFilterSortBy
- data RoomFilter = RoomFilter {}
- roomTypeToFilterString :: RoomType -> ByteString
- roomFilterSortByToFilterString :: RoomFilterSortBy -> ByteString
- data CreateRoom = CreateRoom {}
- newtype UpdateRoom = UpdateRoom {}
- newtype MembershipId = MembershipId Text
- data Membership = Membership {
- membershipId :: MembershipId
- membershipErrors :: Maybe Errors
- membershipRoomId :: Maybe RoomId
- membershipPersonId :: Maybe PersonId
- membershipPersonEmail :: Maybe Email
- membershipPersonDisplayName :: Maybe DisplayName
- membershipPersonOrgId :: Maybe OrganizationId
- membershipIsModerator :: Maybe Bool
- membershipIsMonitor :: Maybe Bool
- membershipCreated :: Maybe Timestamp
- newtype MembershipList = MembershipList {}
- data MembershipFilter = MembershipFilter {}
- data CreateMembership = CreateMembership {}
- newtype UpdateMembership = UpdateMembership {}
- newtype MessageId = MessageId Text
- newtype MessageText = MessageText Text
- newtype MessageHtml = MessageHtml Text
- newtype MessageMarkdown = MessageMarkdown Text
- newtype FileUrl = FileUrl Text
- data Message = Message {
- messageId :: MessageId
- messageErrors :: Maybe Errors
- messageRoomId :: Maybe RoomId
- messageRoomType :: Maybe RoomType
- messageToPersonId :: Maybe PersonId
- messageToPersonEmail :: Maybe Email
- messageText :: Maybe MessageText
- messageHtml :: Maybe MessageHtml
- messageFiles :: Maybe [FileUrl]
- messagePersonId :: Maybe PersonId
- messagePersonEmail :: Maybe Email
- messageCreated :: Maybe Timestamp
- messageMentionedPeople :: Maybe [PersonId]
- newtype MessageList = MessageList {
- messageListItems :: [Message]
- data MentionedPeople
- data MessageFilter = MessageFilter {}
- defaultMessageFilter :: RoomId -> MessageFilter
- mentionedPeopleToFilterString :: MentionedPeople -> ByteString
- data CreateMessage = CreateMessage {}
- newtype OrganizationDisplayName = OrganizationDisplayName Text
- data Organization = Organization {}
- newtype OrganizationList = OrganizationList {}
- newtype LicenseName = LicenseName Text
- newtype LicenseUnit = LicenseUnit Integer
- data License = License {}
- newtype LicenseList = LicenseList {
- licenseListItems :: [License]
- newtype LicenseFilter = LicenseFilter {}
- newtype RoleName = RoleName Text
- data Role = Role {}
- newtype RoleList = RoleList {
- roleListItems :: [Role]
- newtype WebhookId = WebhookId Text
- newtype WebhookName = WebhookName Text
- newtype WebhookUrl = WebhookUrl Text
- newtype WebhookFilter = WebhookFilter Text
- newtype WebhookSecret = WebhookSecret Text
- data WebhookResource
- data WebhookEvent
- data Webhook = Webhook {}
- newtype WebhookList = WebhookList {
- webhookListItems :: [Webhook]
- data CreateWebhook = CreateWebhook {}
- data UpdateWebhook = UpdateWebhook {}
- data WebhookMembershipFilter = WebhookMembershipFilter {}
- data WebhookMessageFilter = WebhookMessageFilter {}
- data WebhookRoomFilter = WebhookRoomFilter {}
- newtype AppId = AppId Text
- data WebhookNotifyOwnedBy
- data WebhookNotifyStatus
- data WebhookNotify = WebhookNotify {
- webhookNotifyId :: WebhookId
- webhookNotifyName :: WebhookName
- webhookNotifyResource :: WebhookResource
- webhookNotifyEvent :: WebhookEvent
- webhookNotifyFilter :: WebhookFilter
- webhookNotifyOrgId :: Organization
- webhookNotifyCreatedBy :: PersonId
- webhookNotifyAppId :: AppId
- webhookNotifyOwnedBy :: WebhookNotifyOwnedBy
- webhookNotifyStatus :: WebhookNotifyStatus
- webhookNotifyActorId :: PersonId
- newtype WebhookNotifyMembership = WebhookNotifyMembership {}
- newtype WebhookNotifyMessage = WebhookNotifyMessage {}
- newtype WebhookNotifyRoom = WebhookNotifyRoom {}
Documentation
peoplePath :: ByteString Source #
URL path for people API.
roomsPath :: ByteString Source #
URL path for rooms API.
membershipsPath :: ByteString Source #
URL path for memberships API.
messagesPath :: ByteString Source #
URL path for messages API.
teamsPath :: ByteString Source #
URL path for teams API.
teamMembershipsPath :: ByteString Source #
URL path for team memberships API.
organizationsPath :: ByteString Source #
URL path for organizations API.
licensesPath :: ByteString Source #
URL path for licenes API.
rolesPath :: ByteString Source #
URL path for roles API.
webhooksPath :: ByteString Source #
URL path for webhooks API.
class FromJSON (ToList i) => SparkListItem i where Source #
SparkListItem 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.
SparkListItem 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.
unwrap :: ToList i -> [i] Source #
Get bare list from wrapped type which can be parsed directly from JSON.
class SparkApiPath a where Source #
Type class for getting URL path of API category from given type of value.
apiPath :: a -> ByteString Source #
SparkApiPath LicenseId Source # | Get detail for license API uses |
SparkApiPath RoleId Source # | Get detail for role API uses |
SparkApiPath OrganizationId Source # | Get detail for organization API uses |
SparkApiPath PersonId Source # | Get detail for a person API uses |
SparkApiPath CreatePerson Source # | Create person API uses |
SparkApiPath PersonFilter Source # | List people API uses |
SparkApiPath UpdatePerson Source # | Update person API uses |
SparkApiPath TeamId Source # | Get detail for a team API uses |
SparkApiPath CreateTeam Source # | Create team API uses |
SparkApiPath UpdateTeam Source # | Update team API uses |
SparkApiPath TeamMembershipId Source # | Get detail for a team membership API uses |
SparkApiPath CreateTeamMembership Source # | Create teamMembership API uses |
SparkApiPath TeamMembershipFilter Source # | List team memberships API uses |
SparkApiPath UpdateTeamMembership Source # | Update teamMembership API uses |
SparkApiPath RoomId Source # | Get detail for a room API uses |
SparkApiPath CreateRoom Source # | Create room API uses |
SparkApiPath RoomFilter Source # | List rooms API uses |
SparkApiPath UpdateRoom Source # | Update room API uses |
SparkApiPath MembershipId Source # | Get detail for a membership API uses |
SparkApiPath CreateMembership Source # | Create membership API uses |
SparkApiPath MembershipFilter Source # | List memberships API uses |
SparkApiPath UpdateMembership Source # | Update membership API uses |
SparkApiPath MessageId Source # | Get detail for message API uses |
SparkApiPath CreateMessage Source # | Create message API uses |
SparkApiPath MessageFilter Source # | List messages API uses |
SparkApiPath LicenseFilter Source # | List licenses API uses |
SparkApiPath WebhookId Source # | Get detail for webhook API uses |
SparkApiPath CreateWebhook Source # | Create webhook API uses |
SparkApiPath UpdateWebhook Source # | Update webhook API uses |
SparkApiPath WebhookRoomFilter Source # | Create webhook API accepts |
SparkApiPath WebhookMessageFilter Source # | Create webhook API accepts |
SparkApiPath WebhookMembershipFilter Source # | Create webhook API accepts |
class FromJSON (ToResponse a) => SparkResponse a Source #
Type family to associate a type appears in an argument to response type.
type ToResponse a :: * Source #
SparkResponse LicenseId Source # | Get detail for a license API uses "LicenseId' and responses |
SparkResponse RoleId Source # | Get detail for a role API uses "RoleId' and responses |
SparkResponse OrganizationId Source # | Get detail for a organization API uses "OrganizationId' and responses |
SparkResponse PersonId Source # | Get detail for a person API uses "PersonId' and responses |
SparkResponse CreatePerson Source # | Create person API uses "CreatePerson' and responses |
SparkResponse PersonFilter Source # | List people API uses |
SparkResponse UpdatePerson Source # | Update person API uses "UpdatePerson' and responses |
SparkResponse TeamId Source # | Get detail for a team API uses "TeamId' and responses |
SparkResponse CreateTeam Source # | Create team API uses "CreateTeam' and responses |
SparkResponse UpdateTeam Source # | Update team API uses "UpdateTeam' and responses |
SparkResponse TeamMembershipId Source # | Get detail for a team membership API uses "TeamMembershipId' and responses |
SparkResponse CreateTeamMembership Source # | Create teamMembership API uses "CreateTeamMembership' and responses |
SparkResponse TeamMembershipFilter Source # | List team memberships API uses |
SparkResponse UpdateTeamMembership Source # | Update teamMembership API uses "UpdateTeamMembership' and responses |
SparkResponse RoomId Source # | Get detail for a room API uses "RoomId' and responses |
SparkResponse CreateRoom Source # | Create room API uses "CreateRoom' and responses |
SparkResponse RoomFilter Source # | List rooms API uses |
SparkResponse UpdateRoom Source # | Update room API uses "UpdateRoom' and responses |
SparkResponse MembershipId Source # | Get detail for a membership API uses "MembershipId' and responses |
SparkResponse CreateMembership Source # | Create membership API uses "CreateMembership' and responses |
SparkResponse MembershipFilter Source # | List memberships API uses |
SparkResponse UpdateMembership Source # | Update membership API uses "UpdateMembership' and responses |
SparkResponse MessageId Source # | Get detail for a message API uses "MessageId' and responses |
SparkResponse CreateMessage Source # | Create message API uses "CreateMessage' and responses |
SparkResponse MessageFilter Source # | List messages API uses |
SparkResponse LicenseFilter Source # | List licenses API uses |
SparkResponse WebhookId Source # | Get detail for a webhook API uses "WebhookId' and responses |
SparkResponse CreateWebhook Source # | Create webhook API uses "CreateWebhook' and responses |
SparkResponse UpdateWebhook Source # | Update webhook API uses "UpdateWebhook' and responses |
SparkResponse WebhookRoomFilter Source # | List team memberships API accepts |
SparkResponse WebhookMessageFilter Source # | List team memberships API accepts |
SparkResponse WebhookMembershipFilter Source # | List team memberships API accepts |
class (SparkApiPath a, SparkResponse a) => SparkDetail a where Source #
Extract containing entity ID string from given type of value.
SparkDetail LicenseId Source # | User can get detail of a license. |
SparkDetail RoleId Source # | User can get detail of a role. |
SparkDetail OrganizationId Source # | User can get detail of a organization. |
SparkDetail PersonId Source # | User can get detail of a person. |
SparkDetail TeamId Source # | User can get detail of a team. |
SparkDetail TeamMembershipId Source # | User can get detail of a team membership. |
SparkDetail RoomId Source # | User can get detail of a room. |
SparkDetail MembershipId Source # | User can get detail of a membership. |
SparkDetail MessageId Source # | User can get detail of a message. |
SparkDetail WebhookId Source # | User can get detail of a webhook. |
class (SparkApiPath a, SparkResponse a) => SparkFilter a where Source #
Convert given filter condition parameter in a concrete type to HTTP query strings.
toFilterList :: a -> [(ByteString, Maybe ByteString)] Source #
SparkFilter PersonFilter Source # | User can list people with filter parameter. |
SparkFilter TeamMembershipFilter Source # | User can list team membership with filter parameter. |
SparkFilter RoomFilter Source # | User can list rooms with filter parameter. |
SparkFilter MembershipFilter Source # | User can list memberships with filter parameter. |
SparkFilter MessageFilter Source # | User can list messages with filter parameter. |
SparkFilter LicenseFilter Source # | User can list licenses with filter parameter. |
SparkFilter WebhookRoomFilter Source # | User can filter Webhook events from room. |
SparkFilter WebhookMessageFilter Source # | User can filter Webhook events from message. |
SparkFilter WebhookMembershipFilter Source # | User can filter Webhook events from membership. |
class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkCreate a Source #
Type class for parameter type for create entity API.
SparkCreate CreatePerson Source # | User can create a person. |
SparkCreate CreateTeam Source # | User can create a team. |
SparkCreate CreateTeamMembership Source # | User can create a teamMembership. |
SparkCreate CreateRoom Source # | User can create a room. |
SparkCreate CreateMembership Source # | User can create a membership. |
SparkCreate CreateMessage Source # | User can create a message. |
SparkCreate CreateWebhook Source # | User can create a webhook. |
class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkUpdate a Source #
Type class for parameter type for update entity API.
SparkUpdate UpdatePerson Source # | User can update a person. |
SparkUpdate UpdateTeam Source # | User can update a team. |
SparkUpdate UpdateTeamMembership Source # | User can update a teamMembership. |
SparkUpdate UpdateRoom Source # | User can update a room. |
SparkUpdate UpdateMembership Source # | User can update a membership. |
SparkUpdate UpdateWebhook Source # | User can update a webhook. |
Type representing timestamp. For now, it is just copied from API response JSON.
Error code for element level error potentially contained in List API responses.
data ErrorTitle Source #
ErrorTitle
represent concrete error code and reason. It appears in Errors
.
ErrorTitle | |
|
Eq ErrorTitle Source # | |
Show ErrorTitle Source # | |
ToJSON ErrorTitle Source # | |
FromJSON ErrorTitle Source # |
|
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.
Identifying Person
describing detail of Cisco Spark user or bot.
Eq PersonId Source # | |
Show PersonId Source # | |
Generic PersonId Source # | |
ToJSON PersonId Source # | |
FromJSON PersonId Source # | |
SparkDetail PersonId Source # | User can get detail of a person. |
SparkResponse PersonId Source # | Get detail for a person API uses "PersonId' and responses |
SparkApiPath PersonId Source # | Get detail for a person API uses |
type Rep PersonId Source # | |
type ToResponse PersonId Source # | |
Email address of user.
newtype DisplayName Source #
Display name of user.
Nickname of user.
First name of user.
Last name of user.
URL pointing to image file of Avatar.
newtype OrganizationId Source #
Organization
identifier which user or team belongs to.
Eq OrganizationId Source # | |
Show OrganizationId Source # | |
Generic OrganizationId Source # | |
ToJSON OrganizationId Source # | |
FromJSON OrganizationId Source # | |
SparkDetail OrganizationId Source # | User can get detail of a organization. |
SparkResponse OrganizationId Source # | Get detail for a organization API uses "OrganizationId' and responses |
SparkApiPath OrganizationId Source # | Get detail for organization API uses |
type Rep OrganizationId Source # | |
type ToResponse OrganizationId Source # | |
Eq RoleId Source # | |
Show RoleId Source # | |
Generic RoleId Source # | |
ToJSON RoleId Source # | |
FromJSON RoleId Source # | |
SparkDetail RoleId Source # | User can get detail of a role. |
SparkResponse RoleId Source # | Get detail for a role API uses "RoleId' and responses |
SparkApiPath RoleId Source # | Get detail for role API uses |
type Rep RoleId Source # | |
type ToResponse RoleId Source # | |
Eq LicenseId Source # | |
Show LicenseId Source # | |
Generic LicenseId Source # | |
ToJSON LicenseId Source # | |
FromJSON LicenseId Source # | |
SparkDetail LicenseId Source # | User can get detail of a license. |
SparkResponse LicenseId Source # | Get detail for a license API uses "LicenseId' and responses |
SparkApiPath LicenseId Source # | Get detail for license API uses |
type Rep LicenseId Source # | |
type ToResponse LicenseId Source # | |
Timezone in timezone name.
data PersonStatus Source #
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.
PersonStatusActive | The |
PersonStatusInactive | The |
PersonStatusOutOfOffice | Email system of the |
PersonStatusDoNotDisturb | The |
PersonStatusUnknown | The status of the |
Eq PersonStatus Source # | |
Show PersonStatus Source # | |
Generic PersonStatus Source # | |
ToJSON PersonStatus Source # |
|
FromJSON PersonStatus Source # |
|
type Rep PersonStatus Source # | |
data PersonType Source #
PersonType
indicates whether the Person is real human or bot.
PersonTypePerson | The |
PersonTypeBot | The |
Eq PersonType Source # | |
Show PersonType Source # | |
ToJSON PersonType Source # | |
FromJSON PersonType Source # |
|
Person
is detail description of Cisco Spark 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.
Person | |
|
newtype PersonList Source #
PersonList
is decoded from response JSON of List People REST call. It is list of Person
.
Eq PersonList Source # | |
Show PersonList Source # | |
ToJSON PersonList Source # | |
FromJSON PersonList Source # |
|
data PersonFilter Source #
Optional query strings for people list API.
PersonFilter | |
|
Eq PersonFilter Source # | |
Show PersonFilter Source # | |
Generic PersonFilter Source # | |
Default PersonFilter Source # | |
SparkFilter PersonFilter Source # | User can list people with filter parameter. |
SparkResponse PersonFilter Source # | List people API uses |
SparkApiPath PersonFilter Source # | List people API uses |
type Rep PersonFilter Source # | |
type ToResponse PersonFilter Source # | |
data CreatePerson Source #
CreatePerson
is encoded to request body JSON of Create a Person REST call.
CreatePerson | |
|
Eq CreatePerson Source # | |
Show CreatePerson Source # | |
ToJSON CreatePerson Source # | |
FromJSON CreatePerson Source # |
|
SparkCreate CreatePerson Source # | User can create a person. |
SparkResponse CreatePerson Source # | Create person API uses "CreatePerson' and responses |
SparkApiPath CreatePerson Source # | Create person API uses |
type ToResponse CreatePerson Source # | |
data UpdatePerson Source #
UpdatePerson
is encoded to request body JSON of Update a Person REST call.
UpdatePerson | |
|
Eq UpdatePerson Source # | |
Show UpdatePerson Source # | |
ToJSON UpdatePerson Source # | |
FromJSON UpdatePerson Source # |
|
SparkUpdate UpdatePerson Source # | User can update a person. |
SparkResponse UpdatePerson Source # | Update person API uses "UpdatePerson' and responses |
SparkApiPath UpdatePerson Source # | Update person API uses |
type ToResponse UpdatePerson Source # | |
Identifying Team.
Eq TeamId Source # | |
Show TeamId Source # | |
Generic TeamId Source # | |
ToJSON TeamId Source # | |
FromJSON TeamId Source # | |
SparkDetail TeamId Source # | User can get detail of a team. |
SparkResponse TeamId Source # | Get detail for a team API uses "TeamId' and responses |
SparkApiPath TeamId Source # | Get detail for a team API uses |
type Rep TeamId Source # | |
type ToResponse TeamId Source # | |
Name of Team
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.
Team | |
|
TeamList | |
|
newtype CreateTeam Source #
CreateTeam
is encoded to request body JSON of Create a Team REST call.
Eq CreateTeam Source # | |
Show CreateTeam Source # | |
ToJSON CreateTeam Source # | |
FromJSON CreateTeam Source # |
|
SparkCreate CreateTeam Source # | User can create a team. |
SparkResponse CreateTeam Source # | Create team API uses "CreateTeam' and responses |
SparkApiPath CreateTeam Source # | Create team API uses |
type ToResponse CreateTeam Source # | |
newtype UpdateTeam Source #
UpdateTeam
is encoded to request body JSON of Update a Team REST call.
Eq UpdateTeam Source # | |
Show UpdateTeam Source # | |
ToJSON UpdateTeam Source # | |
FromJSON UpdateTeam Source # |
|
SparkUpdate UpdateTeam Source # | User can update a team. |
SparkResponse UpdateTeam Source # | Update team API uses "UpdateTeam' and responses |
SparkApiPath UpdateTeam Source # | Update team API uses |
type ToResponse UpdateTeam Source # | |
newtype TeamMembershipId Source #
Identifying TeamMembership.
Eq TeamMembershipId Source # | |
Show TeamMembershipId Source # | |
Generic TeamMembershipId Source # | |
ToJSON TeamMembershipId Source # | |
FromJSON TeamMembershipId Source # | |
SparkDetail TeamMembershipId Source # | User can get detail of a team membership. |
SparkResponse TeamMembershipId Source # | Get detail for a team membership API uses "TeamMembershipId' and responses |
SparkApiPath TeamMembershipId Source # | Get detail for a team membership API uses |
type Rep TeamMembershipId Source # | |
type ToResponse TeamMembershipId Source # | |
data TeamMembership Source #
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.
TeamMembership | |
|
Eq TeamMembership Source # | |
Show TeamMembership Source # | |
ToJSON TeamMembership Source # | |
FromJSON TeamMembership Source # |
|
SparkListItem TeamMembership Source # | |
type ToList TeamMembership Source # | |
newtype TeamMembershipList Source #
TeamMembershipList
is decoded from response JSON of List Team Memberships REST call. It is list of TeamMembership
.
Eq TeamMembershipList Source # | |
Show TeamMembershipList Source # | |
ToJSON TeamMembershipList Source # | |
FromJSON TeamMembershipList Source # |
|
newtype TeamMembershipFilter Source #
Optional query strings for team membership list API
TeamMembershipFilter | |
|
Eq TeamMembershipFilter Source # | |
Show TeamMembershipFilter Source # | |
SparkFilter TeamMembershipFilter Source # | User can list team membership with filter parameter. |
SparkResponse TeamMembershipFilter Source # | List team memberships API uses |
SparkApiPath TeamMembershipFilter Source # | List team memberships API uses |
type ToResponse TeamMembershipFilter Source # | |
defaultTeamMembershipFilter :: TeamId -> TeamMembershipFilter Source #
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
.
data CreateTeamMembership Source #
CreateTeamMembership
is encoded to request body JSON of Create a Team Membership REST call.
CreateTeamMembership | |
|
Eq CreateTeamMembership Source # | |
Show CreateTeamMembership Source # | |
ToJSON CreateTeamMembership Source # | |
FromJSON CreateTeamMembership Source # |
|
SparkCreate CreateTeamMembership Source # | User can create a teamMembership. |
SparkResponse CreateTeamMembership Source # | Create teamMembership API uses "CreateTeamMembership' and responses |
SparkApiPath CreateTeamMembership Source # | Create teamMembership API uses |
type ToResponse CreateTeamMembership Source # | |
newtype UpdateTeamMembership Source #
UpdateTeamMembership
is encoded to request body JSON of Update a Team Membership REST call.
Eq UpdateTeamMembership Source # | |
Show UpdateTeamMembership Source # | |
ToJSON UpdateTeamMembership Source # | |
FromJSON UpdateTeamMembership Source # |
|
SparkUpdate UpdateTeamMembership Source # | User can update a teamMembership. |
SparkResponse UpdateTeamMembership Source # | Update teamMembership API uses "UpdateTeamMembership' and responses |
SparkApiPath UpdateTeamMembership Source # | Update teamMembership API uses |
type ToResponse UpdateTeamMembership Source # | |
Identifying Room
.
Eq RoomId Source # | |
Show RoomId Source # | |
Generic RoomId Source # | |
ToJSON RoomId Source # | |
FromJSON RoomId Source # | |
SparkDetail RoomId Source # | User can get detail of a room. |
SparkResponse RoomId Source # | Get detail for a room API uses "RoomId' and responses |
SparkApiPath RoomId Source # | Get detail for a room API uses |
type Rep RoomId Source # | |
type ToResponse RoomId Source # | |
Title text of Room
.
SIP address.
RoomTypeDirect | The Room is for 1:1. Decoded from "direct". |
RoomTypeGroup | The Room is for group. Decoded from "group". |
Room
is communication space in Cisco Spark 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 Spark.
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.
Room | |
|
RoomList | |
|
data RoomFilterSortBy Source #
Sorting option for room list API.
data RoomFilter Source #
Optional query strings for room list API
RoomFilter | |
|
Eq RoomFilter Source # | |
Show RoomFilter Source # | |
Generic RoomFilter Source # | |
Default RoomFilter Source # | |
SparkFilter RoomFilter Source # | User can list rooms with filter parameter. |
SparkResponse RoomFilter Source # | List rooms API uses |
SparkApiPath RoomFilter Source # | List rooms API uses |
type Rep RoomFilter Source # | |
type ToResponse RoomFilter Source # | |
roomTypeToFilterString :: RoomType -> ByteString Source #
Sum type to ByteString converter for RoomType
.
roomFilterSortByToFilterString :: RoomFilterSortBy -> ByteString Source #
Sum type to ByteString converter for RoomFilterSortBy
.
data CreateRoom Source #
CreateRoom
is encoded to request body JSON of Create a Room REST call.
CreateRoom | |
|
Eq CreateRoom Source # | |
Show CreateRoom Source # | |
ToJSON CreateRoom Source # | |
FromJSON CreateRoom Source # |
|
SparkCreate CreateRoom Source # | User can create a room. |
SparkResponse CreateRoom Source # | Create room API uses "CreateRoom' and responses |
SparkApiPath CreateRoom Source # | Create room API uses |
type ToResponse CreateRoom Source # | |
newtype UpdateRoom Source #
UpdateRoom
is encoded to request body JSON of Update a Room REST call.
Eq UpdateRoom Source # | |
Show UpdateRoom Source # | |
ToJSON UpdateRoom Source # | |
FromJSON UpdateRoom Source # |
|
SparkUpdate UpdateRoom Source # | User can update a room. |
SparkResponse UpdateRoom Source # | Update room API uses "UpdateRoom' and responses |
SparkApiPath UpdateRoom Source # | Update room API uses |
type ToResponse UpdateRoom Source # | |
newtype MembershipId Source #
Identifying Membership
.
Eq MembershipId Source # | |
Show MembershipId Source # | |
Generic MembershipId Source # | |
ToJSON MembershipId Source # | |
FromJSON MembershipId Source # | |
SparkDetail MembershipId Source # | User can get detail of a membership. |
SparkResponse MembershipId Source # | Get detail for a membership API uses "MembershipId' and responses |
SparkApiPath MembershipId Source # | Get detail for a membership API uses |
type Rep MembershipId Source # | |
type ToResponse MembershipId Source # | |
data Membership Source #
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.
Membership | |
|
Eq Membership Source # | |
Show Membership Source # | |
ToJSON Membership Source # | |
FromJSON Membership Source # |
|
SparkListItem Membership Source # |
|
type ToList Membership Source # | |
newtype MembershipList Source #
MembershipList
is decoded from response JSON of List Memberships REST call. It is list of Membership
.
Eq MembershipList Source # | |
Show MembershipList Source # | |
ToJSON MembershipList Source # | |
FromJSON MembershipList Source # |
|
data MembershipFilter Source #
Optional query strings for room membership list API
MembershipFilter | |
|
Eq MembershipFilter Source # | |
Show MembershipFilter Source # | |
Generic MembershipFilter Source # | |
Default MembershipFilter Source # | |
SparkFilter MembershipFilter Source # | User can list memberships with filter parameter. |
SparkResponse MembershipFilter Source # | List memberships API uses |
SparkApiPath MembershipFilter Source # | List memberships API uses |
type Rep MembershipFilter Source # | |
type ToResponse MembershipFilter Source # | |
data CreateMembership Source #
CreateMembership
is encoded to request body JSON of Create a Membership REST call.
CreateMembership | |
|
Eq CreateMembership Source # | |
Show CreateMembership Source # | |
ToJSON CreateMembership Source # | |
FromJSON CreateMembership Source # |
|
SparkCreate CreateMembership Source # | User can create a membership. |
SparkResponse CreateMembership Source # | Create membership API uses "CreateMembership' and responses |
SparkApiPath CreateMembership Source # | Create membership API uses |
type ToResponse CreateMembership Source # | |
newtype UpdateMembership Source #
UpdateMembership
is encoded to request body JSON of Update a Membership REST call.
Eq UpdateMembership Source # | |
Show UpdateMembership Source # | |
ToJSON UpdateMembership Source # | |
FromJSON UpdateMembership Source # |
|
SparkUpdate UpdateMembership Source # | User can update a membership. |
SparkResponse UpdateMembership Source # | Update membership API uses "UpdateMembership' and responses |
SparkApiPath UpdateMembership Source # | Update membership API uses |
type ToResponse UpdateMembership Source # | |
Identifying Message
.
Eq MessageId Source # | |
Show MessageId Source # | |
Generic MessageId Source # | |
ToJSON MessageId Source # | |
FromJSON MessageId Source # | |
SparkDetail MessageId Source # | User can get detail of a message. |
SparkResponse MessageId Source # | Get detail for a message API uses "MessageId' and responses |
SparkApiPath MessageId Source # | Get detail for message API uses |
type Rep MessageId Source # | |
type ToResponse MessageId Source # | |
newtype MessageText Source #
Body of message in plain text.
newtype MessageHtml Source #
Body of message in html.
newtype MessageMarkdown Source #
Body of message in markdown.
URL pointing attached file of message.
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.
Message | |
|
newtype MessageList Source #
MessageList
is decoded from response JSON of List Messages REST call. It is list of Message
.
Eq MessageList Source # | |
Show MessageList Source # | |
ToJSON MessageList Source # | |
FromJSON MessageList Source # |
|
data MentionedPeople Source #
Sum type for mentionedPeople query string. It can be "me" or PersonId
.
data MessageFilter Source #
Optional query strings for message list API
MessageFilter | |
|
Eq MessageFilter Source # | |
Show MessageFilter Source # | |
SparkFilter MessageFilter Source # | User can list messages with filter parameter. |
SparkResponse MessageFilter Source # | List messages API uses |
SparkApiPath MessageFilter Source # | List messages API uses |
type ToResponse MessageFilter Source # | |
defaultMessageFilter :: RoomId -> MessageFilter Source #
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.
mentionedPeopleToFilterString :: MentionedPeople -> ByteString Source #
Sum type to ByteString converter for mentionedPeople query string.
data CreateMessage Source #
CreateMessage
is encoded to request body JSON of Create a Message REST call.
CreateMessage | |
|
Eq CreateMessage Source # | |
Show CreateMessage Source # | |
ToJSON CreateMessage Source # | |
FromJSON CreateMessage Source # |
|
SparkCreate CreateMessage Source # | User can create a message. |
SparkResponse CreateMessage Source # | Create message API uses "CreateMessage' and responses |
SparkApiPath CreateMessage Source # | Create message API uses |
type ToResponse CreateMessage Source # | |
newtype OrganizationDisplayName Source #
Display name of Organization
data Organization Source #
Organization
is an administrative group of Cisco Spark 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.
Organization | |
|
Eq Organization Source # | |
Show Organization Source # | |
ToJSON Organization Source # | |
FromJSON Organization Source # |
|
SparkListItem Organization Source # |
|
type ToList Organization Source # | |
newtype OrganizationList Source #
OrganizationList
is decoded from response JSON of List Organizations REST call. It is list of Organization
.
Eq OrganizationList Source # | |
Show OrganizationList Source # | |
ToJSON OrganizationList Source # | |
FromJSON OrganizationList Source # |
|
newtype LicenseName Source #
Display name of License
newtype LicenseUnit Source #
Counting number of granted or consumed License
License
is allowance for features and services of Cisco Spark subscription.
License is decoded from response JSON of Get License Details REST call.
It is also element type of response of List Licenses call.
License | |
|
newtype LicenseList Source #
LicenseList
is decoded from response JSON of List Licenses REST call. It is list of License
.
Eq LicenseList Source # | |
Show LicenseList Source # | |
ToJSON LicenseList Source # | |
FromJSON LicenseList Source # |
|
newtype LicenseFilter Source #
Optional query strings for license list API
LicenseFilter | |
|
Eq LicenseFilter Source # | |
Show LicenseFilter Source # | |
Generic LicenseFilter Source # | |
Default LicenseFilter Source # | |
SparkFilter LicenseFilter Source # | User can list licenses with filter parameter. |
SparkResponse LicenseFilter Source # | List licenses API uses |
SparkApiPath LicenseFilter Source # | List licenses API uses |
type Rep LicenseFilter Source # | |
type ToResponse LicenseFilter Source # | |
Name of Role
.
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.
RoleList | |
|
Eq WebhookId Source # | |
Show WebhookId Source # | |
Generic WebhookId Source # | |
ToJSON WebhookId Source # | |
FromJSON WebhookId Source # | |
SparkDetail WebhookId Source # | User can get detail of a webhook. |
SparkResponse WebhookId Source # | Get detail for a webhook API uses "WebhookId' and responses |
SparkApiPath WebhookId Source # | Get detail for webhook API uses |
type Rep WebhookId Source # | |
type ToResponse WebhookId Source # | |
newtype WebhookName Source #
Name of Webhook
.
newtype WebhookUrl Source #
URL pointing to webhook target.
newtype WebhookFilter Source #
URL-encoded set of webhook filtering criteria.
newtype WebhookSecret Source #
Shared secret supplied by user to authenticate Spark Cloud by webhook receiver.
data WebhookResource Source #
WebhookResource
indicates source of event which triggered webhook access.
WebhookResourceAll | |
WebhookResourceTeams | |
WebhookResourceMemberships | |
WebhookResourceMessages | |
WebhookResourceRooms |
Eq WebhookResource Source # | |
Show WebhookResource Source # | |
ToJSON WebhookResource Source # | |
FromJSON WebhookResource Source # |
|
data WebhookEvent Source #
WebhookEvent indicates which event triggered Webhook access.
Eq WebhookEvent Source # | |
Show WebhookEvent Source # | |
ToJSON WebhookEvent Source # | |
FromJSON WebhookEvent Source # |
|
Webhook
allow your app to be notified via HTTP when a specific event occurs on Spark. For example,
your app can register a webhook to be notified when a new message is posted into a specific room.
Webhook | |
|
newtype WebhookList Source #
WebhookList
is decoded from response JSON of List Webhook REST call. It is list of Webhook
.
Eq WebhookList Source # | |
Show WebhookList Source # | |
ToJSON WebhookList Source # | |
FromJSON WebhookList Source # |
|
data CreateWebhook Source #
CreateWebhook
is encoded to request body JSON of Create a Webhook REST call.
CreateWebhook | |
|
Eq CreateWebhook Source # | |
Show CreateWebhook Source # | |
ToJSON CreateWebhook Source # | |
FromJSON CreateWebhook Source # |
|
SparkCreate CreateWebhook Source # | User can create a webhook. |
SparkResponse CreateWebhook Source # | Create webhook API uses "CreateWebhook' and responses |
SparkApiPath CreateWebhook Source # | Create webhook API uses |
type ToResponse CreateWebhook Source # | |
data UpdateWebhook Source #
UpdateWebhook
is encoded to request body JSON of Update a Webhook REST call.
UpdateWebhook | |
|
Eq UpdateWebhook Source # | |
Show UpdateWebhook Source # | |
ToJSON UpdateWebhook Source # | |
FromJSON UpdateWebhook Source # |
|
SparkUpdate UpdateWebhook Source # | User can update a webhook. |
SparkResponse UpdateWebhook Source # | Update webhook API uses "UpdateWebhook' and responses |
SparkApiPath UpdateWebhook Source # | Update webhook API uses |
type ToResponse UpdateWebhook Source # | |
data WebhookMembershipFilter Source #
Optional query strings for membership event.
WebhookMembershipFilter | |
|
Eq WebhookMembershipFilter Source # | |
Show WebhookMembershipFilter Source # | |
SparkFilter WebhookMembershipFilter Source # | User can filter Webhook events from membership. |
SparkResponse WebhookMembershipFilter Source # | List team memberships API accepts |
SparkApiPath WebhookMembershipFilter Source # | Create webhook API accepts |
type ToResponse WebhookMembershipFilter Source # | |
data WebhookMessageFilter Source #
Optional query strings for message event.
WebhookMessageFilter | |
|
Eq WebhookMessageFilter Source # | |
Show WebhookMessageFilter Source # | |
SparkFilter WebhookMessageFilter Source # | User can filter Webhook events from message. |
SparkResponse WebhookMessageFilter Source # | List team memberships API accepts |
SparkApiPath WebhookMessageFilter Source # | Create webhook API accepts |
type ToResponse WebhookMessageFilter Source # | |
data WebhookRoomFilter Source #
Optional query strings for room event.
WebhookRoomFilter | |
|
Eq WebhookRoomFilter Source # | |
Show WebhookRoomFilter Source # | |
SparkFilter WebhookRoomFilter Source # | User can filter Webhook events from room. |
SparkResponse WebhookRoomFilter Source # | List team memberships API accepts |
SparkApiPath WebhookRoomFilter Source # | Create webhook API accepts |
type ToResponse WebhookRoomFilter Source # | |
Identifier of app.
data WebhookNotifyOwnedBy Source #
WebhookNotifyOwnedBy
indicates if the webhook is owned by the org or the creator.
Eq WebhookNotifyOwnedBy Source # | |
Show WebhookNotifyOwnedBy Source # | |
ToJSON WebhookNotifyOwnedBy Source # | |
FromJSON WebhookNotifyOwnedBy Source # |
|
data WebhookNotifyStatus Source #
WebhookNotifyStatus
indicates if the webhook is active.
Eq WebhookNotifyStatus Source # | |
Show WebhookNotifyStatus Source # | |
ToJSON WebhookNotifyStatus Source # | |
FromJSON WebhookNotifyStatus Source # |
|
data WebhookNotify Source #
Webhook
decodes webhook notification from Spark 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.
Eq WebhookNotify Source # | |
Show WebhookNotify Source # | |
ToJSON WebhookNotify Source # | |
FromJSON WebhookNotify Source # |
|
newtype WebhookNotifyMembership Source #
Data part of webhook notification is decoded to Membership
when resource field value is "memberships".
Eq WebhookNotifyMembership Source # | |
Show WebhookNotifyMembership Source # | |
ToJSON WebhookNotifyMembership Source # | |
FromJSON WebhookNotifyMembership Source # |
|
newtype WebhookNotifyMessage Source #
Data part of webhook notification is decoded to Message
when resource field value is "messages".
Eq WebhookNotifyMessage Source # | |
Show WebhookNotifyMessage Source # | |
ToJSON WebhookNotifyMessage Source # | |
FromJSON WebhookNotifyMessage Source # |
|
newtype WebhookNotifyRoom Source #
Data part of webhook notification is decoded to Room
when resource field value is "rooms".
Eq WebhookNotifyRoom Source # | |
Show WebhookNotifyRoom Source # | |
ToJSON WebhookNotifyRoom Source # | |
FromJSON WebhookNotifyRoom Source # |
|