feat(protocol): freeze M4 native session RC6 contract
This commit is contained in:
@@ -10,6 +10,8 @@ tags:
|
||||
- name: resources
|
||||
- name: broker
|
||||
- name: events
|
||||
- name: session-quality
|
||||
- name: gateway
|
||||
paths:
|
||||
/api/v1/auth/login:
|
||||
post:
|
||||
@@ -326,6 +328,143 @@ paths:
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/session-quality-limits:
|
||||
get:
|
||||
tags: [session-quality]
|
||||
operationId: getSessionQualityLimits
|
||||
security: [{nativeBearer: []}]
|
||||
responses:
|
||||
'200': {description: Current global native session quality limits., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/SessionQualityLimits}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
/api/v1/session-quality-limits/assignments/{assignment_id}:
|
||||
get:
|
||||
tags: [session-quality]
|
||||
operationId: getAssignmentSessionQualityLimits
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/AssignmentID'}]
|
||||
responses:
|
||||
'200': {description: Current assignment-specific native session quality limits., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/SessionQualityLimits}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
/api/v1/session-quality-limits/pools/{pool_id}:
|
||||
get:
|
||||
tags: [session-quality]
|
||||
operationId: getPoolSessionQualityLimits
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/PoolID'}]
|
||||
responses:
|
||||
'200': {description: Current pool-specific native session quality limits., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/SessionQualityLimits}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
/api/v1/admin/entitlements/{entitlement_id}/display-limit-override:
|
||||
patch:
|
||||
tags: [session-quality]
|
||||
operationId: updateEntitlementDisplayLimitOverride
|
||||
security:
|
||||
- browserSession: []
|
||||
browserCsrfCookie: []
|
||||
browserCsrfHeader: []
|
||||
parameters: [{$ref: '#/components/parameters/EntitlementID'}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/DisplayLimitOverrideRequest}}}}
|
||||
responses:
|
||||
'204': {description: Direct entitlement display override updated.}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'403': {$ref: '#/components/responses/Forbidden'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/broker/sessions/{session_id}/quality-changes:
|
||||
post:
|
||||
tags: [session-quality]
|
||||
operationId: createSessionQualityChange
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/SessionID'}, {$ref: '#/components/parameters/IdempotencyKey'}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/QualityChangeRequest}}}}
|
||||
responses:
|
||||
'201': {description: Durable quality change created., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/QualityChangeOperation}}}}
|
||||
'200': {description: Existing idempotent quality change returned., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/QualityChangeOperation}}}}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/broker/sessions/{session_id}/quality-changes/{operation_id}:
|
||||
get:
|
||||
tags: [session-quality]
|
||||
operationId: getSessionQualityChange
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/SessionID'}, {$ref: '#/components/parameters/OperationID'}]
|
||||
responses:
|
||||
'200': {description: Durable quality change state., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/QualityChangeOperation}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
/api/v1/broker/sessions/{session_id}/stop-operations:
|
||||
post:
|
||||
tags: [session-quality]
|
||||
operationId: createSessionStopOperation
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/SessionID'}, {$ref: '#/components/parameters/IdempotencyKey'}]
|
||||
responses:
|
||||
'201': {description: Durable Stop operation created., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/StopOperation}}}}
|
||||
'200': {description: Existing idempotent Stop operation returned., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/StopOperation}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/broker/sessions/{session_id}/stop-operations/{operation_id}:
|
||||
get:
|
||||
tags: [session-quality]
|
||||
operationId: getSessionStopOperation
|
||||
security: [{nativeBearer: []}]
|
||||
parameters: [{$ref: '#/components/parameters/SessionID'}, {$ref: '#/components/parameters/OperationID'}]
|
||||
responses:
|
||||
'200': {description: Durable Stop operation state., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/StopOperation}}}}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'404': {$ref: '#/components/responses/NotFound'}
|
||||
/api/v1/gateway/quality-work:
|
||||
post:
|
||||
tags: [gateway]
|
||||
operationId: acquireGatewayQualityWork
|
||||
security: [{gatewayMutualTLS: []}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayQualityWorkRequest}}}}
|
||||
responses:
|
||||
'200': {description: Leased quality work or reconciliation observation., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayQualityWork}}}}
|
||||
'204': {description: No matching work is available.}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/gateway/quality-ack:
|
||||
post:
|
||||
tags: [gateway]
|
||||
operationId: acknowledgeGatewayQualityWork
|
||||
security: [{gatewayMutualTLS: []}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayQualityAck}}}}
|
||||
responses:
|
||||
'204': {description: Quality acknowledgement committed idempotently.}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/gateway/stop-work:
|
||||
post:
|
||||
tags: [gateway]
|
||||
operationId: acquireGatewayStopWork
|
||||
security: [{gatewayMutualTLS: []}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayStopWorkRequest}}}}
|
||||
responses:
|
||||
'200': {description: One-way non-reissued Stop work claim., content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayStopWork}}}}
|
||||
'204': {description: No matching Stop work is available.}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/gateway/stop-ack:
|
||||
post:
|
||||
tags: [gateway]
|
||||
operationId: acknowledgeGatewayStopWork
|
||||
security: [{gatewayMutualTLS: []}]
|
||||
requestBody: {required: true, content: {application/json: {schema: {$ref: ../schemas/control-v1.schema.json#/$defs/GatewayStopAck}}}}
|
||||
responses:
|
||||
'204': {description: Stop acknowledgement committed idempotently.}
|
||||
'400': {$ref: '#/components/responses/InvalidRequest'}
|
||||
'401': {$ref: '#/components/responses/Unauthorized'}
|
||||
'409': {$ref: '#/components/responses/Conflict'}
|
||||
/api/v1/events:
|
||||
get:
|
||||
tags: [events]
|
||||
@@ -385,6 +524,8 @@ components:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: opaque
|
||||
gatewayMutualTLS:
|
||||
type: mutualTLS
|
||||
parameters:
|
||||
DeviceID:
|
||||
name: device_id
|
||||
@@ -396,6 +537,26 @@ components:
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string, minLength: 1, maxLength: 128}
|
||||
AssignmentID:
|
||||
name: assignment_id
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string, minLength: 1, maxLength: 128}
|
||||
PoolID:
|
||||
name: pool_id
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string, minLength: 1, maxLength: 128}
|
||||
EntitlementID:
|
||||
name: entitlement_id
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string, minLength: 1, maxLength: 128}
|
||||
OperationID:
|
||||
name: operation_id
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string, format: uuid}
|
||||
Limit:
|
||||
name: limit
|
||||
in: query
|
||||
|
||||
Reference in New Issue
Block a user