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

Contents

Description

This module provides types and functions for accessing Cisco Spark REST API.

The module is designed to improve type safety over the API. Each entity is separately typed. JSON messages contained in REST responses are decoded into appropriate type of Haskell record. JSON messages sent in REST requests are encoded only from correct type of record.

Some Spark REST API return list of objects. Those APIs require HTTP Link Header based pagination. Haskell functions for those APIs automatically request subsequent pages as needed. Also those functions transform chunky response into seamless stream of elements.

Examples

    -- Sending a message to a room.
    let auth        = Authorization "your authorization token"
        roomId      = RoomId "Room ID your message to be sent"
        messageText = MessageText "your message"
        message     = CreateMessage (Just roomId) Nothing Nothing (Just messageText) Nothing Nothing
    createEntity auth def createMessage >>= print . getResponseBody

    -- Obtaining detail of a user.
    let personId    = PersonId "your person ID"
    getDetail auth def personId >>= print . getResponseBody

    -- Obtaining membership of a room as stream of object representing each membership relation.
    let filter = MembershipFilter yourRoomId Nothing Nothing
    runConduit $ streamEntityWithFilter auth def filter .| takeC 200 .| mapM_C print

    -- Create a room.
    let createRoom  = CreateRoom "Title of the new room" Nothing
    createEntity auth def createRoom >>= print . getResponseBody

    -- Delete a room.
    deleteRoom auth def roomId >>= print . getResponseBody

Support for Lens

This package provides many of records representing objects communicated via Cisco Spark REST API. Those records are designed to allow create lenses by Control.Lens.TH.makeFields.

Following example creates overloaded accessors for Person, Room and Team.

makeFields ''Person
makeFields ''Room
makeFields ''Team

You can access personId, roomId and teamId via overloaded accessor function id like this.

    let yourPersonId = yourPerson ^. id
        yourRoomId = yourRoom ^. id
        yourTeamId = yourTeam ^. id

This package does not provide pre-generated lenses for you because not everyone need it but you can make it by yourself so easily as described.

Synopsis

Types

Common Types

newtype Authorization #

Authorization string against Spark API to be contained in HTTP Authorization header of every request.

data CiscoSparkRequest #

Wrapping Request in order to provide easy default value specifically for Cisco Spark public API.

Constructors

CiscoSparkRequest 

Fields

Instances

Show CiscoSparkRequest # 
Default CiscoSparkRequest #

Default parameters for HTTP request to Cisco Spark REST API.

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.

People related types

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

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 # 

Room related types

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 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)))

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.

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)))

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 # 

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 # 

Membership related types

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 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 # 

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.

Message related types

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 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)))

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

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 # 

Team related types

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)))

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 # 

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 # 

Team Membership related types

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 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 # 

newtype TeamMembershipFilter #

Optional query strings for team membership list API

Constructors

TeamMembershipFilter 

Fields

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.

Organization related types

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 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 # 

License related types

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 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 LicenseName #

Display name of License

Constructors

LicenseName Text 

newtype LicenseUnit #

Counting number of granted or consumed License

Constructors

LicenseUnit Integer 

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 # 

Role related types

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 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 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)))

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.

Functions

Getting detail of an entity

getDetail #

Arguments

:: (MonadIO m, SparkDetail key) 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> key

One of PersonId, RoomId, MembershipId, MessageId, TeamId, TeamMembershipId, OrganizationId, LicenseId and RoleId.

-> m (Response (ToResponse key)) 

Get details of a Spark entity.

Obtaining detail of an entity identified by key. The key can be a value in one of following types: PersonId, RoomId, MembershipId, MessageId, TeamId, TeamMembershipId, OrganizationId, LicenseId, RoleId. API is automatically selected by type of the key. A JSONException runtime exception will be thrown on an JSON parse errors.

getDetailEither :: (MonadIO m, SparkDetail key) => Authorization -> CiscoSparkRequest -> key -> m (Response (Either JSONException (ToResponse key))) #

Get details of a Spark entity. A Left value will be returned on an JSON parse errors.

Streaming response of List API with auto pagenation

streamEntityWithFilter :: (MonadIO m, SparkFilter filter, SparkListItem (ToResponse filter)) => Authorization -> CiscoSparkRequest -> filter -> ConduitT () (ToResponse filter) m () #

Get list of entities with query parameter and stream it into Conduit pipe. It automatically performs pagination.

streamTeamList :: MonadIO m => Authorization -> CiscoSparkRequest -> ConduitT () Team m () #

List of Team and stream it into Conduit pipe. It automatically performs pagination.

streamOrganizationList :: MonadIO m => Authorization -> CiscoSparkRequest -> ConduitT () Organization m () #

Filter list of Organization and stream it into Conduit pipe. It automatically performs pagination.

streamRoleList :: MonadIO m => Authorization -> CiscoSparkRequest -> ConduitT () Role m () #

List of Role and stream it into Conduit pipe. It automatically performs pagination.

Creating an entity

createEntity #

Arguments

:: (MonadIO m, SparkCreate createParams) 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> createParams

One of CreatePerson, CreateRoom, CreateMembership, CreateMessage, CreateTeam and CreateTeamMembership.

-> m (Response (ToResponse createParams)) 

Create a Spark entity with given parameters.

Creating a new entity of Spark such as space, team, membership or message. REST API path is automatically selected by type of createParams. A JSONException runtime exception will be thrown on an JSON parse errors.

createEntityEither :: (MonadIO m, SparkCreate createParams) => Authorization -> CiscoSparkRequest -> createParams -> m (Response (Either JSONException (ToResponse createParams))) #

Create a Spark entity with given parameters. A Left value will be returned on an JSON parse errors.

Updating an entity

updateEntity #

Arguments

:: (MonadIO m, SparkUpdate updateParams) 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> updateParams

One of UpdatePerson, UpdateRoom, UpdateMembership, UpdateTeam and UpdateTeamMembership.

-> m (Response (ToResponse updateParams)) 

Update a Spark entity with given parameters.

Creating a new entity of Spark such as space, team, or membership. REST API path is automatically selected by type of updateParams. A JSONException runtime exception will be thrown on an JSON parse errors.

updateEntityEither :: (MonadIO m, SparkUpdate updateParams) => Authorization -> CiscoSparkRequest -> updateParams -> m (Response (Either JSONException (ToResponse updateParams))) #

Update a Spark entity with given parameters. A Left value will be returned on an JSON parse errors.

Creating default filter spec from mandatory field

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.

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.

Deleting an entity

deleteRoom #

Arguments

:: MonadIO m 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> RoomId

Identifier of a space to be deleted.

-> m (Response ()) 

Deletes a room, by ID.

deleteMembership #

Arguments

:: MonadIO m 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> MembershipId

Identifier of a space to be deleted.

-> m (Response ()) 

Deletes a membership, by ID.

deleteMessage #

Arguments

:: MonadIO m 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> MessageId

Identifier of a space to be deleted.

-> m (Response ()) 

Deletes a message, by ID.

deleteTeam #

Arguments

:: MonadIO m 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> TeamId

Identifier of a space to be deleted.

-> m (Response ()) 

Deletes a team, by ID.

deleteTeamMembership #

Arguments

:: MonadIO m 
=> Authorization

Authorization string against Spark API.

-> CiscoSparkRequest

Predefined part of Request commonly used for Cisco Spark API.

-> TeamMembershipId

Identifier of a space to be deleted.

-> m (Response ()) 

Deletes a teamMembership, by ID.