ai-robot-core/spec/metadata-governance/openapi.provider.yaml

330 lines
8.4 KiB
YAML
Raw Normal View History

openapi: 3.0.3
info:
title: Metadata Governance Provider API
version: 0.2.0
x-contract-level: L2
servers:
- url: /
tags:
- name: MetadataSchemas
- name: DecompositionTemplates
paths:
/admin/metadata-schemas:
get:
tags: [MetadataSchemas]
summary: List metadata schemas
operationId: listMetadataSchemas
x-requirements: [AC-IDSMETA-13]
parameters:
- name: status
in: query
required: false
schema:
type: string
enum: [draft, active, deprecated]
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required: [items]
properties:
items:
type: array
items:
$ref: '#/components/schemas/MetadataSchema'
'400':
$ref: '#/components/responses/BadRequest'
post:
tags: [MetadataSchemas]
summary: Create metadata schema
operationId: createMetadataSchema
x-requirements: [AC-IDSMETA-13]
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataSchemaCreateRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataSchema'
'400':
$ref: '#/components/responses/BadRequest'
/admin/metadata-schemas/{id}:
put:
tags: [MetadataSchemas]
summary: Update metadata schema
operationId: updateMetadataSchema
x-requirements: [AC-IDSMETA-14]
parameters:
- name: id
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataSchemaUpdateRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataSchema'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
/admin/data-decomposition/templates:
get:
tags: [DecompositionTemplates]
summary: List decomposition templates
operationId: listDecompositionTemplates
x-requirements: [AC-IDSMETA-22]
parameters:
- name: status
in: query
required: false
schema:
type: string
enum: [draft, active, deprecated]
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required: [items]
properties:
items:
type: array
items:
$ref: '#/components/schemas/DecompositionTemplate'
'400':
$ref: '#/components/responses/BadRequest'
post:
tags: [DecompositionTemplates]
summary: Create decomposition template
operationId: createDecompositionTemplate
x-requirements: [AC-IDSMETA-21, AC-IDSMETA-22]
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DecompositionTemplateCreateRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/DecompositionTemplate'
'400':
$ref: '#/components/responses/BadRequest'
components:
schemas:
MetadataSchema:
type: object
required:
- id
- field_key
- label
- type
- required
- scope
- status
properties:
id:
type: string
field_key:
type: string
pattern: '^[a-z0-9_]+$'
minLength: 1
maxLength: 64
label:
type: string
minLength: 1
maxLength: 64
type:
type: string
enum: [string, number, boolean, enum, array_enum]
required:
type: boolean
options:
type: array
items:
type: string
uniqueItems: true
default:
oneOf:
- type: string
- type: number
- type: boolean
scope:
type: array
minItems: 1
items:
type: string
enum: [kb_document, intent_rule, script_flow, prompt_template]
uniqueItems: true
is_filterable:
type: boolean
default: true
is_rank_feature:
type: boolean
default: false
status:
type: string
enum: [draft, active, deprecated]
MetadataSchemaCreateRequest:
type: object
required: [field_key, label, type, required, scope, status]
properties:
field_key:
type: string
pattern: '^[a-z0-9_]+$'
minLength: 1
maxLength: 64
label:
type: string
minLength: 1
maxLength: 64
type:
type: string
enum: [string, number, boolean, enum, array_enum]
required:
type: boolean
options:
type: array
items:
type: string
uniqueItems: true
default:
oneOf:
- type: string
- type: number
- type: boolean
scope:
type: array
minItems: 1
items:
type: string
enum: [kb_document, intent_rule, script_flow, prompt_template]
uniqueItems: true
is_filterable:
type: boolean
default: true
is_rank_feature:
type: boolean
default: false
status:
type: string
enum: [draft, active, deprecated]
MetadataSchemaUpdateRequest:
type: object
properties:
label:
type: string
minLength: 1
maxLength: 64
required:
type: boolean
options:
type: array
items:
type: string
uniqueItems: true
default:
oneOf:
- type: string
- type: number
- type: boolean
scope:
type: array
minItems: 1
items:
type: string
enum: [kb_document, intent_rule, script_flow, prompt_template]
uniqueItems: true
is_filterable:
type: boolean
is_rank_feature:
type: boolean
status:
type: string
enum: [draft, active, deprecated]
DecompositionTemplate:
type: object
required: [id, name, template_content, version, status]
properties:
id:
type: string
name:
type: string
minLength: 1
maxLength: 100
template_content:
type: string
minLength: 20
version:
type: string
pattern: '^v?[0-9]+\.[0-9]+\.[0-9]+$'
status:
type: string
enum: [draft, active, deprecated]
DecompositionTemplateCreateRequest:
type: object
required: [name, template_content, version, status]
properties:
name:
type: string
minLength: 1
maxLength: 100
template_content:
type: string
minLength: 20
version:
type: string
pattern: '^v?[0-9]+\.[0-9]+\.[0-9]+$'
status:
type: string
enum: [draft, active, deprecated]
ErrorResponse:
type: object
required: [code, message]
properties:
code:
type: string
message:
type: string
details:
type: object
additionalProperties: true
responses:
BadRequest:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'