diff --git a/Whats_New.md b/Whats_New.md index bf2768b..ad1adcb 100644 --- a/Whats_New.md +++ b/Whats_New.md @@ -9,6 +9,7 @@ Keep up to date on what’s new in IBM Watson Work Services. We’ll list the la | Date | What’s new | | ------------- |:-------------| +| 12.Oct.2018 | Added [meeting API](./guides/V1_wwsg_Meetings.md). | | 07.Sep.2018 | Graduated [Templates](./guides/Creating_Solutions.md) from `EXPERIMENTAL` to `BETA` | | 11.Jul.2018 | Published [message reactions](./guides/V1_wwsg_Reactions.md). | | 11.Jul.2018 | Published [message deletion](./guides/V1_delete_message.md). | diff --git a/guides/V1_Get_Public_Meeting.md b/guides/V1_Get_Public_Meeting.md new file mode 100644 index 0000000..ede9a78 --- /dev/null +++ b/guides/V1_Get_Public_Meeting.md @@ -0,0 +1,50 @@ +--- +copyright: 'Copyright IBM Corp. 2018' +link: 'get-public-meeting' +is: 'experimental' +--- +# Get Public Meeting Details + +This REST GET request allows the API caller to get details about a public meeting. + +### Version information +- Version: 1.0.0 + +### URI scheme +_Host_ : **api.watsonwork.ibm.com** +_Scheme_: **HTTPS** + +### Path +``` +GET v1/publicMeeting/bySpaceId/ +``` + +#### Responses + +|HTTP Code|Description|Schema| +|---|---|---| +|**200**|The meeting data returned.|MeetingData(see below)| + + +#### Produces + +* `application/json` + + + + +#### MeetingData +Entity that represents the requested meeting. + +|Name|Description|Schema| +|---|---|---| +|**meetingId**
*required*|Id of the meeting.|string| +|**meetingNumber**
*optional*|The Zoom meeting number if the meeting is currently active or otherwise null.|string| +|**password**
*optional*|The Zoom meeting password if the meeting is currently active or otherwise null.|string| +|**active**
*required*|Boolean representing whether the meeting is currently active.|string| +|**allowPublic**
*required*|Boolean representing whether the meeting open to the public.|string| +|**startTime**
*optional*|Start time of the active meeting or otherwise null.|string| +|**meetingProviderJoinUrl**
*optional*|A URL to join the meeting with the Zoom client or otherwise null.|string| +|**meetingProviderJoinUrl**
*optional*|A URL to join the meeting with the Zoom client or otherwise null.|string| +|**pstnPasscode**
*optional*|The PSTN passcode of the active meeting if present or otherwise null.|string| +|**dialInNumbers**
*optional*|An array of country code identifier plus dial-in number forthe active meeting or otherwise null.|string| diff --git a/guides/V1_Meeting.md b/guides/V1_Meeting.md new file mode 100644 index 0000000..e53f282 --- /dev/null +++ b/guides/V1_Meeting.md @@ -0,0 +1,147 @@ +--- +copyright: 'Copyright IBM Corp. 2018' +link: 'meeting' +is: 'experimental' +--- + +# Get meeting details + +## Concepts + +The _meeting_ query allows the API caller to get details about the meeting. The query accepts either a Space ID (spaceId) or a meeting ID (id) and will return meeting details if the calling user has access to the meeting. The calling user will have access to the meeting if the user has access to the space which contains the meeting, or the meeting has been marked to allow public participants. + +## Schema + +### Meeting Query + + +```graphql +type QueryRoot { + ... + meeting(spaceId: ID, id: ID): Meeting +} + +type MeetingRecording { + url: String! + startTime: Date + stopTime: Date +} + +type DialInNumber { + countryCode: String! + number: String! +} + +type JoinInfo { + allowPublic: Boolean! + meetingNumber: String + meetingProviderJoinUrl: String + password: String + hostKey: String! + pstnPasscode: String + webJoinToken: String! + dialInNumbers : [DialInNumber] +} + +type Meeting { + id: ID! + active: Boolean! + allowPublic: Boolean! + startTime: Date + endTime: Date + description: String + recordings: [MeetingRecording] + activeParticipants: PersonCollection + attendees: PersonCollection + space: Space! + startedBy: Person + message: Message + joinInfo: JoinInfo +} + +``` + +## Field definitions + +# MeetingRecording +|Name|Description|Schema| +|---|---|---|---| +|**url**|The URL pointing to the meeting recording MP4 file.|**String**
_required_| +|**startTime** |The start date/time of the meeting recording |**Date**| +|**stopTime** |The stop date/time of the meeting recording |**Date**| + + +# DialInNumber +|Name|Description|Schema| +|---|---|---|---| +|**countryCode**|Two character country code where the number resides|**String**
_required_| +|**number**|E.164 phone number which can be used to dial into the meeting|**String**
_required_| + +# JoinInfo +|Name|Description|Schema| +|---|---|---|---| +|**allowPublic** |Whether the meeting can be joined by non-members of the space|**Boolean**
_required_| +|**meetingNumber**|If a meeting is active, the a string of digits representing the Zoom meeting|**String**
_required_| +|**meetingProviderJoinUrl**|A URL which can be used to directly joint he meeting in a browser|**String**
_required_| +|**password** |If a meeting is active, the password required to join the Zoom meeting|**String**| +|**hostKey** |If a meeting is active and there is no current host, the host key required to claim host.|**String**| +|**pstnPasscode**|If required, the DTMF digits necessary to join a meeting via a phone dial in|**String**| +|**webJoinToken** |If a meeting is active, the token required to join via the web client.|**String**
_required_| +|**dialInNumbers**|An array of DialInNumber objects|** DialInNumber** array| + +# Meeting +|Name|Description|Schema| +|---|---|---|---| +|**id**|ID of the meeting|**String**
_required_| +|**active**|Whether the meeting is currently active|**Boolean**
_required_| +|**allowPublic** |Whether the meeting can be joined by non-members of the space|**Boolean**
_required_| +|**startTime** |The start date/time of the meeting |**Date**| +|**endTime** |The date/time the meeting ended |**Date**| +|**description**|A description for the meeting|**String**| +|**recordings**|An array of MeetingRecording objects. A new MeetingRecording is created each time a cloud recording is started in the meeting.|** MeetingRecording** array| +|**activeParticipants**|If a meeting is active, a PersonCollection representing the current Workspace users.|**PersonCollection**| +|**attendeesParticipants**|A PersonCollection representing the Workspace users who have attended the meeting.|**PersonCollection**| +|**space** |The Space where the meeting was held.|**Space**
_required_| +|**message** |A Message representing where in the Space transcript the meeting occurred. |**Message**| +|**joinInfo** |If a meeting is active, the details required to join the meeting |**JoinInfo**| + + + +## Example Request + +~~~~ +Method: POST +URL: https://api.watsonwork.ibm.com/graphql +Headers: 'Content-Type: application/graphql' , 'x-graphql-view: PUBLIC, EXPERIMENTAL' +Body: +{ + query { + meeting(spaceId: "space-id") { + active + joinInfo { + meetingNumber + password + meetingProviderJoinUrl + } + } + } +} +~~~~ +## Example Result + +~~~~ +{ + "data": { + "meeting": { + "active": true, + "joinInfo": { + "password": "235253938", + "password": "53621872", + "meetingProviderJoinUrl": "https://zoom.us/j/235253938?pwd=vBRBlZBaXAKwIumekTziMw" + } + } + } +} +~~~~ + +Try it out with our GraphQL tool - Get a meeting by space-id diff --git a/guides/V1_Start_Meeting.md b/guides/V1_Start_Meeting.md new file mode 100644 index 0000000..948ed0b --- /dev/null +++ b/guides/V1_Start_Meeting.md @@ -0,0 +1,73 @@ +--- +copyright: 'Copyright IBM Corp. 2018' +link: 'start-meeting' +is: 'experimental' +--- + +# Start a meeting within a space + +## Concepts + +The _startMeeting_ mutation allows the API caller to start a meeting with a **space**. The mutation accepts a Space ID (spaceId) as an argument, and makes the request on behalf of the caller, starting a meeting within the specified space. The result will reflect the whether the call was accepted for processing by the service. + +## Schema + +### Start Meeting Mutation + + + +```graphql +type MutationRoot { + ... + startMeeting(input: StartMeetingInput!): MeetingMutationOutput +} + +type StartMeetingInput { + spaceId: ID! +} + +type MeetingMutationOutput { + accepted: Boolean! +} +``` + +## Field definitions + +# StartMeetingInput +|Name|Description|Schema| +|---|---|---|---| +|**spaceId**|Space ID of the space in which to start a meeting|**String**
_required_| + +# MeetingMutationOutput +|Name|Description|Schema| +|---|---|---|---| +|**accepted**|Whether the request to start a meeting was accepted for processing|**Boolean**
_required_| + +## Example Request + +~~~~ +Method: POST +URL: https://api.watsonwork.ibm.com/graphql +Headers: 'Content-Type: application/graphql' , 'x-graphql-view: PUBLIC, EXPERIMENTAL' +Body: +{ + mutation { + startMeeting(input: {spaceId : "5ad0fabfe4b078066d690a24"}) { + accepted + } + } +} +~~~~ +## Example Result + +~~~~ +{ + "data": { + "startMeeting": { + "accepted": "true" + } + } +} +~~~~ + +Try it out with our GraphQL tool - Start a meeting diff --git a/guides/V1_Update_Meeting_Settings.md b/guides/V1_Update_Meeting_Settings.md new file mode 100644 index 0000000..e3d8a64 --- /dev/null +++ b/guides/V1_Update_Meeting_Settings.md @@ -0,0 +1,75 @@ +--- +copyright: 'Copyright IBM Corp. 2018' +link: 'update-meeting-settings' +is: 'experimental' +--- + +# Update a meeting + +## Concepts + +The _updateMeetingSettings_ mutation allows the API caller to configure options on the meeting. The mutation accepts a Space ID (spaceId), and an allowPublic boolean as arguments, and makes the request on behalf of the caller, updating the meeting within the specified space. The result will reflect the whether the call was accepted for processing by the service. + +## Schema + +### Update Meeting Settings Mutation + + + +```graphql +type MutationRoot { + ... + updateMeetingSettings(input: UpdateMeetingSettingsInput!): MeetingSettingsMutationOutput +} + +type UpdateMeetingSettingsInput { + spaceId: ID! + allowPublic: Boolean! +} + +type MeetingSettingsMutationOutput { + accepted: Boolean! +} +``` +## Field definitions + +# UpdateMeetingSettingsInput +|Name|Description|Schema| +|---|---|---|---| +|**spaceId**|Space ID of the space for which the meeting should be updated|**String**
_required_| +|**allowPublic**|Whether or not non-space members can join meetings started in the space|**Boolean**
_required_| + +# MeetingSettingsMutationOutput +|Name|Description|Schema| +|---|---|---|---| +|**accepted**|Whether the request to update the meeting was accepted for processing|**Boolean**
_required_| + + +## Example Request + +~~~~ +Method: POST +URL: https://api.watsonwork.ibm.com/graphql +Headers: 'Content-Type: application/graphql' , 'x-graphql-view: PUBLIC, EXPERIMENTAL' +Body: +{ + mutation { + updateMeetingSettings(input: {spaceId : "5ad0fabfe4b078066d690a24", allowPublic: true}) { + accepted + } + } +} +~~~~ +## Example Result + +~~~~ +{ + "data": { + "updateMeetingSettings": { + "accepted": "true" + } + } +} +~~~~ + +Try it out with our GraphQL tool - Update meeting settings diff --git a/guides/V1_spaces_main.md b/guides/V1_spaces_main.md index 4801f0c..be6e46a 100644 --- a/guides/V1_spaces_main.md +++ b/guides/V1_spaces_main.md @@ -23,3 +23,4 @@ Watson Work Services represents a Space with this object. | members(before: String, after: String, first: Int, last: Int) | PersonCollection | The members of this space provided as a PersonCollection | membersUpdated | Date | The date the membership was updated | | conversation |Conversation | The conversation object for this space | +| activeMeeting | JoinInfo | Indicates that there is a meeting active within this space and includes the necessary information to join the meeting. This requires the `EXPERIMENTAL` value in `x-graphql-view header`. | diff --git a/guides/V1_wwsg_Meetings.md b/guides/V1_wwsg_Meetings.md new file mode 100644 index 0000000..5fce2b4 --- /dev/null +++ b/guides/V1_wwsg_Meetings.md @@ -0,0 +1,26 @@ +--- +copyright: 'Copyright IBM Corp. 2018' +link: 'meetings-overview' +is: 'experimental' +--- +## Meetings Overview + +Watson Work Services provides a set of **meeting** APIs for callers to start and get details about meetings. Meetings are online collaboration sessions which allow users to communicate with one another using the Workspace client, Zoom client, or a basic telephone. Meetings include audio, video, screensharing, and whiteboarding. Meetings happen within the context of a **space** and can either be restricted to only members of that space, or can be opened to public access so you can meet with people outside of your team or company. + +### External APIs + + * GraphQL mutation for starting a meeting + * **startMeeting** [Start a meeting within a space](https://github.com/watsonwork/watsonwork-developer-docs/blob/master/guides/V1_Start_Meeting.md) +
+* GraphQL mutation for updating a meeting + * **updateMeeting** [Update a meeting](https://github.com/watsonwork/watsonwork-developer-docs/blob/master/guides/V1_Update_Meeting.md) +
+ * GraphQL query for meeting details + * **meeting** [Get information about the meeting](https://github.com/watsonwork/watsonwork-developer-docs/blob/master/guides/V1_Meeting.md) +
+ * GraphQL query for getting an active meeting within a space + * **Space.activeMeeting** [Optional inclusion of activeMeeting on a space](https://github.com/watsonwork/watsonwork-developer-docs/blob/master/guides/V1_spaces_main.md) +
+ * REST request for getting details of a public meeting + * **/api/v1/publicMeeting/bySpaceId/** [Get information about a public meeting](https://github.com/watsonwork/watsonwork-developer-docs/blob/master/guides/V1_Get_Public_Meeting.md) +