Files
railiance-fabric/schemas/interface.schema.yaml

99 lines
2.3 KiB
YAML

$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://railiance.local/fabric/schemas/interface.schema.yaml"
title: "InterfaceDeclaration"
type: object
additionalProperties: false
required:
- apiVersion
- kind
- metadata
- spec
properties:
apiVersion:
$ref: "./common.schema.yaml#/$defs/apiVersion"
kind:
type: string
const: InterfaceDeclaration
metadata:
$ref: "./common.schema.yaml#/$defs/metadata"
spec:
type: object
additionalProperties: false
required:
- lifecycle
- environments
- description
- interface_type
- version
- service_id
- auth
- data_classification
properties:
lifecycle:
$ref: "./common.schema.yaml#/$defs/lifecycle"
environments:
$ref: "./common.schema.yaml#/$defs/environments"
description:
type: string
minLength: 1
interface_type:
type: string
minLength: 1
version:
type: string
minLength: 1
service_id:
$ref: "./common.schema.yaml#/$defs/graphId"
capability_ids:
type: array
items:
$ref: "./common.schema.yaml#/$defs/graphId"
endpoint:
type: object
additionalProperties: false
properties:
url:
type: string
minLength: 1
path:
type: string
minLength: 1
notes:
type: string
minLength: 1
deployment_overlay:
$ref: "#/$defs/deploymentOverlay"
auth:
$ref: "./common.schema.yaml#/$defs/auth"
data_classification:
$ref: "./common.schema.yaml#/$defs/dataClassification"
compatibility:
$ref: "./common.schema.yaml#/$defs/compatibility"
$defs:
deploymentOverlay:
type: object
additionalProperties: false
properties:
deployment_environment:
type: string
deployment_scenario:
type: string
routing_authority:
type: string
access_zone:
type: string
policy_authority:
type: string
exposure_class:
type: string
route_evidence:
type: object
additionalProperties:
anyOf:
- type: string
- type: integer
- type: number
- type: boolean
- type: "null"