119 lines
2.8 KiB
YAML
119 lines
2.8 KiB
YAML
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|||
|
|
$id: https://info-tech-canon.local/schemas/capability-record.schema.yaml
|
|||
|
|
title: InfoTechCanon Capability Requirement and Provision Record
|
|||
|
|
description: >
|
|||
|
|
Shape of a consumer capability case (requirement set + provisions).
|
|||
|
|
Validated against the live catalog by the capability-review surface.
|
|||
|
|
ITC-CAP 0.4.0 / CAP-R8–R11.
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- requires
|
|||
|
|
properties:
|
|||
|
|
requires:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: "#/$defs/requirement"
|
|||
|
|
provisions:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: "#/$defs/provision"
|
|||
|
|
additionalProperties: true
|
|||
|
|
$defs:
|
|||
|
|
quantity:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
value: {}
|
|||
|
|
unit:
|
|||
|
|
type: string
|
|||
|
|
requirement:
|
|||
|
|
type: object
|
|||
|
|
required: [capability]
|
|||
|
|
properties:
|
|||
|
|
capability:
|
|||
|
|
type: string
|
|||
|
|
profile:
|
|||
|
|
type: string
|
|||
|
|
minimum_maturity:
|
|||
|
|
type: string
|
|||
|
|
pattern: "^D[0-7]$"
|
|||
|
|
targets:
|
|||
|
|
type: object
|
|||
|
|
additionalProperties:
|
|||
|
|
type: object
|
|||
|
|
constraints:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: object
|
|||
|
|
required: [dimension, predicate]
|
|||
|
|
properties:
|
|||
|
|
dimension:
|
|||
|
|
type: string
|
|||
|
|
predicate:
|
|||
|
|
enum: [not_in, in, equals, lte, gte]
|
|||
|
|
of:
|
|||
|
|
type: array
|
|||
|
|
provision:
|
|||
|
|
type: object
|
|||
|
|
required: [provider, capability, maturity]
|
|||
|
|
properties:
|
|||
|
|
provider:
|
|||
|
|
type: string
|
|||
|
|
capability:
|
|||
|
|
type: string
|
|||
|
|
profile:
|
|||
|
|
type: string
|
|||
|
|
environment:
|
|||
|
|
type: string
|
|||
|
|
maturity:
|
|||
|
|
type: string
|
|||
|
|
pattern: "^D[0-7]$"
|
|||
|
|
uses_provisions:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: object
|
|||
|
|
required: [capability, provider, relation]
|
|||
|
|
properties:
|
|||
|
|
capability:
|
|||
|
|
type: string
|
|||
|
|
provider:
|
|||
|
|
type: string
|
|||
|
|
relation:
|
|||
|
|
enum: [depends_on, may_use]
|
|||
|
|
consumes:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: object
|
|||
|
|
required: [class, quantity, basis]
|
|||
|
|
properties:
|
|||
|
|
class:
|
|||
|
|
type: string
|
|||
|
|
pattern: "^[A-Z]$"
|
|||
|
|
quantity:
|
|||
|
|
$ref: "#/$defs/quantity"
|
|||
|
|
basis:
|
|||
|
|
enum:
|
|||
|
|
- invoiced
|
|||
|
|
- measured
|
|||
|
|
- quoted
|
|||
|
|
- derived
|
|||
|
|
- projected
|
|||
|
|
- estimated
|
|||
|
|
- assumed
|
|||
|
|
- unknown
|
|||
|
|
supply:
|
|||
|
|
enum: [internal, external]
|
|||
|
|
period:
|
|||
|
|
type: string
|
|||
|
|
gap:
|
|||
|
|
type: string
|
|||
|
|
evidence:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: object
|
|||
|
|
required: [hook]
|
|||
|
|
properties:
|
|||
|
|
hook:
|
|||
|
|
type: string
|
|||
|
|
basis:
|
|||
|
|
type: string
|