mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-31 18:37:00 -04:00 
			
		
		
		
	* Initial notification schema * Add: notification event and settings schema * Add: NotificationController * Update bundled spec * Fix: `operationId` typos * Fix: library response to be arroy of objects * Fix: notification ID is not uuid * Add: `nullable` notification creation parameters * Nullable libraryId schema * Remove: `id` from Notification requestBody * Fix: `allOf` for `libraryItemSequence` * Fix: required `id` in wrong body * Fix: libraryItem typos * Update: bundled spec
		
			
				
	
	
		
			224 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			224 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| components:
 | |
|   responses:
 | |
|     notification200:
 | |
|       description: Notification endpoint success.
 | |
|       content:
 | |
|         text/html:
 | |
|           schema:
 | |
|             type: string
 | |
|             example: OK
 | |
|     notification404:
 | |
|       description: An admin user is required or notification with the given ID not found.
 | |
|       content:
 | |
|         text/html:
 | |
|           schema:
 | |
|             type: string
 | |
|             example: Series not found.
 | |
| paths:
 | |
|   /api/notifications:
 | |
|     get:
 | |
|       operationId: getNotifications
 | |
|       description: Get all Apprise notification events and notification settings for server.
 | |
|       tags:
 | |
|         - Notification
 | |
|       responses:
 | |
|         '200':
 | |
|           description: Success
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   data:
 | |
|                     type: object
 | |
|                     properties:
 | |
|                       events:
 | |
|                         type: array
 | |
|                         items:
 | |
|                           $ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
 | |
|                   settings:
 | |
|                     $ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|     patch:
 | |
|       operationId: updateNotificationSettings
 | |
|       description: Update Notification settings.
 | |
|       tags:
 | |
|         - Notification
 | |
|       requestBody:
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               type: object
 | |
|               properties:
 | |
|                 appriseApiUrl:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/appriseApiUrl'
 | |
|                 maxFailedAttempts:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/maxFailedAttempts'
 | |
|                 maxNotificationQueue:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/maxNotificationQueue'
 | |
|       responses:
 | |
|         '200':
 | |
|           $ref: '#/components/responses/notification200'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|     post:
 | |
|       operationId: createNotification
 | |
|       description: Update Notification settings.
 | |
|       tags:
 | |
|         - Notification
 | |
|       requestBody:
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               type: object
 | |
|               properties:
 | |
|                 libraryId:
 | |
|                   $ref: '../objects/Library.yaml#/components/schemas/libraryIdNullable'
 | |
|                 eventName:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
 | |
|                 urls:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/urls'
 | |
|                 titleTemplate:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
 | |
|                 bodyTemplate:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
 | |
|                 enabled:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/enabled'
 | |
|                 type:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/notificationType'
 | |
|               required:
 | |
|                 - eventName
 | |
|                 - urls
 | |
|                 - titleTemplate
 | |
|                 - bodyTemplate
 | |
|       responses:
 | |
|         '200':
 | |
|           description: Success
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   settings:
 | |
|                     $ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|   /api/notificationdata:
 | |
|     get:
 | |
|       operationId: getNotificationEventData
 | |
|       description: Get all Apprise notification event data for the server.
 | |
|       tags:
 | |
|         - Notification
 | |
|       responses:
 | |
|         '200':
 | |
|           description: Success
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   events:
 | |
|                     type: array
 | |
|                     items:
 | |
|                       $ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|   /api/notifications/test:
 | |
|     get:
 | |
|       operationId: sendDefaultTestNotification
 | |
|       description: Send a test notification.
 | |
|       tags:
 | |
|         - Notification
 | |
|       parameters:
 | |
|         - in: query
 | |
|           name: fail
 | |
|           description: Whether to intentionally cause the notification to fail. `0` for false, `1` for true.
 | |
|           schema:
 | |
|             type: integer
 | |
|       responses:
 | |
|         '200':
 | |
|           $ref: '#/components/responses/notification200'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|   /api/notifications/{id}:
 | |
|     parameters:
 | |
|       - name: id
 | |
|         in: path
 | |
|         description: The ID of the notification.
 | |
|         required: true
 | |
|         schema:
 | |
|           $ref: '../objects/Notification.yaml#/components/schemas/notificationId'
 | |
|     delete:
 | |
|       operationId: deleteNotification
 | |
|       description: Delete the notification by ID and return the notification settings.
 | |
|       tags:
 | |
|         - Notification
 | |
|       responses:
 | |
|         '200':
 | |
|           description: Success
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   settings:
 | |
|                     $ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|     patch:
 | |
|       operationId: updateNotification
 | |
|       description: Update individual Notification
 | |
|       tags:
 | |
|         - Notification
 | |
|       requestBody:
 | |
|         content:
 | |
|           application/json:
 | |
|             schema:
 | |
|               type: object
 | |
|               properties:
 | |
|                 libraryId:
 | |
|                   $ref: '../objects/Library.yaml#/components/schemas/libraryId'
 | |
|                 eventName:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
 | |
|                 urls:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/urls'
 | |
|                 titleTemplate:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
 | |
|                 bodyTemplate:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
 | |
|                 enabled:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/enabled'
 | |
|                 type:
 | |
|                   $ref: '../objects/Notification.yaml#/components/schemas/notificationType'
 | |
|       responses:
 | |
|         '200':
 | |
|           description: Success
 | |
|           content:
 | |
|             application/json:
 | |
|               schema:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   settings:
 | |
|                     $ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 | |
|   /api/notifications/{id}/test:
 | |
|     parameters:
 | |
|       - name: id
 | |
|         in: path
 | |
|         description: The ID of the notification.
 | |
|         required: true
 | |
|         schema:
 | |
|           $ref: '../objects/Notification.yaml#/components/schemas/notificationId'
 | |
|     get:
 | |
|       operationId: sendTestNotification
 | |
|       description: Send a test to the given notification.
 | |
|       tags:
 | |
|         - Notification
 | |
|       responses:
 | |
|         '200':
 | |
|           $ref: '#/components/responses/notification200'
 | |
|         '404':
 | |
|           $ref: '#/components/responses/notification404'
 |