mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	* Formatting updates * Add: backup completion notification * Fix: comment for backup * Add: backup size units to notification * Add: failed backup notification * Add: calls to failed backup notification * Update: notification OpenAPI spec * Update notifications to first check if any are active for an event, update JS docs --------- Co-authored-by: advplyr <advplyr@protonmail.com>
		
			
				
	
	
		
			143 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
components:
 | 
						|
  schemas:
 | 
						|
    notificationId:
 | 
						|
      type: string
 | 
						|
      description: The ID of the notification.
 | 
						|
      example: notification-settings
 | 
						|
      # This is using a value of `notification-settings`, not a UUID. Need to investigate
 | 
						|
      #format: uuid
 | 
						|
      #example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
 | 
						|
    appriseApiUrl:
 | 
						|
      type: string
 | 
						|
      nullable: true
 | 
						|
      description: The full URL where the Apprise API to use is located.
 | 
						|
    maxFailedAttempts:
 | 
						|
      type: integer
 | 
						|
      minimum: 0
 | 
						|
      default: 5
 | 
						|
      description: The maximum number of times a notification fails before being disabled.
 | 
						|
    maxNotificationQueue:
 | 
						|
      type: integer
 | 
						|
      description: The maximum number of notifications in the notification queue before events are ignored.
 | 
						|
    notificationEventName:
 | 
						|
      type: string
 | 
						|
      description: The name of the event the notification will fire on.
 | 
						|
      enum: ['onPodcastEpisodeDownloaded', 'onBackupCompleted', 'onBackupFailed', 'onTest']
 | 
						|
    urls:
 | 
						|
      type: array
 | 
						|
      items:
 | 
						|
        type: string
 | 
						|
      description: The Apprise URLs to use for the notification.
 | 
						|
      example: http://192.168.0.3:8000/notify/my-cool-notification
 | 
						|
    titleTemplate:
 | 
						|
      type: string
 | 
						|
      description: The template for the notification title.
 | 
						|
      example: 'New {{podcastTitle}} Episode!'
 | 
						|
    bodyTemplate:
 | 
						|
      type: string
 | 
						|
      description: The template for the notification body.
 | 
						|
      example: '{{episodeTitle}} has been added to {{libraryName}} library.'
 | 
						|
    enabled:
 | 
						|
      type: boolean
 | 
						|
      default: false
 | 
						|
      description: Whether the notification is enabled.
 | 
						|
    notificationType:
 | 
						|
      type: string
 | 
						|
      enum: ['info', 'success', 'warning', 'failure']
 | 
						|
      nullable: true
 | 
						|
      default: 'info'
 | 
						|
      description: The notification's type.
 | 
						|
    Notification:
 | 
						|
      type: object
 | 
						|
      properties:
 | 
						|
        id:
 | 
						|
          $ref: '#/components/schemas/notificationId'
 | 
						|
        libraryId:
 | 
						|
          $ref: './Library.yaml#/components/schemas/libraryIdNullable'
 | 
						|
        eventName:
 | 
						|
          $ref: '#/components/schemas/notificationEventName'
 | 
						|
        urls:
 | 
						|
          $ref: '#/components/schemas/urls'
 | 
						|
        titleTemplate:
 | 
						|
          $ref: '#/components/schemas/titleTemplate'
 | 
						|
        bodyTemplate:
 | 
						|
          $ref: '#/components/schemas/bodyTemplate'
 | 
						|
        enabled:
 | 
						|
          $ref: '#/components/schemas/enabled'
 | 
						|
        type:
 | 
						|
          $ref: '#/components/schemas/notificationType'
 | 
						|
        lastFiredAt:
 | 
						|
          type: integer
 | 
						|
          nullable: true
 | 
						|
          description: The time (in ms since POSIX epoch) when the notification was last fired. Will be null if the notification has not fired.
 | 
						|
        lastAttemptFailed:
 | 
						|
          type: boolean
 | 
						|
          description: Whether the last notification attempt failed.
 | 
						|
        numConsecutiveFailedAttempts:
 | 
						|
          type: integer
 | 
						|
          description: The number of consecutive times the notification has failed.
 | 
						|
          default: 0
 | 
						|
        numTimesFired:
 | 
						|
          type: integer
 | 
						|
          description: The number of times the notification has fired.
 | 
						|
          default: 0
 | 
						|
        createdAt:
 | 
						|
          $ref: '../schemas.yaml#/components/schemas/createdAt'
 | 
						|
    NotificationEvent:
 | 
						|
      type: object
 | 
						|
      properties:
 | 
						|
        name:
 | 
						|
          type: string
 | 
						|
          description: The name of the notification event. The names and allowable values are defined at https://github.com/advplyr/audiobookshelf/blob/master/server/utils/notifications.js
 | 
						|
        requiresLibrary:
 | 
						|
          type: boolean
 | 
						|
          description: Whether the notification event depends on a library existing.
 | 
						|
        libraryMediaType:
 | 
						|
          type: string
 | 
						|
          description: The type of media of the library the notification depends on existing. Will not exist if requiresLibrary is false.
 | 
						|
          nullable: true
 | 
						|
        description:
 | 
						|
          type: string
 | 
						|
          description: The description of the notification event.
 | 
						|
        variables:
 | 
						|
          type: array
 | 
						|
          items:
 | 
						|
            type: string
 | 
						|
          description: The variables of the notification event that can be used in the notification templates.
 | 
						|
        defaults:
 | 
						|
          type: object
 | 
						|
          properties:
 | 
						|
            title:
 | 
						|
              type: string
 | 
						|
              description: The default title template for notifications using the notification event.
 | 
						|
            body:
 | 
						|
              type: string
 | 
						|
              description: The default body template for notifications using the notification event.
 | 
						|
        testData:
 | 
						|
          type: object
 | 
						|
          description: The keys of the testData object will match the list of variables. The values will be the data used when sending a test notification.
 | 
						|
          additionalProperties:
 | 
						|
            type: string
 | 
						|
    NotificationSettings:
 | 
						|
      type: object
 | 
						|
      properties:
 | 
						|
        id:
 | 
						|
          $ref: '#/components/schemas/notificationId'
 | 
						|
        appriseType:
 | 
						|
          type: string
 | 
						|
          description: The type of Apprise that will be used. At the moment, only api is available.
 | 
						|
        appriseApiUrl:
 | 
						|
          $ref: '#/components/schemas/appriseApiUrl'
 | 
						|
        notifications:
 | 
						|
          type: array
 | 
						|
          items:
 | 
						|
            $ref: '#/components/schemas/Notification'
 | 
						|
          description: The set notifications.
 | 
						|
        maxFailedAttempts:
 | 
						|
          $ref: '#/components/schemas/maxFailedAttempts'
 | 
						|
        maxNotificationQueue:
 | 
						|
          $ref: '#/components/schemas/maxNotificationQueue'
 | 
						|
        notificationDelay:
 | 
						|
          type: integer
 | 
						|
          description: The time (in ms) between notification pushes.
 |