{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","description":"Service level agreement between two enterprises (Belgium): parties, main contract, services, hours, availability target, incident classes and targets, support, escalation, service credits, exclusions, review, courts. Every target, time, credit and cap is the parties' own statement: nothing is defaulted or computed.","additionalProperties":false,"required":["provider","customer","agreement","services","hours","availability","severities","support","credits","exclusions","disputes","signatures"],"properties":{"provider":{"type":"object","additionalProperties":false,"description":"The provider (company block; enterprise number, domiciliation and payment account: Code of economic law art. III.25).","required":["name","address","enterprise_number","iban"],"properties":{"name":{"type":"string","description":"Name or company name of the enterprise."},"legal_form":{"type":"string","description":"Legal form (for example SRL, SA, BV), as the enterprise writes it."},"address":{"type":"string","description":"Registered office as entered in the KBO/BCE: this is the domiciliation of Code of economic law art. III.25, al. 2."},"enterprise_number":{"type":"string","description":"Belgian enterprise number (KBO/BCE), written 0123.456.789.","pattern":"^[01][0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"vat_number":{"type":"string","description":"Belgian VAT number, written BE0123456789.","pattern":"^BE[01][0-9]{9}$"},"iban":{"type":"string","description":"IBAN of a payment account the enterprise holds (Code of economic law art. III.25, al. 2)."},"rpm_court":{"type":"string","description":"Seat of the enterprise court named after the words RPM / RPR (legal persons only)."},"in_liquidation":{"type":"boolean","description":"true when the legal person is in liquidation; printed only when true."}}},"customer":{"type":"object","additionalProperties":false,"description":"The customer (an enterprise).","required":["name","address"],"properties":{"name":{"type":"string","description":"Name or company name of the customer."},"address":{"type":"string","description":"Address of the customer."},"enterprise_number":{"type":"string","description":"Belgian enterprise number (KBO/BCE), written 0123.456.789.","pattern":"^[01][0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"vat_number":{"type":"string","description":"Belgian VAT number, written BE0123456789.","pattern":"^BE[01][0-9]{9}$"}}},"agreement":{"type":"object","additionalProperties":false,"required":["reference","date","main_contract_reference","effective_date"],"properties":{"reference":{"type":"string","description":"Reference of this service level agreement."},"date":{"type":"string","description":"Date of this agreement.","format":"date"},"main_contract_reference":{"type":"string","description":"Reference of the main contract (SaaS, hosting, maintenance, managed service) this agreement belongs to."},"main_contract_date":{"type":"string","description":"Date of the main contract.","format":"date"},"effective_date":{"type":"string","description":"Date from which the service levels apply.","format":"date"},"term_text":{"type":"string","description":"Term of the agreement, as the parties word it (for example that it follows the main contract)."}}},"services":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","description"],"properties":{"name":{"type":"string","description":"Name of the service."},"description":{"type":"string","description":"What the service is."}}},"description":"Services covered.","minItems":1},"hours":{"type":"object","additionalProperties":false,"required":["service_hours","support_hours","maintenance_windows"],"properties":{"service_hours":{"type":"string","description":"Hours during which the service is provided, as the parties word them."},"support_hours":{"type":"string","description":"Hours during which support is available, as the parties word them."},"maintenance_windows":{"type":"string","description":"Scheduled maintenance windows, as the parties word them."},"timezone":{"type":"string","description":"Time zone the hours refer to."}}},"availability":{"type":"object","additionalProperties":false,"required":["target_pct","period","measurement_method"],"properties":{"target_pct":{"type":"number","description":"Availability target, in percent of the measurement period.","minimum":0,"maximum":100},"period":{"type":"string","description":"Period over which the availability is measured.","enum":["monthly","quarterly","yearly"]},"measurement_method":{"type":"string","description":"How the availability is measured, as the parties word it."},"excluded_time":{"type":"array","items":{"type":"string"},"description":"Time that does not count in the measurement, one item per line."},"reporting_cadence":{"type":"string","description":"How often the provider reports on the service levels, as the parties word it."}}},"severities":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["level","definition","response_target","resolution_target"],"properties":{"level":{"type":"string","description":"Name of the severity class, as the parties name it."},"definition":{"type":"string","description":"Definition of the class, as the parties word it."},"response_target":{"type":"string","description":"Response target for the class."},"resolution_target":{"type":"string","description":"Resolution target for the class."},"update_cadence":{"type":"string","description":"How often the provider updates the customer during an incident of the class."}}},"description":"Incident classes with their response and resolution targets.","minItems":1},"support":{"type":"object","additionalProperties":false,"required":["channels"],"properties":{"channels":{"type":"array","items":{"type":"string"},"description":"Support channels, one item per channel.","minItems":1},"languages":{"type":"string","description":"Languages in which support is given."}}},"escalation":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["level","contact_role"],"properties":{"level":{"type":"string","description":"Escalation level."},"contact_role":{"type":"string","description":"Role of the contact at that level."},"timeframe":{"type":"string","description":"Time after which the level is reached."}}},"description":"Escalation path."},"credits":{"type":"object","additionalProperties":false,"description":"Service credits.","required":["applies"],"properties":{"applies":{"type":"string","description":"Whether the parties agree service credits.","enum":["yes","no"]},"rows":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["condition","credit_text"],"properties":{"condition":{"type":"string","description":"The condition that gives right to the credit."},"credit_text":{"type":"string","description":"The credit, as the parties word it."},"credit_pct":{"type":"number","description":"The credit in percent, when the parties express it so.","minimum":0,"maximum":100},"credit_amount":{"type":"number","description":"The credit as an amount, when the parties express it so (the currency is stated in the credit text).","minimum":0}}},"description":"The credits table.","minItems":1},"how_claimed":{"type":"string","description":"How the customer claims a credit."},"claim_deadline_text":{"type":"string","description":"Deadline to claim a credit, as the parties word it."},"cap_text":{"type":"string","description":"Cap on the credits, as the parties word it."}},"allOf":[{"if":{"properties":{"applies":{"const":"yes"}},"required":["applies"]},"then":{"required":["rows"]}}]},"exclusions":{"type":"array","items":{"type":"string"},"description":"Situations in which the service levels do not apply, one item per line.","minItems":1},"customer_obligations":{"type":"array","items":{"type":"string"},"description":"The customer's obligations, one item per line."},"review":{"type":"object","additionalProperties":false,"required":[],"properties":{"cadence":{"type":"string","description":"How often the service levels are reviewed."},"change_procedure":{"type":"string","description":"How the agreement is changed."}}},"liability_clause":{"type":"string","description":"Liability clause, as the parties word it (optional; the template prints none of its own)."},"disputes":{"type":"object","additionalProperties":false,"description":"Governing law and courts.","required":["courts"],"properties":{"governing_law":{"type":"string","description":"Governing law chosen by the parties; printed only when chosen.","enum":["belgian"]},"other_text":{"type":"string","description":"Another governing law or a precision, as the parties word it; printed only when given."},"courts":{"type":"string","description":"The courts the parties designate."}}},"additional_clauses":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["title","text"],"properties":{"title":{"type":"string","description":"Title of the clause."},"text":{"type":"string","description":"Text of the clause, as the parties word it."}}},"description":"Further clauses written by the parties, printed as given as numbered articles."},"signatures":{"type":"object","additionalProperties":false,"description":"Signatures and number of originals.","required":["provider","customer"],"properties":{"provider":{"type":"object","additionalProperties":false,"description":"Signature of the provider.","required":["name","title","date"],"properties":{"name":{"type":"string","description":"Name of the person who signs for the provider."},"title":{"type":"string","description":"Capacity of that person."},"date":{"type":"string","description":"Date of signature.","format":"date"},"place":{"type":"string","description":"Place of signature."}}},"customer":{"type":"object","additionalProperties":false,"description":"Signature of the customer.","required":["name","title","date"],"properties":{"name":{"type":"string","description":"Name of the person who signs for the customer."},"title":{"type":"string","description":"Capacity of that person."},"date":{"type":"string","description":"Date of signature.","format":"date"},"place":{"type":"string","description":"Place of signature."}}},"copies":{"type":"integer","description":"Number of originals signed (Civil Code book 8, art. 8.20: each original states the number).","minimum":1}}}}}