UNPKG

@softvisio/core

Version:
112 lines (97 loc) 3.27 kB
- $id: public-config type: object properties: types: false - $id: config type: object properties: channels: type: object propertyNames: { type: string } properties: internal: { $ref: common#/$defs/channel } email: { $ref: common#/$defs/channel } telegram: { $ref: common#/$defs/channel } push: { $ref: common#/$defs/channel } additionalProperties: { $ref: common#/$defs/channel } required: [internal, email, telegram, push] internalNotificationsMaxAge: { type: string, format: interval } smtp: { type: string, format: url } telegramBot: type: object properties: type: { type: string, format: camel-case-strict } apiToken: { type: ["null", string] } additionalProperties: false required: [type, apiToken] types: anyOf: - type: "null" - type: object properties: security: { $ref: common#/$defs/type } propertyNames: { type: string, format: kebab-case } additionalProperties: { $ref: common#/$defs/type } required: [security] firebase: anyOf: - type: "null" - type: object properties: prefix: anyOf: - type: "null" - { type: string, format: kebab-case } serviceAccount: anyOf: - type: "null" - type: object properties: type: { const: service_account } project_id: { type: string } private_key_id: { type: string } private_key: { type: string } client_email: { type: string, format: email } client_id: { type: string } auth_uri: { type: string, format: uri } token_uri: { type: string, format: uri } auth_provider_x509_cert_url: { type: string, format: url } client_x509_cert_url: { type: string, format: url } additionalProperties: false required: [project_id, private_key, client_email, token_uri] additionalProperties: false additionalProperties: false required: - channels - internalNotificationsMaxAge - smtp - telegramBot - types - firebase - $id: common $defs: channel: type: object properties: enabled: { type: boolean } editable: { type: boolean } subscribed: { type: boolean } additionalProperties: false required: [enabled, editable, subscribed] type: type: object properties: name: { type: object, instanceof: Locale.L10nt } description: { type: object, instanceof: Locale.L10nt } channels: type: object propertyNames: { enum: [internal, email, telegram, push] } additionalProperties: type: object properties: enabled: { type: boolean } editable: { type: boolean } subscribed: { type: boolean } additionalProperties: false additionalProperties: false required: [name, description]