Initial import with GitLab CI/CD and registry deploy flow
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Stage 1 Contracts (Auth, Users, Health, Audit)
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/health:
|
||||
get:
|
||||
summary: Health check
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/auth/login:
|
||||
post:
|
||||
summary: Login
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [username, password]
|
||||
properties:
|
||||
username: { type: string }
|
||||
password: { type: string }
|
||||
responses:
|
||||
'200':
|
||||
description: Token response
|
||||
/users:
|
||||
get:
|
||||
summary: List users
|
||||
responses:
|
||||
'200':
|
||||
description: Users list
|
||||
post:
|
||||
summary: Create user
|
||||
responses:
|
||||
'200':
|
||||
description: User created
|
||||
/users/{user_id}:
|
||||
get:
|
||||
summary: Get user by id
|
||||
parameters:
|
||||
- in: path
|
||||
name: user_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200':
|
||||
description: User data
|
||||
/audit/events:
|
||||
get:
|
||||
summary: List audit events
|
||||
responses:
|
||||
'200':
|
||||
description: Audit list
|
||||
post:
|
||||
summary: Create audit event
|
||||
responses:
|
||||
'200':
|
||||
description: Event created
|
||||
@@ -0,0 +1,68 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Stage 2 Contracts (Operator Core)
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/customers:
|
||||
get: { summary: Search customers, responses: { '200': { description: OK } } }
|
||||
post: { summary: Create customer, responses: { '200': { description: OK } } }
|
||||
/customers/{customer_id}:
|
||||
get:
|
||||
summary: Get customer
|
||||
parameters:
|
||||
- in: path
|
||||
name: customer_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/interactions:
|
||||
get: { summary: List interactions, responses: { '200': { description: OK } } }
|
||||
post: { summary: Create interaction, responses: { '200': { description: OK } } }
|
||||
/interactions/{interaction_id}/assign:
|
||||
patch:
|
||||
summary: Assign interaction
|
||||
parameters:
|
||||
- in: path
|
||||
name: interaction_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/interactions/{interaction_id}/status:
|
||||
patch:
|
||||
summary: Update interaction status
|
||||
parameters:
|
||||
- in: path
|
||||
name: interaction_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/interactions/{interaction_id}/escalate:
|
||||
post:
|
||||
summary: Escalate interaction
|
||||
parameters:
|
||||
- in: path
|
||||
name: interaction_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/queues:
|
||||
get: { summary: List queues, responses: { '200': { description: OK } } }
|
||||
post: { summary: Create queue, responses: { '200': { description: OK } } }
|
||||
/queues/{queue_id}/rules:
|
||||
patch:
|
||||
summary: Update queue rules
|
||||
parameters:
|
||||
- in: path
|
||||
name: queue_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/integrations/voice/events:
|
||||
post: { summary: Ingest Asterisk event, responses: { '200': { description: OK } } }
|
||||
/integrations/telegram/webhook:
|
||||
post: { summary: Ingest Telegram update, responses: { '200': { description: OK } } }
|
||||
@@ -0,0 +1,54 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Stage 3 Contracts (Supervisor, Reporting, KB-lite)
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/knowledge/categories:
|
||||
get: { summary: List categories, responses: { '200': { description: OK } } }
|
||||
post: { summary: Create category, responses: { '200': { description: OK } } }
|
||||
/knowledge/articles:
|
||||
post: { summary: Create localized article, responses: { '200': { description: OK } } }
|
||||
/knowledge/articles/{article_id}:
|
||||
get:
|
||||
summary: Get article
|
||||
parameters:
|
||||
- in: path
|
||||
name: article_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
patch:
|
||||
summary: Update article
|
||||
parameters:
|
||||
- in: path
|
||||
name: article_id
|
||||
required: true
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/knowledge/search:
|
||||
get:
|
||||
summary: Search localized articles
|
||||
parameters:
|
||||
- in: query
|
||||
name: q
|
||||
schema: { type: string }
|
||||
- in: query
|
||||
name: language
|
||||
schema: { type: string, enum: [ru, kz] }
|
||||
- in: query
|
||||
name: article_group_id
|
||||
schema: { type: string }
|
||||
responses:
|
||||
'200': { description: OK }
|
||||
/reports/events:
|
||||
post: { summary: Ingest KPI event, responses: { '200': { description: OK } } }
|
||||
/reports/kpi:
|
||||
get: { summary: KPI snapshot, responses: { '200': { description: OK } } }
|
||||
/reports/export:
|
||||
get: { summary: Export CSV, responses: { '200': { description: OK } } }
|
||||
/supervisor/agent-states:
|
||||
post: { summary: Update agent state, responses: { '200': { description: OK } } }
|
||||
/supervisor/realtime:
|
||||
get: { summary: Realtime supervisor view, responses: { '200': { description: OK } } }
|
||||
Reference in New Issue
Block a user