diff --git a/swagger.yaml b/swagger.yaml new file mode 100644 index 0000000..e8e0316 --- /dev/null +++ b/swagger.yaml @@ -0,0 +1,198 @@ +openapi: '3.0.3' +info: + title: Apprise API + description: https://github.com/caronc/apprise-api + version: 0.7.0 +paths: + /notify: + post: + operationId: Stateless_SendNotification + summary: Sends one or more notifications to the URLs identified as part of the payload, or those identified in the environment variable APPRISE_STATELESS_URLS. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/StatelessNotificationRequest' + responses: + 200: + description: OK + tags: + - Stateless + /add/{key}: + post: + operationId: Persistent_AddConfiguration + summary: Saves Apprise Configuration (or set of URLs) to the persistent store. + parameters: + - in: path + name: key + required: true + schema: + type: string + description: Configuration key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddConfigurationRequest' + responses: + 200: + description: OK + tags: + - Persistent + /del/{key}: + post: + operationId: Persistent_RemoveConfiguration + summary: Removes Apprise Configuration from the persistent store. + parameters: + - $ref: '#/components/parameters/key' + responses: + 200: + description: OK + tags: + - Persistent + /get/{key}: + post: + operationId: Persistent_GetConfiguration + summary: Returns the Apprise Configuration from the persistent store. + parameters: + - $ref: '#/components/parameters/key' + responses: + 200: + description: OK + content: + text/plain: + schema: + type: string + tags: + - Persistent + /notify/{key}: + post: + operationId: Persistent_SendNotification + summary: Sends notification(s) to all of the end points you've previously configured associated with a {KEY}. + parameters: + - $ref: '#/components/parameters/key' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PersistentNotificationRequest' + responses: + 200: + description: OK + tags: + - Persistent + /json/urls/{key}: + get: + operationId: Persistent_GetUrls + summary: Returns a JSON response object that contains all of the URLS and Tags associated with the key specified. + parameters: + - $ref: '#/components/parameters/key' + - in: query + name: privacy + schema: + type: integer + enum: [0, 1] + # This should be changed to use 'oneOf' when upgrading to OpenApi 3.1 + x-enumNames: ["ShowSecrets", "HideSecrets"] + required: false + - in: query + name: tag + schema: + type: string + default: all + required: false + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/JsonUrlsResponse' + tags: + - Persistent + +components: + parameters: + key: + in: path + name: key + required: true + schema: + type: string + minLength: 1 + maxLength: 64 + description: Configuration key + schemas: + NotificationType: + type: string + enum: [info, warning, failure] + default: info + NotificationFormat: + type: string + enum: [text, markdown, html] + default: text + StatelessNotificationRequest: + properties: + urls: + type: array + items: + type: string + body: + type: string + title: + type: string + type: + $ref: '#/components/schemas/NotificationType' + format: + $ref: '#/components/schemas/NotificationFormat' + tag: + type: string + required: + - body + AddConfigurationRequest: + properties: + urls: + type: array + items: + type: string + default: null + config: + type: string + format: + type: string + enum: [text, yaml] + PersistentNotificationRequest: + properties: + body: + type: string + title: + type: string + type: + $ref: '#/components/schemas/NotificationType' + format: + $ref: '#/components/schemas/NotificationFormat' + tag: + type: string + default: all + required: + - body + JsonUrlsResponse: + properties: + tags: + type: array + items: + type: string + urls: + type: array + items: + type: object + $ref: '#/components/schemas/url' + url: + properties: + url: + type: string + tags: + type: array + items: + type: string