cisco-spark-api-0.1.0.2: A Haskell bindings for Cisco Spark API

Copyright(c) Naoto Shimazaki 2017
LicenseMIT (see the file LICENSE)
Maintainerhttps://github.com/nshimaza
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Network.CiscoSpark.Types

Description

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.

Synopsis

Documentation

peoplePath :: ByteString #

URL path for people API.

roomsPath :: ByteString #

URL path for rooms API.

membershipsPath :: ByteString #

URL path for memberships API.

messagesPath :: ByteString #

URL path for messages API.

teamsPath :: ByteString #

URL path for teams API.

teamMembershipsPath :: ByteString #

URL path for team memberships API.

organizationsPath :: ByteString #

URL path for organizations API.

licensesPath :: ByteString #

URL path for licenes API.

rolesPath :: ByteString #

URL path for roles API.

webhooksPath :: ByteString #

URL path for webhooks API.

class FromJSON (ToList i) => SparkListItem i where #

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.

Minimal complete definition

unwrap

Associated Types

type ToList i :: * #

Associate item type to wrapping list type.

Methods

unwrap :: ToList i -> [i] #

Get bare list from wrapped type which can be parsed directly from JSON.

Instances

SparkListItem Person #

PersonList wraps Person.

Associated Types

type ToList Person :: * #

Methods

unwrap :: ToList Person -> [Person] #

SparkListItem Team #

TeamList wraps Team

Associated Types

type ToList Team :: * #

Methods

unwrap :: ToList Team -> [Team] #

SparkListItem TeamMembership #

TeamMembershipList wraps TeamMembership

Associated Types

type ToList TeamMembership :: * #

SparkListItem Room #

RoomList wraps Room

Associated Types

type ToList Room :: * #

Methods

unwrap :: ToList Room -> [Room] #

SparkListItem Membership #

MembershipList wraps Membership

Associated Types

type ToList Membership :: * #

SparkListItem Message #

MessageList wraps Message

Associated Types

type ToList Message :: * #

Methods

unwrap :: ToList Message -> [Message] #

SparkListItem Organization #

OrganizationList wraps Organization

Associated Types

type ToList Organization :: * #

SparkListItem License #

LicenseList wraps License

Associated Types

type ToList License :: * #

Methods

unwrap :: ToList License -> [License] #

SparkListItem Role #

RoleList wraps Role

Associated Types

type ToList Role :: * #

Methods

unwrap :: ToList Role -> [Role] #

SparkListItem Webhook #

WebhookList wraps Webhook

Associated Types

type ToList Webhook :: * #

Methods

unwrap :: ToList Webhook -> [Webhook] #

class SparkApiPath a where #

Type class for getting URL path of API category from given type of value.

Minimal complete definition

apiPath

Methods

apiPath :: a -> ByteString #

Instances

SparkApiPath LicenseId #

Get detail for license API uses LicenseId and path "licenses".

SparkApiPath RoleId #

Get detail for role API uses RoleId and path "roles".

Methods

apiPath :: RoleId -> ByteString #

SparkApiPath OrganizationId #

Get detail for organization API uses OrganizationId and path "organizations".

SparkApiPath PersonId #

Get detail for a person API uses PersonId and path "people".

SparkApiPath CreatePerson #

Create person API uses CreatePerson and path "people".

SparkApiPath PersonFilter #

List people API uses PersonFilter and path "people".

SparkApiPath UpdatePerson #

Update person API uses UpdatePerson and path "people".

SparkApiPath TeamId #

Get detail for a team API uses TeamId and path "teams".

Methods

apiPath :: TeamId -> ByteString #

SparkApiPath CreateTeam #

Create team API uses CreateTeam and path "teams".

SparkApiPath UpdateTeam #

Update team API uses UpdateTeam and path "teams".

SparkApiPath TeamMembershipId #

Get detail for a team membership API uses TeamMembershipId and path "team/memberships".

SparkApiPath CreateTeamMembership #

Create teamMembership API uses CreateTeamMembership and path "team/memberships".

SparkApiPath TeamMembershipFilter #

List team memberships API uses TeamMembershipFilter and path "team/memberships".

SparkApiPath UpdateTeamMembership #

Update teamMembership API uses UpdateTeamMembership and path "team/memberships".

SparkApiPath RoomId #

Get detail for a room API uses RoomId and path "rooms".

Methods

apiPath :: RoomId -> ByteString #

SparkApiPath CreateRoom #

Create room API uses CreateRoom and path "rooms".

SparkApiPath RoomFilter #

List rooms API uses RoomFilter and path "rooms".

SparkApiPath UpdateRoom #

Update room API uses UpdateRoom and path "rooms".

SparkApiPath MembershipId #

Get detail for a membership API uses MembershipId and path "memberships".

SparkApiPath CreateMembership #

Create membership API uses CreateMembership and path "memberships".

SparkApiPath MembershipFilter #

List memberships API uses MembershipFilter and path "memberships".

SparkApiPath UpdateMembership #

Update membership API uses UpdateMembership and path "memberships".

SparkApiPath MessageId #

Get detail for message API uses MessageId and path "messages".

SparkApiPath CreateMessage #

Create message API uses CreateMessage and path "messages".

SparkApiPath MessageFilter #

List messages API uses MessageFilter and path "messages".

SparkApiPath LicenseFilter #

List licenses API uses LicenseFilter and path "licenses".

SparkApiPath WebhookId #

Get detail for webhook API uses WebhookId and path "webhooks".

SparkApiPath CreateWebhook #

Create webhook API uses CreateWebhook and path "webhooks".

SparkApiPath UpdateWebhook #

Update webhook API uses UpdateWebhook and path "webhooks".

SparkApiPath WebhookRoomFilter #

Create webhook API accepts WebhookRoomFilter and uses path "webhooks".

SparkApiPath WebhookMessageFilter #

Create webhook API accepts WebhookMessageFilter and uses path "webhooks".

SparkApiPath WebhookMembershipFilter #

Create webhook API accepts WebhookMembershipFilter and uses path "webhooks".

class FromJSON (ToResponse a) => SparkResponse a #

Type family to associate a type appears in an argument to response type.

Associated Types

type ToResponse a :: * #

Instances

SparkResponse LicenseId #

Get detail for a license API uses "LicenseId' and responses License.

Associated Types

type ToResponse LicenseId :: * #

SparkResponse RoleId #

Get detail for a role API uses "RoleId' and responses Role.

Associated Types

type ToResponse RoleId :: * #

SparkResponse OrganizationId #

Get detail for a organization API uses "OrganizationId' and responses Organization.

Associated Types

type ToResponse OrganizationId :: * #

SparkResponse PersonId #

Get detail for a person API uses "PersonId' and responses Person.

Associated Types

type ToResponse PersonId :: * #

SparkResponse CreatePerson #

Create person API uses "CreatePerson' and responses Person.

Associated Types

type ToResponse CreatePerson :: * #

SparkResponse PersonFilter #

List people API uses PersonFilter and responses Person.

Associated Types

type ToResponse PersonFilter :: * #

SparkResponse UpdatePerson #

Update person API uses "UpdatePerson' and responses Person.

Associated Types

type ToResponse UpdatePerson :: * #

SparkResponse TeamId #

Get detail for a team API uses "TeamId' and responses Team.

Associated Types

type ToResponse TeamId :: * #

SparkResponse CreateTeam #

Create team API uses "CreateTeam' and responses Team.

Associated Types

type ToResponse CreateTeam :: * #

SparkResponse UpdateTeam #

Update team API uses "UpdateTeam' and responses Team.

Associated Types

type ToResponse UpdateTeam :: * #

SparkResponse TeamMembershipId #

Get detail for a team membership API uses "TeamMembershipId' and responses TeamMembership.

Associated Types

type ToResponse TeamMembershipId :: * #

SparkResponse CreateTeamMembership #

Create teamMembership API uses "CreateTeamMembership' and responses TeamMembership.

Associated Types

type ToResponse CreateTeamMembership :: * #

SparkResponse TeamMembershipFilter #

List team memberships API uses TeamMembershipFilter and responses TeamMembership.

Associated Types

type ToResponse TeamMembershipFilter :: * #

SparkResponse UpdateTeamMembership #

Update teamMembership API uses "UpdateTeamMembership' and responses TeamMembership.

Associated Types

type ToResponse UpdateTeamMembership :: * #

SparkResponse RoomId #

Get detail for a room API uses "RoomId' and responses Room.

Associated Types

type ToResponse RoomId :: * #

SparkResponse CreateRoom #

Create room API uses "CreateRoom' and responses Room.

Associated Types

type ToResponse CreateRoom :: * #

SparkResponse RoomFilter #

List rooms API uses RoomFilter and responses Room.

Associated Types

type ToResponse RoomFilter :: * #

SparkResponse UpdateRoom #

Update room API uses "UpdateRoom' and responses Room.

Associated Types

type ToResponse UpdateRoom :: * #

SparkResponse MembershipId #

Get detail for a membership API uses "MembershipId' and responses Membership.

Associated Types

type ToResponse MembershipId :: * #

SparkResponse CreateMembership #

Create membership API uses "CreateMembership' and responses Membership.

Associated Types

type ToResponse CreateMembership :: * #

SparkResponse MembershipFilter #

List memberships API uses MembershipFilter and responses Membership.

Associated Types

type ToResponse MembershipFilter :: * #

SparkResponse UpdateMembership #

Update membership API uses "UpdateMembership' and responses Membership.

Associated Types

type ToResponse UpdateMembership :: * #

SparkResponse MessageId #

Get detail for a message API uses "MessageId' and responses Message.

Associated Types

type ToResponse MessageId :: * #

SparkResponse CreateMessage #

Create message API uses "CreateMessage' and responses Message.

Associated Types

type ToResponse CreateMessage :: * #

SparkResponse MessageFilter #

List messages API uses MessageFilter and responses Message.

Associated Types

type ToResponse MessageFilter :: * #

SparkResponse LicenseFilter #

List licenses API uses LicenseFilter and responses License.

Associated Types

type ToResponse LicenseFilter :: * #

SparkResponse WebhookId #

Get detail for a webhook API uses "WebhookId' and responses Webhook.

Associated Types

type ToResponse WebhookId :: * #

SparkResponse CreateWebhook #

Create webhook API uses "CreateWebhook' and responses Webhook.

Associated Types

type ToResponse CreateWebhook :: * #

SparkResponse UpdateWebhook #

Update webhook API uses "UpdateWebhook' and responses Webhook.

Associated Types

type ToResponse UpdateWebhook :: * #

SparkResponse WebhookRoomFilter #

List team memberships API accepts WebhookRoomFilter and responses Webhook.

Associated Types

type ToResponse WebhookRoomFilter :: * #

SparkResponse WebhookMessageFilter #

List team memberships API accepts WebhookMessageFilter and responses Webhook.

Associated Types

type ToResponse WebhookMessageFilter :: * #

SparkResponse WebhookMembershipFilter #

List team memberships API accepts WebhookMembershipFilter and responses Webhook.

Associated Types

type ToResponse WebhookMembershipFilter :: * #

class (SparkApiPath a, SparkResponse a) => SparkDetail a where #

Extract containing entity ID string from given type of value.

Minimal complete definition

toIdStr

Methods

toIdStr :: a -> Text #

Instances

SparkDetail LicenseId #

User can get detail of a license.

Methods

toIdStr :: LicenseId -> Text #

SparkDetail RoleId #

User can get detail of a role.

Methods

toIdStr :: RoleId -> Text #

SparkDetail OrganizationId #

User can get detail of a organization.

SparkDetail PersonId #

User can get detail of a person.

Methods

toIdStr :: PersonId -> Text #

SparkDetail TeamId #

User can get detail of a team.

Methods

toIdStr :: TeamId -> Text #

SparkDetail TeamMembershipId #

User can get detail of a team membership.

SparkDetail RoomId #

User can get detail of a room.

Methods

toIdStr :: RoomId -> Text #

SparkDetail MembershipId #

User can get detail of a membership.

Methods

toIdStr :: MembershipId -> Text #

SparkDetail MessageId #

User can get detail of a message.

Methods

toIdStr :: MessageId -> Text #

SparkDetail WebhookId #

User can get detail of a webhook.

Methods

toIdStr :: WebhookId -> Text #

class (SparkApiPath a, SparkResponse a) => SparkFilter a where #

Convert given filter condition parameter in a concrete type to HTTP query strings.

Minimal complete definition

toFilterList

Instances

SparkFilter PersonFilter #

User can list people with filter parameter.

SparkFilter TeamMembershipFilter #

User can list team membership with filter parameter.

SparkFilter RoomFilter #

User can list rooms with filter parameter.

SparkFilter MembershipFilter #

User can list memberships with filter parameter.

SparkFilter MessageFilter #

User can list messages with filter parameter.

SparkFilter LicenseFilter #

User can list licenses with filter parameter.

SparkFilter WebhookRoomFilter #

User can filter Webhook events from room.

SparkFilter WebhookMessageFilter #

User can filter Webhook events from message.

SparkFilter WebhookMembershipFilter #

User can filter Webhook events from membership.

class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkCreate a #

Type class for parameter type for create entity API.

Instances

SparkCreate CreatePerson #

User can create a person.

SparkCreate CreateTeam #

User can create a team.

SparkCreate CreateTeamMembership #

User can create a teamMembership.

SparkCreate CreateRoom #

User can create a room.

SparkCreate CreateMembership #

User can create a membership.

SparkCreate CreateMessage #

User can create a message.

SparkCreate CreateWebhook #

User can create a webhook.

class (SparkApiPath a, SparkResponse a, ToJSON a) => SparkUpdate a #

Type class for parameter type for update entity API.

Instances

SparkUpdate UpdatePerson #

User can update a person.

SparkUpdate UpdateTeam #

User can update a team.

SparkUpdate UpdateTeamMembership #

User can update a teamMembership.

SparkUpdate UpdateRoom #

User can update a room.

SparkUpdate UpdateMembership #

User can update a membership.

SparkUpdate UpdateWebhook #

User can update a webhook.

newtype Timestamp #

Type representing timestamp. For now, it is just copied from API response JSON.

Constructors

Timestamp Text 

Instances

Eq Timestamp # 
Show Timestamp # 
Generic Timestamp # 

Associated Types

type Rep Timestamp :: * -> * #

ToJSON Timestamp # 
FromJSON Timestamp # 
type Rep Timestamp # 
type Rep Timestamp = D1 * (MetaData "Timestamp" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "Timestamp" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype ErrorCode #

Error code for element level error potentially contained in List API responses.

Constructors

ErrorCode Text 

Instances

Eq ErrorCode # 
Show ErrorCode # 
Generic ErrorCode # 

Associated Types

type Rep ErrorCode :: * -> * #

ToJSON ErrorCode # 
FromJSON ErrorCode # 
type Rep ErrorCode # 
type Rep ErrorCode = D1 * (MetaData "ErrorCode" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "ErrorCode" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data ErrorTitle #

ErrorTitle represent concrete error code and reason. It appears in Errors.

Constructors

ErrorTitle 

Fields

newtype Errors #

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.

Constructors

Errors 

Instances

Eq Errors # 

Methods

(==) :: Errors -> Errors -> Bool #

(/=) :: Errors -> Errors -> Bool #

Show Errors # 
ToJSON Errors # 
FromJSON Errors #

Errors derives ToJSON and FromJSON via deriveJSON template haskell function.

newtype PersonId #

Identifying Person describing detail of Cisco Spark user or bot.

Constructors

PersonId Text 

Instances

Eq PersonId # 
Show PersonId # 
Generic PersonId # 

Associated Types

type Rep PersonId :: * -> * #

Methods

from :: PersonId -> Rep PersonId x #

to :: Rep PersonId x -> PersonId #

ToJSON PersonId # 
FromJSON PersonId # 
SparkDetail PersonId #

User can get detail of a person.

Methods

toIdStr :: PersonId -> Text #

SparkResponse PersonId #

Get detail for a person API uses "PersonId' and responses Person.

Associated Types

type ToResponse PersonId :: * #

SparkApiPath PersonId #

Get detail for a person API uses PersonId and path "people".

type Rep PersonId # 
type Rep PersonId = D1 * (MetaData "PersonId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "PersonId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse PersonId # 

newtype Email #

Email address of user.

Constructors

Email Text 

Instances

Eq Email # 

Methods

(==) :: Email -> Email -> Bool #

(/=) :: Email -> Email -> Bool #

Show Email # 

Methods

showsPrec :: Int -> Email -> ShowS #

show :: Email -> String #

showList :: [Email] -> ShowS #

Generic Email # 

Associated Types

type Rep Email :: * -> * #

Methods

from :: Email -> Rep Email x #

to :: Rep Email x -> Email #

ToJSON Email # 
FromJSON Email # 
type Rep Email # 
type Rep Email = D1 * (MetaData "Email" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "Email" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype DisplayName #

Display name of user.

Constructors

DisplayName Text 

newtype NickName #

Nickname of user.

Constructors

NickName Text 

Instances

Eq NickName # 
Show NickName # 
Generic NickName # 

Associated Types

type Rep NickName :: * -> * #

Methods

from :: NickName -> Rep NickName x #

to :: Rep NickName x -> NickName #

ToJSON NickName # 
FromJSON NickName # 
type Rep NickName # 
type Rep NickName = D1 * (MetaData "NickName" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "NickName" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype FirstName #

First name of user.

Constructors

FirstName Text 

Instances

Eq FirstName # 
Show FirstName # 
Generic FirstName # 

Associated Types

type Rep FirstName :: * -> * #

ToJSON FirstName # 
FromJSON FirstName # 
type Rep FirstName # 
type Rep FirstName = D1 * (MetaData "FirstName" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "FirstName" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype LastName #

Last name of user.

Constructors

LastName Text 

Instances

Eq LastName # 
Show LastName # 
Generic LastName # 

Associated Types

type Rep LastName :: * -> * #

Methods

from :: LastName -> Rep LastName x #

to :: Rep LastName x -> LastName #

ToJSON LastName # 
FromJSON LastName # 
type Rep LastName # 
type Rep LastName = D1 * (MetaData "LastName" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "LastName" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype AvatarUrl #

URL pointing to image file of Avatar.

Constructors

AvatarUrl Text 

Instances

Eq AvatarUrl # 
Show AvatarUrl # 
Generic AvatarUrl # 

Associated Types

type Rep AvatarUrl :: * -> * #

ToJSON AvatarUrl # 
FromJSON AvatarUrl # 
type Rep AvatarUrl # 
type Rep AvatarUrl = D1 * (MetaData "AvatarUrl" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "AvatarUrl" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype OrganizationId #

Organization identifier which user or team belongs to.

Constructors

OrganizationId Text 

Instances

Eq OrganizationId # 
Show OrganizationId # 
Generic OrganizationId # 

Associated Types

type Rep OrganizationId :: * -> * #

ToJSON OrganizationId # 
FromJSON OrganizationId # 
SparkDetail OrganizationId #

User can get detail of a organization.

SparkResponse OrganizationId #

Get detail for a organization API uses "OrganizationId' and responses Organization.

Associated Types

type ToResponse OrganizationId :: * #

SparkApiPath OrganizationId #

Get detail for organization API uses OrganizationId and path "organizations".

type Rep OrganizationId # 
type Rep OrganizationId = D1 * (MetaData "OrganizationId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "OrganizationId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse OrganizationId # 

newtype RoleId #

Role identifier which can be assigned to user. See Role too.

Constructors

RoleId Text 

Instances

Eq RoleId # 

Methods

(==) :: RoleId -> RoleId -> Bool #

(/=) :: RoleId -> RoleId -> Bool #

Show RoleId # 
Generic RoleId # 

Associated Types

type Rep RoleId :: * -> * #

Methods

from :: RoleId -> Rep RoleId x #

to :: Rep RoleId x -> RoleId #

ToJSON RoleId # 
FromJSON RoleId # 
SparkDetail RoleId #

User can get detail of a role.

Methods

toIdStr :: RoleId -> Text #

SparkResponse RoleId #

Get detail for a role API uses "RoleId' and responses Role.

Associated Types

type ToResponse RoleId :: * #

SparkApiPath RoleId #

Get detail for role API uses RoleId and path "roles".

Methods

apiPath :: RoleId -> ByteString #

type Rep RoleId # 
type Rep RoleId = D1 * (MetaData "RoleId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "RoleId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse RoleId # 

newtype LicenseId #

License identifier which can be enabled on user. See License too.

Constructors

LicenseId Text 

Instances

Eq LicenseId # 
Show LicenseId # 
Generic LicenseId # 

Associated Types

type Rep LicenseId :: * -> * #

ToJSON LicenseId # 
FromJSON LicenseId # 
SparkDetail LicenseId #

User can get detail of a license.

Methods

toIdStr :: LicenseId -> Text #

SparkResponse LicenseId #

Get detail for a license API uses "LicenseId' and responses License.

Associated Types

type ToResponse LicenseId :: * #

SparkApiPath LicenseId #

Get detail for license API uses LicenseId and path "licenses".

type Rep LicenseId # 
type Rep LicenseId = D1 * (MetaData "LicenseId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "LicenseId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse LicenseId # 

newtype Timezone #

Timezone in timezone name.

Constructors

Timezone Text 

Instances

Eq Timezone # 
Show Timezone # 
Generic Timezone # 

Associated Types

type Rep Timezone :: * -> * #

Methods

from :: Timezone -> Rep Timezone x #

to :: Rep Timezone x -> Timezone #

ToJSON Timezone # 
FromJSON Timezone # 
type Rep Timezone # 
type Rep Timezone = D1 * (MetaData "Timezone" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "Timezone" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data PersonStatus #

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.

Constructors

PersonStatusActive

The Person is currently active. Decoded from "active".

PersonStatusInactive

The Person is currently not active. Decoded from "inactive".

PersonStatusOutOfOffice

Email system of the Person currently sets vacation. Decoded from "OutOfOffice".

PersonStatusDoNotDisturb

The Person is explicitly indicated do-not-disturb. Decoded from "DoNotDisturb".

PersonStatusUnknown

The status of the Person is unknown. Decoded from "unknown".

Instances

Eq PersonStatus # 
Show PersonStatus # 
Generic PersonStatus # 

Associated Types

type Rep PersonStatus :: * -> * #

ToJSON PersonStatus #

PersonStatus implements toEncoding to encode each constructor into JSON enum value.

FromJSON PersonStatus #

PersonStatus implements parseJSON to decode JSON enum value to a constructor.

type Rep PersonStatus # 
type Rep PersonStatus = D1 * (MetaData "PersonStatus" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" False) ((:+:) * ((:+:) * (C1 * (MetaCons "PersonStatusActive" PrefixI False) (U1 *)) (C1 * (MetaCons "PersonStatusInactive" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "PersonStatusOutOfOffice" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "PersonStatusDoNotDisturb" PrefixI False) (U1 *)) (C1 * (MetaCons "PersonStatusUnknown" PrefixI False) (U1 *)))))

data PersonType #

PersonType indicates whether the Person is real human or bot.

Constructors

PersonTypePerson

The Person is a real human. Decoded from "person".

PersonTypeBot

The Person is a bot. Decoded from "bot".

data Person #

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.

Constructors

Person 

Fields

Instances

Eq Person # 

Methods

(==) :: Person -> Person -> Bool #

(/=) :: Person -> Person -> Bool #

Show Person # 
ToJSON Person # 
FromJSON Person #

Person derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Person #

PersonList wraps Person.

Associated Types

type ToList Person :: * #

Methods

unwrap :: ToList Person -> [Person] #

type ToList Person # 

newtype PersonList #

PersonList is decoded from response JSON of List People REST call. It is list of Person.

Constructors

PersonList 

Fields

data PersonFilter #

Optional query strings for people list API.

Constructors

PersonFilter 

Fields

Instances

Eq PersonFilter # 
Show PersonFilter # 
Generic PersonFilter # 

Associated Types

type Rep PersonFilter :: * -> * #

Default PersonFilter # 

Methods

def :: PersonFilter #

SparkFilter PersonFilter #

User can list people with filter parameter.

SparkResponse PersonFilter #

List people API uses PersonFilter and responses Person.

Associated Types

type ToResponse PersonFilter :: * #

SparkApiPath PersonFilter #

List people API uses PersonFilter and path "people".

type Rep PersonFilter # 
type Rep PersonFilter = D1 * (MetaData "PersonFilter" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" False) (C1 * (MetaCons "PersonFilter" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "personFilterEmail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Email))) ((:*:) * (S1 * (MetaSel (Just Symbol "personFilterDisplayName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe DisplayName))) (S1 * (MetaSel (Just Symbol "personFilterOrgId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe OrganizationId))))))
type ToResponse PersonFilter # 

data CreatePerson #

CreatePerson is encoded to request body JSON of Create a Person REST call.

Constructors

CreatePerson 

Fields

Instances

Eq CreatePerson # 
Show CreatePerson # 
ToJSON CreatePerson # 
FromJSON CreatePerson #

CreatePerson derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkCreate CreatePerson #

User can create a person.

SparkResponse CreatePerson #

Create person API uses "CreatePerson' and responses Person.

Associated Types

type ToResponse CreatePerson :: * #

SparkApiPath CreatePerson #

Create person API uses CreatePerson and path "people".

type ToResponse CreatePerson # 

data UpdatePerson #

UpdatePerson is encoded to request body JSON of Update a Person REST call.

Constructors

UpdatePerson 

Fields

Instances

Eq UpdatePerson # 
Show UpdatePerson # 
ToJSON UpdatePerson # 
FromJSON UpdatePerson #

UpdatePerson derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkUpdate UpdatePerson #

User can update a person.

SparkResponse UpdatePerson #

Update person API uses "UpdatePerson' and responses Person.

Associated Types

type ToResponse UpdatePerson :: * #

SparkApiPath UpdatePerson #

Update person API uses UpdatePerson and path "people".

type ToResponse UpdatePerson # 

newtype TeamId #

Identifying Team.

Constructors

TeamId Text 

Instances

Eq TeamId # 

Methods

(==) :: TeamId -> TeamId -> Bool #

(/=) :: TeamId -> TeamId -> Bool #

Show TeamId # 
Generic TeamId # 

Associated Types

type Rep TeamId :: * -> * #

Methods

from :: TeamId -> Rep TeamId x #

to :: Rep TeamId x -> TeamId #

ToJSON TeamId # 
FromJSON TeamId # 
SparkDetail TeamId #

User can get detail of a team.

Methods

toIdStr :: TeamId -> Text #

SparkResponse TeamId #

Get detail for a team API uses "TeamId' and responses Team.

Associated Types

type ToResponse TeamId :: * #

SparkApiPath TeamId #

Get detail for a team API uses TeamId and path "teams".

Methods

apiPath :: TeamId -> ByteString #

type Rep TeamId # 
type Rep TeamId = D1 * (MetaData "TeamId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "TeamId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse TeamId # 

newtype TeamName #

Name of Team

Constructors

TeamName Text 

Instances

Eq TeamName # 
Show TeamName # 
Generic TeamName # 

Associated Types

type Rep TeamName :: * -> * #

Methods

from :: TeamName -> Rep TeamName x #

to :: Rep TeamName x -> TeamName #

ToJSON TeamName # 
FromJSON TeamName # 
type Rep TeamName # 
type Rep TeamName = D1 * (MetaData "TeamName" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "TeamName" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data 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.

Constructors

Team 

Fields

Instances

Eq Team # 

Methods

(==) :: Team -> Team -> Bool #

(/=) :: Team -> Team -> Bool #

Show Team # 

Methods

showsPrec :: Int -> Team -> ShowS #

show :: Team -> String #

showList :: [Team] -> ShowS #

ToJSON Team # 
FromJSON Team #

Team derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Team #

TeamList wraps Team

Associated Types

type ToList Team :: * #

Methods

unwrap :: ToList Team -> [Team] #

type ToList Team # 

newtype TeamList #

TeamList is decoded from response JSON of List Teams REST call. It is list of Team.

Constructors

TeamList 

Fields

Instances

Eq TeamList # 
Show TeamList # 
ToJSON TeamList # 
FromJSON TeamList #

TeamList derives ToJSON and FromJSON via deriveJSON template haskell function.

newtype CreateTeam #

CreateTeam is encoded to request body JSON of Create a Team REST call.

Constructors

CreateTeam 

Instances

Eq CreateTeam # 
Show CreateTeam # 
ToJSON CreateTeam # 
FromJSON CreateTeam #

CreateTeam derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkCreate CreateTeam #

User can create a team.

SparkResponse CreateTeam #

Create team API uses "CreateTeam' and responses Team.

Associated Types

type ToResponse CreateTeam :: * #

SparkApiPath CreateTeam #

Create team API uses CreateTeam and path "teams".

type ToResponse CreateTeam # 

newtype UpdateTeam #

UpdateTeam is encoded to request body JSON of Update a Team REST call.

Constructors

UpdateTeam 

Instances

Eq UpdateTeam # 
Show UpdateTeam # 
ToJSON UpdateTeam # 
FromJSON UpdateTeam #

UpdateTeam derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkUpdate UpdateTeam #

User can update a team.

SparkResponse UpdateTeam #

Update team API uses "UpdateTeam' and responses Team.

Associated Types

type ToResponse UpdateTeam :: * #

SparkApiPath UpdateTeam #

Update team API uses UpdateTeam and path "teams".

type ToResponse UpdateTeam # 

newtype TeamMembershipId #

Identifying TeamMembership.

Constructors

TeamMembershipId Text 

Instances

Eq TeamMembershipId # 
Show TeamMembershipId # 
Generic TeamMembershipId # 
ToJSON TeamMembershipId # 
FromJSON TeamMembershipId # 
SparkDetail TeamMembershipId #

User can get detail of a team membership.

SparkResponse TeamMembershipId #

Get detail for a team membership API uses "TeamMembershipId' and responses TeamMembership.

Associated Types

type ToResponse TeamMembershipId :: * #

SparkApiPath TeamMembershipId #

Get detail for a team membership API uses TeamMembershipId and path "team/memberships".

type Rep TeamMembershipId # 
type Rep TeamMembershipId = D1 * (MetaData "TeamMembershipId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "TeamMembershipId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse TeamMembershipId # 

data TeamMembership #

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.

Constructors

TeamMembership 

Fields

newtype TeamMembershipFilter #

Optional query strings for team membership list API

Constructors

TeamMembershipFilter 

Fields

defaultTeamMembershipFilter :: TeamId -> TeamMembershipFilter #

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 #

CreateTeamMembership is encoded to request body JSON of Create a Team Membership REST call.

Constructors

CreateTeamMembership 

Fields

newtype UpdateTeamMembership #

UpdateTeamMembership is encoded to request body JSON of Update a Team Membership REST call.

newtype RoomId #

Identifying Room.

Constructors

RoomId Text 

Instances

Eq RoomId # 

Methods

(==) :: RoomId -> RoomId -> Bool #

(/=) :: RoomId -> RoomId -> Bool #

Show RoomId # 
Generic RoomId # 

Associated Types

type Rep RoomId :: * -> * #

Methods

from :: RoomId -> Rep RoomId x #

to :: Rep RoomId x -> RoomId #

ToJSON RoomId # 
FromJSON RoomId # 
SparkDetail RoomId #

User can get detail of a room.

Methods

toIdStr :: RoomId -> Text #

SparkResponse RoomId #

Get detail for a room API uses "RoomId' and responses Room.

Associated Types

type ToResponse RoomId :: * #

SparkApiPath RoomId #

Get detail for a room API uses RoomId and path "rooms".

Methods

apiPath :: RoomId -> ByteString #

type Rep RoomId # 
type Rep RoomId = D1 * (MetaData "RoomId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "RoomId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse RoomId # 

newtype RoomTitle #

Title text of Room.

Constructors

RoomTitle Text 

Instances

Eq RoomTitle # 
Show RoomTitle # 
Generic RoomTitle # 

Associated Types

type Rep RoomTitle :: * -> * #

ToJSON RoomTitle # 
FromJSON RoomTitle # 
type Rep RoomTitle # 
type Rep RoomTitle = D1 * (MetaData "RoomTitle" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "RoomTitle" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

newtype SipAddr #

SIP address.

Constructors

SipAddr Text 

Instances

Eq SipAddr # 

Methods

(==) :: SipAddr -> SipAddr -> Bool #

(/=) :: SipAddr -> SipAddr -> Bool #

Show SipAddr # 
Generic SipAddr # 

Associated Types

type Rep SipAddr :: * -> * #

Methods

from :: SipAddr -> Rep SipAddr x #

to :: Rep SipAddr x -> SipAddr #

ToJSON SipAddr # 
FromJSON SipAddr # 
type Rep SipAddr # 
type Rep SipAddr = D1 * (MetaData "SipAddr" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "SipAddr" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data RoomType #

RoomType indicates if the Room is for 1:1 user or group of users.

Constructors

RoomTypeDirect

The Room is for 1:1. Decoded from "direct".

RoomTypeGroup

The Room is for group. Decoded from "group".

Instances

Eq RoomType # 
Show RoomType # 
ToJSON RoomType # 
FromJSON RoomType #

RoomType derives ToJSON and FromJSON via deriveJSON template haskell function.

data Room #

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.

Constructors

Room 

Fields

Instances

Eq Room # 

Methods

(==) :: Room -> Room -> Bool #

(/=) :: Room -> Room -> Bool #

Show Room # 

Methods

showsPrec :: Int -> Room -> ShowS #

show :: Room -> String #

showList :: [Room] -> ShowS #

ToJSON Room # 
FromJSON Room #

Room derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Room #

RoomList wraps Room

Associated Types

type ToList Room :: * #

Methods

unwrap :: ToList Room -> [Room] #

type ToList Room # 

newtype RoomList #

RoomList is decoded from response JSON of List Rooms REST call. It is list of Room.

Constructors

RoomList 

Fields

Instances

Eq RoomList # 
Show RoomList # 
ToJSON RoomList # 
FromJSON RoomList #

RoomList derives ToJSON and FromJSON via deriveJSON template haskell function.

data RoomFilter #

Optional query strings for room list API

Constructors

RoomFilter 

Fields

Instances

Eq RoomFilter # 
Show RoomFilter # 
Generic RoomFilter # 

Associated Types

type Rep RoomFilter :: * -> * #

Default RoomFilter # 

Methods

def :: RoomFilter #

SparkFilter RoomFilter #

User can list rooms with filter parameter.

SparkResponse RoomFilter #

List rooms API uses RoomFilter and responses Room.

Associated Types

type ToResponse RoomFilter :: * #

SparkApiPath RoomFilter #

List rooms API uses RoomFilter and path "rooms".

type Rep RoomFilter # 
type Rep RoomFilter = D1 * (MetaData "RoomFilter" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" False) (C1 * (MetaCons "RoomFilter" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "roomFilterTeamId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe TeamId))) ((:*:) * (S1 * (MetaSel (Just Symbol "roomFilterRoomType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe RoomType))) (S1 * (MetaSel (Just Symbol "roomFilterSortBy") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe RoomFilterSortBy))))))
type ToResponse RoomFilter # 

roomTypeToFilterString :: RoomType -> ByteString #

Sum type to ByteString converter for RoomType.

data CreateRoom #

CreateRoom is encoded to request body JSON of Create a Room REST call.

Constructors

CreateRoom 

Fields

Instances

Eq CreateRoom # 
Show CreateRoom # 
ToJSON CreateRoom # 
FromJSON CreateRoom #

CreateRoom derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkCreate CreateRoom #

User can create a room.

SparkResponse CreateRoom #

Create room API uses "CreateRoom' and responses Room.

Associated Types

type ToResponse CreateRoom :: * #

SparkApiPath CreateRoom #

Create room API uses CreateRoom and path "rooms".

type ToResponse CreateRoom # 

newtype UpdateRoom #

UpdateRoom is encoded to request body JSON of Update a Room REST call.

Constructors

UpdateRoom 

Instances

Eq UpdateRoom # 
Show UpdateRoom # 
ToJSON UpdateRoom # 
FromJSON UpdateRoom #

UpdateRoom derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkUpdate UpdateRoom #

User can update a room.

SparkResponse UpdateRoom #

Update room API uses "UpdateRoom' and responses Room.

Associated Types

type ToResponse UpdateRoom :: * #

SparkApiPath UpdateRoom #

Update room API uses UpdateRoom and path "rooms".

type ToResponse UpdateRoom # 

newtype MembershipId #

Identifying Membership.

Constructors

MembershipId Text 

Instances

Eq MembershipId # 
Show MembershipId # 
Generic MembershipId # 

Associated Types

type Rep MembershipId :: * -> * #

ToJSON MembershipId # 
FromJSON MembershipId # 
SparkDetail MembershipId #

User can get detail of a membership.

Methods

toIdStr :: MembershipId -> Text #

SparkResponse MembershipId #

Get detail for a membership API uses "MembershipId' and responses Membership.

Associated Types

type ToResponse MembershipId :: * #

SparkApiPath MembershipId #

Get detail for a membership API uses MembershipId and path "memberships".

type Rep MembershipId # 
type Rep MembershipId = D1 * (MetaData "MembershipId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "MembershipId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse MembershipId # 

data Membership #

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.

Constructors

Membership 

Fields

newtype MembershipList #

MembershipList is decoded from response JSON of List Memberships REST call. It is list of Membership.

data MembershipFilter #

Optional query strings for room membership list API

Constructors

MembershipFilter 

Fields

Instances

Eq MembershipFilter # 
Show MembershipFilter # 
Generic MembershipFilter # 
Default MembershipFilter # 
SparkFilter MembershipFilter #

User can list memberships with filter parameter.

SparkResponse MembershipFilter #

List memberships API uses MembershipFilter and responses Membership.

Associated Types

type ToResponse MembershipFilter :: * #

SparkApiPath MembershipFilter #

List memberships API uses MembershipFilter and path "memberships".

type Rep MembershipFilter # 
type Rep MembershipFilter = D1 * (MetaData "MembershipFilter" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" False) (C1 * (MetaCons "MembershipFilter" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "membershipFilterRoomId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe RoomId))) ((:*:) * (S1 * (MetaSel (Just Symbol "membershipFilterPersonId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe PersonId))) (S1 * (MetaSel (Just Symbol "membershipFilterPersonEmail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Email))))))
type ToResponse MembershipFilter # 

data CreateMembership #

CreateMembership is encoded to request body JSON of Create a Membership REST call.

Constructors

CreateMembership 

Fields

newtype UpdateMembership #

UpdateMembership is encoded to request body JSON of Update a Membership REST call.

newtype MessageId #

Identifying Message.

Constructors

MessageId Text 

Instances

Eq MessageId # 
Show MessageId # 
Generic MessageId # 

Associated Types

type Rep MessageId :: * -> * #

ToJSON MessageId # 
FromJSON MessageId # 
SparkDetail MessageId #

User can get detail of a message.

Methods

toIdStr :: MessageId -> Text #

SparkResponse MessageId #

Get detail for a message API uses "MessageId' and responses Message.

Associated Types

type ToResponse MessageId :: * #

SparkApiPath MessageId #

Get detail for message API uses MessageId and path "messages".

type Rep MessageId # 
type Rep MessageId = D1 * (MetaData "MessageId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "MessageId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse MessageId # 

newtype MessageText #

Body of message in plain text.

Constructors

MessageText Text 

newtype MessageHtml #

Body of message in html.

Constructors

MessageHtml Text 

newtype FileUrl #

URL pointing attached file of message.

Constructors

FileUrl Text 

Instances

Eq FileUrl # 

Methods

(==) :: FileUrl -> FileUrl -> Bool #

(/=) :: FileUrl -> FileUrl -> Bool #

Show FileUrl # 
Generic FileUrl # 

Associated Types

type Rep FileUrl :: * -> * #

Methods

from :: FileUrl -> Rep FileUrl x #

to :: Rep FileUrl x -> FileUrl #

ToJSON FileUrl # 
FromJSON FileUrl # 
type Rep FileUrl # 
type Rep FileUrl = D1 * (MetaData "FileUrl" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "FileUrl" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data 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.

Constructors

Message 

Fields

Instances

Eq Message # 

Methods

(==) :: Message -> Message -> Bool #

(/=) :: Message -> Message -> Bool #

Show Message # 
ToJSON Message # 
FromJSON Message #

Message derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Message #

MessageList wraps Message

Associated Types

type ToList Message :: * #

Methods

unwrap :: ToList Message -> [Message] #

type ToList Message # 

newtype MessageList #

MessageList is decoded from response JSON of List Messages REST call. It is list of Message.

Constructors

MessageList 

data MessageFilter #

Optional query strings for message list API

Constructors

MessageFilter 

Fields

Instances

defaultMessageFilter :: RoomId -> MessageFilter #

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 #

Sum type to ByteString converter for mentionedPeople query string.

data CreateMessage #

CreateMessage is encoded to request body JSON of Create a Message REST call.

Constructors

CreateMessage 

Fields

Instances

Eq CreateMessage # 
Show CreateMessage # 
ToJSON CreateMessage # 
FromJSON CreateMessage #

CreateMessage derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkCreate CreateMessage #

User can create a message.

SparkResponse CreateMessage #

Create message API uses "CreateMessage' and responses Message.

Associated Types

type ToResponse CreateMessage :: * #

SparkApiPath CreateMessage #

Create message API uses CreateMessage and path "messages".

type ToResponse CreateMessage # 

data Organization #

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.

Constructors

Organization 

Fields

newtype LicenseName #

Display name of License

Constructors

LicenseName Text 

newtype LicenseUnit #

Counting number of granted or consumed License

Constructors

LicenseUnit Integer 

data 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.

Constructors

License 

Fields

Instances

Eq License # 

Methods

(==) :: License -> License -> Bool #

(/=) :: License -> License -> Bool #

Show License # 
ToJSON License # 
FromJSON License #

License derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem License #

LicenseList wraps License

Associated Types

type ToList License :: * #

Methods

unwrap :: ToList License -> [License] #

type ToList License # 

newtype LicenseList #

LicenseList is decoded from response JSON of List Licenses REST call. It is list of License.

Constructors

LicenseList 

newtype LicenseFilter #

Optional query strings for license list API

Constructors

LicenseFilter 

Fields

Instances

Eq LicenseFilter # 
Show LicenseFilter # 
Generic LicenseFilter # 

Associated Types

type Rep LicenseFilter :: * -> * #

Default LicenseFilter # 

Methods

def :: LicenseFilter #

SparkFilter LicenseFilter #

User can list licenses with filter parameter.

SparkResponse LicenseFilter #

List licenses API uses LicenseFilter and responses License.

Associated Types

type ToResponse LicenseFilter :: * #

SparkApiPath LicenseFilter #

List licenses API uses LicenseFilter and path "licenses".

type Rep LicenseFilter # 
type Rep LicenseFilter = D1 * (MetaData "LicenseFilter" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "LicenseFilter" PrefixI True) (S1 * (MetaSel (Just Symbol "licenseFilterOrgId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe OrganizationId))))
type ToResponse LicenseFilter # 

newtype RoleName #

Name of Role.

Constructors

RoleName Text 

Instances

Eq RoleName # 
Show RoleName # 
Generic RoleName # 

Associated Types

type Rep RoleName :: * -> * #

Methods

from :: RoleName -> Rep RoleName x #

to :: Rep RoleName x -> RoleName #

ToJSON RoleName # 
FromJSON RoleName # 
type Rep RoleName # 
type Rep RoleName = D1 * (MetaData "RoleName" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "RoleName" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))

data 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.

Constructors

Role 

Fields

Instances

Eq Role # 

Methods

(==) :: Role -> Role -> Bool #

(/=) :: Role -> Role -> Bool #

Show Role # 

Methods

showsPrec :: Int -> Role -> ShowS #

show :: Role -> String #

showList :: [Role] -> ShowS #

ToJSON Role # 
FromJSON Role #

Role derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Role #

RoleList wraps Role

Associated Types

type ToList Role :: * #

Methods

unwrap :: ToList Role -> [Role] #

type ToList Role # 

newtype RoleList #

RoleList is decoded from response JSON of List Role REST call. It is list of Role.

Constructors

RoleList 

Fields

Instances

Eq RoleList # 
Show RoleList # 
ToJSON RoleList # 
FromJSON RoleList #

RoleList derives ToJSON and FromJSON via deriveJSON template haskell function.

newtype WebhookId #

Webhook identifier which can be assigned to user. See Webhook too.

Constructors

WebhookId Text 

Instances

Eq WebhookId # 
Show WebhookId # 
Generic WebhookId # 

Associated Types

type Rep WebhookId :: * -> * #

ToJSON WebhookId # 
FromJSON WebhookId # 
SparkDetail WebhookId #

User can get detail of a webhook.

Methods

toIdStr :: WebhookId -> Text #

SparkResponse WebhookId #

Get detail for a webhook API uses "WebhookId' and responses Webhook.

Associated Types

type ToResponse WebhookId :: * #

SparkApiPath WebhookId #

Get detail for webhook API uses WebhookId and path "webhooks".

type Rep WebhookId # 
type Rep WebhookId = D1 * (MetaData "WebhookId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "WebhookId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))
type ToResponse WebhookId # 

newtype WebhookUrl #

URL pointing to webhook target.

Constructors

WebhookUrl Text 

newtype WebhookFilter #

URL-encoded set of webhook filtering criteria.

Constructors

WebhookFilter Text 

newtype WebhookSecret #

Shared secret supplied by user to authenticate Spark Cloud by webhook receiver.

Constructors

WebhookSecret Text 

data Webhook #

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.

Constructors

Webhook 

Fields

Instances

Eq Webhook # 

Methods

(==) :: Webhook -> Webhook -> Bool #

(/=) :: Webhook -> Webhook -> Bool #

Show Webhook # 
ToJSON Webhook # 
FromJSON Webhook #

Webhook derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkListItem Webhook #

WebhookList wraps Webhook

Associated Types

type ToList Webhook :: * #

Methods

unwrap :: ToList Webhook -> [Webhook] #

type ToList Webhook # 

newtype WebhookList #

WebhookList is decoded from response JSON of List Webhook REST call. It is list of Webhook.

Constructors

WebhookList 

data CreateWebhook #

CreateWebhook is encoded to request body JSON of Create a Webhook REST call.

Constructors

CreateWebhook 

Fields

Instances

Eq CreateWebhook # 
Show CreateWebhook # 
ToJSON CreateWebhook # 
FromJSON CreateWebhook #

CreateWebhook derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkCreate CreateWebhook #

User can create a webhook.

SparkResponse CreateWebhook #

Create webhook API uses "CreateWebhook' and responses Webhook.

Associated Types

type ToResponse CreateWebhook :: * #

SparkApiPath CreateWebhook #

Create webhook API uses CreateWebhook and path "webhooks".

type ToResponse CreateWebhook # 

data UpdateWebhook #

UpdateWebhook is encoded to request body JSON of Update a Webhook REST call.

Constructors

UpdateWebhook 

Fields

Instances

Eq UpdateWebhook # 
Show UpdateWebhook # 
ToJSON UpdateWebhook # 
FromJSON UpdateWebhook #

UpdateWebhook derives ToJSON and FromJSON via deriveJSON template haskell function.

SparkUpdate UpdateWebhook #

User can update a webhook.

SparkResponse UpdateWebhook #

Update webhook API uses "UpdateWebhook' and responses Webhook.

Associated Types

type ToResponse UpdateWebhook :: * #

SparkApiPath UpdateWebhook #

Update webhook API uses UpdateWebhook and path "webhooks".

type ToResponse UpdateWebhook # 

data WebhookMembershipFilter #

Optional query strings for membership event.

Constructors

WebhookMembershipFilter 

Fields

data WebhookMessageFilter #

Optional query strings for message event.

Constructors

WebhookMessageFilter 

Fields

data WebhookRoomFilter #

Optional query strings for room event.

Constructors

WebhookRoomFilter 

Fields

newtype AppId #

Identifier of app.

Constructors

AppId Text 

Instances

Eq AppId # 

Methods

(==) :: AppId -> AppId -> Bool #

(/=) :: AppId -> AppId -> Bool #

Show AppId # 

Methods

showsPrec :: Int -> AppId -> ShowS #

show :: AppId -> String #

showList :: [AppId] -> ShowS #

Generic AppId # 

Associated Types

type Rep AppId :: * -> * #

Methods

from :: AppId -> Rep AppId x #

to :: Rep AppId x -> AppId #

ToJSON AppId # 
FromJSON AppId # 
type Rep AppId # 
type Rep AppId = D1 * (MetaData "AppId" "Network.CiscoSpark.Types" "cisco-spark-api-0.1.0.2-IWVPaYoo5y8Ijz69C7363A" True) (C1 * (MetaCons "AppId" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Text)))