- META_SCHEMA =
{
type: 'object',
properties: {
timestamp: { type: 'string', format: 'date-time' },
node: { type: 'string' }
},
required: %w[timestamp node]
}.freeze
- META_COLLECTION_SCHEMA =
{
type: 'object',
properties: {
timestamp: { type: 'string', format: 'date-time' },
node: { type: 'string' },
total: { type: 'integer' },
limit: { type: 'integer' },
offset: { type: 'integer' }
},
required: %w[timestamp node total limit offset]
}.freeze
- ERROR_SCHEMA =
{
type: 'object',
properties: {
error: {
type: 'object',
properties: {
code: { type: 'string' },
message: { type: 'string' }
},
required: %w[code message]
},
meta: META_SCHEMA
},
required: %w[error meta]
}.freeze
[
{
name: 'limit',
in: 'query',
description: 'Maximum number of records to return (1-100, default 25)',
required: false,
schema: { type: 'integer', minimum: 1, maximum: 100, default: 25 }
},
{
name: 'offset',
in: 'query',
description: 'Number of records to skip',
required: false,
schema: { type: 'integer', minimum: 0, default: 0 }
}
].freeze
- NOT_FOUND_RESPONSE =
{
description: 'Not found',
content: { 'application/json' => { schema: { '$ref' => '#/components/schemas/ErrorResponse' } } }
}.freeze
- UNAUTH_RESPONSE =
{
description: 'Unauthorized',
content: { 'application/json' => { schema: { '$ref' => '#/components/schemas/ErrorResponse' } } }
}.freeze
- UNPROCESSABLE_RESPONSE =
{
description: 'Unprocessable entity',
content: { 'application/json' => { schema: { '$ref' => '#/components/schemas/ErrorResponse' } } }
}.freeze
- NOT_IMPL_RESPONSE =
{
description: 'Not implemented',
content: { 'application/json' => { schema: { '$ref' => '#/components/schemas/ErrorResponse' } } }
}.freeze