$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 auth: $ref: "./common.schema.yaml#/$defs/auth" data_classification: $ref: "./common.schema.yaml#/$defs/dataClassification" compatibility: $ref: "./common.schema.yaml#/$defs/compatibility"