Skip to content

Instantly share code, notes, and snippets.

@sduthil
Last active August 5, 2021 21:27
Show Gist options
  • Save sduthil/2909eeb701c1808e7bd0df9223c33d9e to your computer and use it in GitHub Desktop.
Save sduthil/2909eeb701c1808e7bd0df9223c33d9e to your computer and use it in GitHub Desktop.
swagger: '2.0'
info:
title: wazo-confd meetings API
version: '1.1'
schemes:
- http
basePath: /1.1
consumes:
- application/json
produces:
- application/json
securityDefinitions:
wazo_auth_token:
type: apiKey
name: X-Auth-Token
in: header
security:
- wazo_auth_token: []
paths:
/meetings:
get:
operationId: list_meetings
summary: List meetings
description: '**Required ACL:** `confd.meetings.read`'
tags:
- meetings
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/recurse'
- $ref: '#/parameters/order'
- $ref: '#/parameters/direction'
- $ref: '#/parameters/limit'
- $ref: '#/parameters/offset'
- $ref: '#/parameters/search'
responses:
'200':
description: Meetings list
schema:
$ref: '#/definitions/MeetingItems'
post:
operationId: create_meeting
summary: Create meeting
description: '**Required ACL:** `confd.meetings.create`'
tags:
- meetings
parameters:
- $ref: '#/parameters/tenantuuid'
- name: body
in: body
description: Meeting to create
required: true
schema:
$ref: '#/definitions/MeetingRequest'
responses:
'201':
description: Meeting created
schema:
$ref: '#/definitions/Meeting'
'400':
$ref: '#/responses/CreateError'
/meetings/{meeting_uuid}:
get:
operationId: get_meeting
summary: Get meeting
description: '**Required ACL:** `confd.meetings.{meeting_uuid}.read`'
tags:
- meetings
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
responses:
'200':
description: Meeting
schema:
$ref: '#/definitions/Meeting'
'404':
$ref: '#/responses/NotFoundError'
put:
operationId: update_meeting
summary: Update meeting
description: '**Required ACL:** `confd.meetings.{meeting_uuid}.update`'
tags:
- meetings
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
- name: body
in: body
required: true
schema:
$ref: '#/definitions/MeetingRequest'
responses:
'204':
$ref: '#/responses/ResourceUpdated'
'400':
$ref: '#/responses/UpdateError'
'404':
$ref: '#/responses/NotFoundError'
delete:
operationId: delete_meeting
summary: Delete meeting
description: '**Required ACL:** `confd.meetings.{meeting_uuid}.delete`'
tags:
- meetings
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
responses:
'204':
$ref: '#/responses/ResourceDeleted'
'400':
$ref: '#/responses/DeleteError'
'404':
$ref: '#/responses/NotFoundError'
/users/me/meetings:
get:
operationId: list_user_meetings
summary: List user meetings
description: '**Required ACL:** `confd.users.me.meetings.read`'
tags:
- meetings
- users
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/recurse'
- $ref: '#/parameters/order'
- $ref: '#/parameters/direction'
- $ref: '#/parameters/limit'
- $ref: '#/parameters/offset'
- $ref: '#/parameters/search'
responses:
'200':
description: Meetings list
schema:
$ref: '#/definitions/MeetingItems'
post:
operationId: create_user_meeting
summary: Create user meeting
description: '**Required ACL:** `confd.users.me.meetings.create`'
tags:
- meetings
- users
parameters:
- $ref: '#/parameters/tenantuuid'
- name: body
in: body
description: Meeting to create
required: true
schema:
$ref: '#/definitions/MeetingUserRequest'
responses:
'201':
description: Meeting created
schema:
$ref: '#/definitions/Meeting'
'400':
$ref: '#/responses/CreateError'
/users/me/meetings/{meeting_uuid}:
get:
operationId: get_user_meeting
summary: Get one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.read`'
tags:
- meetings
- users
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
responses:
'200':
description: Meeting
schema:
$ref: '#/definitions/Meeting'
'404':
$ref: '#/responses/NotFoundError'
put:
operationId: update_user_meeting
summary: Update one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.update`'
tags:
- meetings
- users
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
- name: body
in: body
required: true
schema:
$ref: '#/definitions/MeetingRequest'
responses:
'204':
$ref: '#/responses/ResourceUpdated'
'400':
$ref: '#/responses/UpdateError'
'404':
$ref: '#/responses/NotFoundError'
delete:
operationId: delete_user_meeting
summary: Delete one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.delete`'
tags:
- meetings
- users
parameters:
- $ref: '#/parameters/tenantuuid'
- $ref: '#/parameters/meeting_uuid'
responses:
'204':
$ref: '#/responses/ResourceDeleted'
'400':
$ref: '#/responses/DeleteError'
'404':
$ref: '#/responses/NotFoundError'
/guests/me/meetings/{meeting_uuid}:
get:
operationId: get_guest_meeting
summary: Get one guest meeting
description: '**Required ACL:** none'
tags:
- meetings
- guests
parameters:
- $ref: '#/parameters/meeting_uuid'
responses:
'200':
description: Meetings list
schema:
$ref: '#/definitions/Meeting'
definitions:
MeetingItems:
type: object
properties:
items:
type: array
items:
$ref: '#/definitions/Meeting'
Meeting:
type: object
properties:
uuid:
type: string
owner_uuids:
type: array
items:
type: string
name:
type: string
hostname:
type: string
readOnly: true
guest_sip_authorization:
type: string
readOnly: true
description: "Format: base64(username:password), same as HTTP Basic Auth."
MeetingUserRequest:
type: object
properties:
name:
type: string
MeetingRequest:
type: object
allOf:
- $ref: '#/definitions/MeetingUserRequest'
- properties:
owner_uuids:
type: array
items:
type: string
Error:
type: array
items:
type: string
parameters:
meeting_uuid:
required: true
name: meeting_uuid
in: path
type: string
description: Meeting UUID
limit:
required: false
name: limit
in: query
type: integer
description: Maximum number of items to return in the list
offset:
required: false
name: offset
in: query
type: integer
description: Number of items to skip over in the list. Useful for pagination.
order:
required: false
name: order
in: query
type: string
description: Name of the field to use for sorting the list of items returned.
recurse:
name: recurse
in: query
type: boolean
description: Should the query include sub-tenants
default: false
required: false
search:
required: false
name: search
in: query
type: string
description: Search term for filtering a list of items. Only items with a field
containing the search term will be returned.
tenantuuid:
name: Wazo-Tenant
type: string
in: header
description: "The tenant's UUID, defining the ownership of a given resource."
required: false
direction:
required: false
name: direction
in: query
type: string
enum:
- asc
- desc
description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order
responses:
GenericError:
description: An error occurred during the operation
schema:
$ref: '#/definitions/Error'
CreateError:
description: An error occurred when creating the resource
schema:
$ref: '#/definitions/Error'
UpdateError:
description: An error occurred when updating the resource
schema:
$ref: '#/definitions/Error'
DeleteError:
description: An error occurred when deleting the resource
schema:
$ref: '#/definitions/Error'
NotFoundError:
description: The resource requested was not found on the server
schema:
$ref: '#/definitions/Error'
ResourceUpdated:
description: Resource was updated successfully
ResourceDeleted:
description: Resource was deleted successfully
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment