@softvisio/core
Version:
Softisio core
112 lines (97 loc) • 3.27 kB
YAML
- $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]