$schema: http://json-schema.org/draft-07/schema# $id: http://pacalis.net/dnsrobocert.schema.json title: NamedCrypt Configuration description: The YAML/JSON configuration for NamedCrypt type: object properties: draft: type: boolean acme: type: object properties: email_account: type: string pattern: ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$ staging: type: boolean api_version: type: number enum: [1, 2] directory_url: type: string pattern: ^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})$ certs_root_path: type: string certs_permissions: type: object properties: files_mode: type: [integer, string] dirs_mode: type: [integer, string] user: type: [integer, string] group: type: [integer, string] additionalProperties: false crontab_renew: type: string additionalProperties: false api: type: object profiles: type: array items: type: object properties: name: type: string provider: type: string provider_options: type: object sleep_time: type: number max_checks: type: number delegated_subdomain: type: string pattern: ^(([a-zA-Z0-9*]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.){1,}([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]){1,}$ ttl: type: number required: [name, provider] additionalProperties: false certificates: type: array items: type: object properties: profile: type: string domains: type: array items: type: string pattern: ^(([a-zA-Z0-9*]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.){1,}([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]){1,}$ name: type: string pfx: type: object properties: export: type: boolean passphrase: type: string required: [export] additionalProperties: false autorestart: type: array items: type: object properties: containers: type: array items: type: string swarm_services: type: array items: type: string podman_containers: type: array items: type: string additionalProperties: false autocmd: type: array items: type: object properties: containers: type: array items: type: string cmd: anyOf: - type: string - type: array items: type: string required: [cmd] additionalProperties: false deploy_hook: type: string force_renew: type: boolean follow_cnames: type: boolean reuse_key: type: boolean key_type: type: string enum: [rsa, ecdsa] required: [domains, profile] additionalProperties: false additionalProperties: false